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

Guía rápida para uso de widget kartik para select para formulario

Cómo incluir una vista dentro de un modal

Google Plus desaparecerá el 4 de Abril de 2019

Crear fomulario HTML con checkbox sin Active Record

hostinger

ventana bienvenida