Cómo manipular la propiedad sameSite para prevenir "Cross-Site Request Forgery"

 Cómo agragar sameSite para prevenir "Cross-Site Request Forgery"

En el presente tutorial se muestra cómo habilitar la medida de seguridad "sameSite" para prevenir la vulnerabilidad llamada "Cross-Site Request Forgery".

Como referencia puedes hacer la prueba antes de hacer la presente modificación dando clic derecho en tu navegador, en este caso estoy utilizado el navegador Chrome y dando clic en la opción de "Application" despues en "Cookies" y en seguida selecciono el sitio correspondiente, aparecera algo como lo siguiente:



Observa que en donde dice "SameSite" esta vacio, esto indica que no se tiene dicha medida de seguridad. 

Entonces para cambiarla yo estoy realizando este ejercicio con PHP 8.1 y Yii 
2.0.47, que de acuerdo a la documentación de Yii esto sólo funciona a partir de la version 2.0.21 o superior.

Deberá entrar al archivo de configuración según su plantilla, en mi caso tengo la básica por lo que entraré a "config/web.php" y agregaré la siguiente configuración.


'components' => [
       
 'session'=>[
            'cookieParams' => [ 
                'httpOnly' => true,
                'secure' => true,
                'sameSite' => PHP_VERSION_ID >= 70300 ? yii\web\Cookie::SAME_SITE_LAX : null,
            ]
        ],

]



Observe que dicha configuración debe estar dentro de los corchetes de "component" y dentro de una propiedad llamada "session", las primeras dos configuraciones 'httpOnly' y 'secure' son opcionales aun que yo recomiendo agregarlas, y la tercera propiedad  'sameSite' es la que hará el trabajo de agregar a seguridad de 'sameSite' para evitar "Cross-Site Request Forgery".

Una vez que se aplique la propiedad, si todo esta bien deberá aparecer de la siguiente manera: 





Referencias: 

https://www.yiiframework.com/doc/guide/2.0/en/runtime-sessions-cookies
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value
https://owasp.org/www-community/SameSite

Comentarios

Aprende Yii2


Lo más Visto

Tutorial de implementación de calendario de rango de fechas con Karkit en gridView

Exportar a Excel listado GridView

Cómo instalar RBAC

Ejemplos de Gráficas con Highcharts

Agregar select en encabezado de busqueda de un GridView

hostinger

ventana bienvenida