[英]URL encoding of the double quote
我知道url中不允許使用雙引號字符,並且將其編碼為%22
,這是通過utf-8編碼完成的 。 但是,如果我構建的瀏覽器不執行url編碼,而是使用utf-8編碼方案所允許的雙引號本身進行查詢,會發生什么情況。 例如: www.google.com/"a"
。 此外,當服務器中的URL解析腳本遇到雙引號時會發生什么情況?
由於您要向服務器傳遞無效的URI,因此服務器可能會以HTTP 400 Bad Request
狀態進行響應,但可能不會。 不同的服務器對此有不同的行為。 例如,Apache 2.4服務器以403 Forbidden
響應。 似乎他們將其識別為SQL注入的嘗試,並立即抑制了它。 Nginx服務器以404 Not Found
響應。
您不需要構建不執行URL編碼檢查的瀏覽器。 您可以從大多數操作系統附帶的簡單telnet程序中執行此查詢(但默認情況下可能未安裝)。 如果已安裝,則只需在終端窗口中執行telnet www.google.com 80
,粘貼以下兩行:
GET /"a" HTTP/1.1
Host: www.google.com
然后按兩次Enter鍵。 您將收到404 Not Found
響應。 如果您對stackoverflow.com執行相同操作,則響應將為400 Bad Request
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.