天天看點

%3ca%3e标簽怎麼ajax,ajax網址使用特定單詞“祭壇”或“祭壇”給出403其他網址工作正常...

我使用ajax作為GET發送到php檔案的網址,當我使用“Altar”或“altar”後跟空格時,會給出403錯誤。它是一個教堂,是以他們當然會使用這個詞。

代碼完全正常,直到我在參數中使用該單詞。例如,即使内部和特殊字元中的URL和單引号也可以正常工作:

ad2calendar.php AJAX = 1&安培; U =&TESTUSER放大器; d = 2013年11月30日&安培; S = 1&安培; iurl = altar.jpg&安培; eEvent =%3CA%20href%3D'someurl.com'%20title%3D %22Phony%20URL%22%20%3EA%20Phony%20URL%3C%2FA%3E%0ASome%20special%20chars%20!%40%26%5E%25%23%24(%23%40%22%22&安培;筆記=試驗&安培; eTitle =測試&安培; Y = 2013&安培; M = 11

但這給了我403,因為它包含帶有空格的“祭壇”這個詞。

ad2calendar.php AJAX = 1&安培; U = TESTUSER&安培; d = 2013年11月30日&安培; S = 1&安培; iurl =安培; eEvent =壇%20安培;筆記=試驗&安培; eTitle =測試&安培; Y = 2013&安培;米= 11

為什麼像這樣的簡單單詞可能會破壞導緻403的URL?

我自己的故障排除發現403來自比php檔案存在的目錄更高的目錄(php位于受密碼保護的目錄中)。我想這可能是由于一些字元編碼問題,因為我最近将檔案更改為UTF-8,但它似乎工作正常。嘗試使用空白.htaccess檔案,是以沒有mod_rewrites,在表單字段上使用encodeURIComponent。該腳本無法檢查此字元組合和重定向。

我有php嚴格的錯誤報告,沒有抛出php錯誤,也沒有javascript錯誤。我似乎得到的唯一錯誤與結果div中顯示的403頁面有關,對于ajax響應,因為403頁面使用的資源不在該目錄位置。

代碼本身非常複雜,是以我無法真正開始釋出所有内容。隻是尋找一些方向來進一步排除故障。老實說,我很快就會把這個詞搞砸了。

更奇怪的是,我能夠在一個月或兩個月前使用這個詞,但如果我将代碼復原到那一點,則錯誤仍然存​​在。

從我的原始通路日志中,首先包含“Altar”并給出200,第二個包含帶有尾随空格的“Altar”并給出403.

XXX.XXX.XXX.XXX - - [11/Nov/2013:12:35:22 -0500] "GET /ad2calendar.php?ajax=1&u=testuser&d=2013-11-30&s=0&iurl=&eEvent=Altar&notes=&eTitle=&y=2013&m=11 HTTP/1.1" 200 20102 "http://XXXXX/ad2events.php" "Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.16"

XXX.XXX.XXX.XXX - - [11/Nov/2013:12:35:29 -0500] "GET /ad2calendar.php?ajax=1&u=testuser&d=2013-11-30&s=1&iurl=&eEvent=Altar%20&notes=&eTitle=&y=2013&m=11 HTTP/1.1" 403 1098 "http://XXXXX/ad2events.php" "Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.16"

發現尖括号中的文字“script”也會給出403.例如:

以上給出了403錯誤。這證明存在一些導緻此問題的安全功能或編碼問題。