簡體   English   中英

雙引號的URL編碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM