2011-11-08 53 views
0

我想給用戶提供製作SQL查詢的選項。我把textarea放入使用過的表格中。 當我輸入此查詢SELECT name FROM user ORDER BY name ASC時,它返回了預期結果。 但是,當我試圖使用WHERE子句SELECT name FROM user WHERE SUBSTRING(name, 1, 1) = 'J' ORDER BY name ASCSELECT name FROM user WHERE id>1000 ORDER BY name ASC,既不的SELECT工作,我收到以下錯誤:SQL查詢作爲使用textarea的用戶輸入

Not Acceptable An appropriate representation of the requested resource /test/index.php could not be found on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

什麼可能是這個問題的原因是什麼?我想到的第一件事是像>這樣的字符會使URL無效,但事實並非如此。

+3

這裏是你的代碼? – Drewdin

+0

你如何從網頁傳輸信息到你的應用程序? POST或GET?請發佈SUBMIT按鈕的HTML(如果您要提交表單)。 –

+0

另外,如果您的公司曾經收集過我的任何數據,我是否可以恭敬地要求您立即從數據庫中刪除它? –

回答

1

我相信像Suhosin或mod_security之類的一些過於謹慎的軟件。

1

您的Web服務器可能配置了mod_security,並且它正在掃描POST數據,從而觸發此響應。

請參見:http://www.howtoforge.com/apache_mod_security_p2

http://www.modsecurity.org/documentation/modsecurity-apache/1.9.3/html-multipage/03-configuration.html#N10176

+0

用於使用GET方法。 「請發佈提交按鈕的HTML」 「另外,如果您的公司曾經收集過任何關於我的數據,我可以恭請您立即刪除它從你的數據庫?「這是一個笑話:)如果沒有,我可以向你保證沒有關於你的數據 mysql_query(stripslashes($ _ GET ['sql']))是什麼命令看起來像 – user965748

+0

好吧,我會看看mod_security – user965748

+0

@ user965748,這是個玩笑。或者說,允許將SQL代碼直接提交給數據庫的任何重要的,有意義的或個人識別數據的警告 - 您需要假設互聯網上的任何人都可以爲您的數據庫做任何他們想做的事情。 –