我有一个PHP重定向脚本,做下面一个奇怪的问题:饼干腐败
- 厂在用户浏览器的cookie,或阅读现有的Cookie(如果有)。
- 将用户重定向到另一个URL(重定向的URL是原始URL中的参数,例如
http://my.redir.com?url=www.google.com
)。 - 记录重定向(时间,用户代理,引用者,cookie)。
每隔一段时间(非常少见,百万分之一),我看到一个cookie在日志文件中被损坏。 所有cookies的格式为XXXX-XXXX
,当X是a-f或0-9时(所以有效的cookie可以是7bfab3-d8694
)。损坏的曲奇具有替换字符或连字符之一的字符:
或/
,例如, 7bfa:3-d8694
或7bfab3/d8694
。
问题是,这是什么原因造成的? 它可能是我的脚本或它运行的服务器的问题,还是更可能是用户浏览器中的问题?
- 更多信息 -
我已经找到了损坏的甜饼的用户代理:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Sky Broadband; GTB7.1; Sky Broadband; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; Sky Broadband)
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; en) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4
奇怪!这几乎肯定是客户端的一部分。我想如果这种情况很少发生,就没有办法测试它。可能是在客户端计算机上损坏的文件。也可能是坏人试图破坏事物。 – Charlie
您是否意识到,除非您验证“重定向至”网址,否则这样的重定向是安全威胁?例如。网络钓鱼者可以发送一封电子邮件,其中包含指向您网域的所有网址,而实际上它们都在其他地方(黑客的网站)发布。所以你需要使用某种散列来防止它... – haimg
值得注意的是,在ASCII中,[/是紧接在0之前,并且紧接在9之后](http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters)。 – nandhp