我用的最新版的webman,用了多应用组件配置了不同域名,但我只有一两个网站有用户登陆功能,其他站点纯展示信息,现在遇到的问题是一堆黑产刷站点,看LOG日志就是刷session、cookie、request之类,想要针对站点单独的session控制开关,像FPM是需要初始化才能用,CLI能否加配置项
只是搜索到了SESSION怎么使用,没有关闭session的方案,系统框架启动默认了启用session组件,只要在用户端传了session_id值就会在服务端有反应,实际上很多站点不需要启用session,就能避免很多安全日志,现在大量的日志是与session相关,cookie我没用,request做了安全处理
webman里单个请求是否开启session完全是看这个请求的代码是否操作了session,如果当前请求的业务代码没有操作session,webman就不会给这个请求开启session。
比如B C站点业务代码里没有session相关的业务逻辑,那么B C站点的请求就不会有session相关的任何操作,即使传递session_id也不会有。
我要的就是你回答的效果,现在的情况是刷了一堆日志
发下日志
Workerman\Protocols\Http\SessionException: session_id fce067e8bcdad94194ab37db091f1446GYvnECxE' OR 492=(SELECT 492 FROM PG_SLEEP(15))-- is invalid in /app/vendor/workerman/workerman/Protocols/Http/Session.php:446
Stack trace:
0 /app/vendor/workerman/workerman/Protocols/Http/Session.php(151): Workerman\Protocols\Http\Session::checkSessionId('fce067e8bcdad94...')
1 /app/vendor/workerman/workerman/Protocols/Http/Request.php(275): Workerman\Protocols\Http\Session->__construct('fce067e8bcdad94...')
2 /app/vendor/hsk99/webman-statistic/src/Middleware.php(157): Workerman\Protocols\Http\Request->session()
3 /app/vendor/workerman/webman-framework/src/App.php(341): Hsk99\WebmanStatistic\Middleware->process(Object(support\Request), Object(Closure))
4 /app/vendor/workerman/webman-framework/src/App.php(560): Webman\App::Webman{closure}(Object(support\Request))
vendor/hsk99/webman-statistic/src/Middleware.php
这个中间件里使用了session导致的。你可以只在需要这个中间件的应用中配置它
收到,,谢谢