由於以下問題,本季難以達到PCI-DSS合規性。爲什麼當服務器響應時,FireFox和某些其他瀏覽器會更改地址欄中的URL
當你鍵入以下內容到瀏覽器...
http://www.mygarble.com/main/Community/Chat?command=CHAT_MESSAGE&displayname=%22%3E%3Cscript%3Ealert%28123%29%3C%2Fscript%3E%22
...它響應和,因此,出於某種原因,我不能確定,在browswer地址欄中的URL被改變如下:
http://www.mygarble.com/main/Community/Chat?command=CHAT_MESSAGE&displayname="><script>alert(123)<%2Fscript>"
您可以看到,原始URL中的一些轉義字符已被非轉義字符替換。
我給出的理由是,當服務器響應時,FireFox自動地重新格式化地址欄中的URL,不管它如何響應,以使其更具可讀性。我告訴他們我無能爲力。然而,公平地說,他們反駁說,如果你嘗試以下網址...
http://www.google.com/%22%%203E%3Cscript%3Ealert%28123%29%3C%2Fscript%3%20E%22
...當谷歌的服務器響應,瀏覽器不會更改URL,它仍然是相同的:
http://www.google.com/%22%%203E%3Cscript%3Ealert%28123%29%3C%2Fscript%3%20E%22
他們有一個觀點。
那麼究竟是怎麼回事?我已經縮小的問題,如果我做的並不比要求一個空文本文件多,但之後追加一些廢話查詢...
http://localhost/http.mygarble.com/hello.txt?displayname=%22%3E%3Cscript%3Ealert%28123%29%3C%2Fscript%3E%22
...你瞧它被改寫時,我的本地服務器迴應:
我已經通過提琴手運行這一點,可以看到沒有任何不幸,我已經關掉了重寫引擎。我正在運行Apache。
爲了增加混淆,不同的瀏覽器響應不同。打字...
http://localhost/http.mygarble.com/hello.txt?displayname=%22%3E%3Cscript%3Ealert%28123%29%3C%2Fscript%3E%22
... Chrome的收益率:
進入IE的URL保持完全一致。在Opera中,除非您單擊地址欄,否則查詢字符串將被刪除,從而使我相信瀏覽器會自動更改地址欄中的URL以響應,以使其更具可讀性。像IE一樣,Safari瀏覽器只保留URL。
我現在要檢查Google的迴應以尋找線索。是否有一些HTTP指令指示瀏覽器不要在響應中插入URL。
任何幫助非常感謝!
親切的問候,
詹姆斯
這與pci-dss有什麼關係?我不明白。 – Oded