hkvstore / samesite-cookie
使用 SameSite cookies 保护您的网站
0.3.5
2023-10-12 03:39 UTC
Requires
- php: ^8.0
- psr/http-message: ^1
- psr/http-server-handler: ^1
- psr/http-server-middleware: ^1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- middlewares/utils: ^3
- overtrue/phplint: ^2
- phpstan/phpstan: ^1
- phpunit/phpunit: ^8 || ^9
- slim/psr7: ^1
- squizlabs/php_codesniffer: ^3
README
A PSR-15 中间件,用于使用 SameSite cookies 保护您的网站 🍪
要求
- PHP 8.0+
安装
composer require selective/samesite-cookie
SameSite cookies
Same-site cookies ("First-Party-Only" 或 "First-Party") 允许服务器通过声明特定 cookie 应仅与来自同一可注册域的请求一起发送,来减轻 CSRF 和信息泄露攻击的风险。
警告:SameSite cookies 在旧版浏览器和一些移动浏览器(例如 IE 10、BlackBerry、Opera Mini、IE Mobile、Android 的 UC 浏览器)上根本不起作用。
更多详细信息请在此处查找
- SameSite cookies 解释
- CSRF 已(真的)死亡
- PHP setcookie “SameSite=Strict”?
- 如何在 PHP 中设置 cookie 属性的 Samesite 值?
- 我可以使用 SameSite 吗?
Slim 4 集成
<?php use Selective\SameSiteCookie\SameSiteCookieMiddleware; use Slim\Factory\AppFactory; $app = AppFactory::create(); // ... // Register the samesite cookie middleware $app->add(new SameSiteCookieMiddleware()); // ... $app->run();
配置和 session starter 中间件示例。
Slim 4 使用 LIFO(后进先出)中间件堆栈,因此我们必须以相反的顺序添加中间件
<?php use Selective\SameSiteCookie\SameSiteCookieConfiguration; use Selective\SameSiteCookie\SameSiteCookieMiddleware; use Selective\SameSiteCookie\SameSiteSessionMiddleware; use Slim\Factory\AppFactory; $app = AppFactory::create(); // ... // Optional: Add custom configuration $configuration = new SameSiteCookieConfiguration(); // Register the samesite cookie middleware $app->add(new SameSiteCookieMiddleware($configuration)); // Optional: Start the PHP session // Use this middleware only if you have no other session starter middleware $app->add(new SameSiteSessionMiddleware()); // ... $app->run();
许可
MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。