美文网首页
thinkphp存储的cookie/session值被替换为fa

thinkphp存储的cookie/session值被替换为fa

作者: Stonesy | 来源:发表于2019-08-26 21:07 被阅读0次
function register($sid=0){
    if($sid){
        cookie('sid',$sid);
    }
 
}

查看cookie的结果居然是favicon.ico

通过浏览器的调试模式发现 cookie是先正确存储 然后又被存储为了favicon.ico

直觉是访问了两次register 导致存储出了问题

查看web服务器的访问日志

127.0.0.1 - - [14/Nov/2018:15:35:56 +0800] "GET /register/5.html HTTP/1.1" 200 9331
127.0.0.1 - - [14/Nov/2018:15:35:56 +0800] "GET /captcha.html HTTP/1.1" 200 778
127.0.0.1 - - [14/Nov/2018:15:35:57 +0800] "GET /register/favicon.ico HTTP/1.1" 200 9331

很显然有两次请求;

下面排位为什么会多出这个请求

排查出来原因是多方面的 解决办法也是多方面的,前端出现的请求导致出错 说明还是服务端做的不够完美呀

<link rel="Shortcut Icon" href="favicon.ico" />

这个是告诉浏览器favicon.ico的位置 给的是一个相对地址结合我们当前的访问地地址 浏览器自然而然的就去发送第二个请求了 而第二个请求地址又会触发我们定义的web服务器重定向规则 然后访问我们的代码 导致cookie被覆盖

原因找到下面是解决办法

1.直接去掉html代码 只要在网站根目录存有网站图标 是会在浏览器直接显示的

2.将路径改为绝对路径

<link rel="Shortcut Icon" href="/favicon.ico" />

3.修改web服务器的重定向规则 增加判断排除 这个因人而异

以上就是原因和解决办法
————————————————
版权声明:本文为CSDN博主「保罗森」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/slyjit/article/details/84067435

相关文章

网友评论

      本文标题:thinkphp存储的cookie/session值被替换为fa

      本文链接:https://www.haomeiwen.com/subject/mecjectx.html