刚开始以为是cookiecontainer的问题,后来调试的时候发现并不是。具体如下:
当webserver返回如下信息的时候,会出现问题
注意红色标注的部分,当cookie的value中出现逗号的时候,在获取response.headers的时候会丢失 uid的cookie,同时将 .crazycoder.cn 作为一个独立的cookie的key标识出来,value为null
在cookiecontainer上花了太多时间,重写了一下依然无效。
后来考虑了一下,调试response.headers["set-cookie"].values 发现,此处获取的数据已经将uid丢失并解释失败,应该是values默认以逗号分隔,而cookie中含有逗号的话则会出现split的问题
解决方法:
思路很简单,重写很麻烦,但是没办法,使用socket去实现http数据请求,处理header部分的意外字符
意外收获:
聪明的你想到了吗,其实这是一个很好的增加webserver安全性和健壮性的方法,利用这个bug,然后给他赋值出去,嘿嘿,剩下的就很清晰了
最新评论