今天登录项目的测试环境
一直提示验证码失效 看代码调试发现服务器始终获取不到session
找了很久的问题;后发现浏览器请求头显示set-Cookie............Secure!!!!!!!
随后百度了一下
";Secure;HttpOnly":这是新的Cookie属性,将会添加到原始Set-Cookie标头的末尾。其中 "Secure" 表示浏览器只会在使用HTTPS连接时发送此Cookie,而 "HttpOnly" 则表示该Cookie无法通过客户端脚本访问,增加了防范XSS攻击的安全性。
测试环境是http 正式环境是https 应该是部署Apache httpd.conf 没有改
查看httpd.conf 有一行
<VirtualHost *:80>
UseCanonicalName off
VirtualDocumentRoot "/usr/local/apache2/htdocs"
ErrorLog logs/localhost_error.log
ServerName localhost
RemoteIPHeader X-Forwarded-For
RemoteIPHeader X-Real-IP
Header edit Set-Cookie ^(.*)$ $1;Secure;HttpOnly
Header edit Set-Cookie ^(.*)$ $1;Secure;HttpOnly
去掉Secure就行
在Apache的httpd.conf文件中,这个配置行的作用是编辑HTTP响应中的Set-Cookie标头(Header),将所有的Cookie设置为"Secure"和"HttpOnly"。
具体来说,它使用正则表达式将原始的Set-Cookie标头捕获到的内容($1)放在新的Set-Cookie标头中,并在其后添加";Secure;HttpOnly"。这样做的目的是增加Cookie的安全性。
解释:
- ^(.)$:这是一个正则表达式,匹配任何字符(除了换行符)的任意次数。"^"表示匹配字符串的开始,"$"表示匹配字符串的结束。括号 "(.)" 是捕获组,它将匹配的内容保存在变量 $1 中。
- $1:表示捕获到的原始Set-Cookie标头的内容。
- ";Secure;HttpOnly":这是新的Cookie属性,将会添加到原始Set-Cookie标头的末尾。其中 "Secure" 表示浏览器只会在使用HTTPS连接时发送此Cookie,而 "HttpOnly" 则表示该Cookie无法通过客户端脚本访问,增加了防范XSS攻击的安全性。
此配置行的效果是确保所有的Set-Cookie响应头都带有这两个属性,从而提高Cookie的安全性。