雖然做一個快速的測試,以檢查針對SQL注入(並不詳盡,只是出於好奇),我輸入爲什麼我會收到HTTP 406錯誤?
「OR 1 = 1
到我的搜索欄和服務器引發我一個406 HTTP錯誤。我覺得很奇怪,並認爲這可能是一個SQL問題,但其他走馬SQL注入測試,如
「或真
,但該網站正常反應,劃定的」。我覺得在這一點上,可以安全地說這不是一個SQL問題,但萬一這裏是PHP消毒代碼
$query = trim(str_replace(array('%', '_'), array('\\%', '\\_'), mysqli_real_escape_string($con, htmlspecialchars($query))));
根據快速谷歌搜索(source1,source2,source3),一個406錯誤當返回的數據類型與HTTP請求標頭不匹配時。我覺得很奇怪,有一個類型不匹配,因爲其他查詢工作得很好。其實
「OR 1 」 OR 1 =
都工作得不錯(即它們正確地轉義) 。定期的搜索結果,即非惡意的搜索結果也會正確返回。有關爲何發生這種情況的任何建議?如果這意味着什麼,我正在使用GoDaddy。
爲什麼哦爲什麼哦爲什麼你要依靠這種專門的消毒「邏輯」,而不是完全通過使用消除問題準備好了嗎? –
現在你提到它,我應該切換到準備好的語句(抱歉,我仍然在學習Web開發..);但我不認爲這是造成問題? –