我有一個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