2011-02-03 92 views
2

我有一個使用$ _POST變量存儲到數據庫的腳本。如何防止從POST方法入侵

有些用戶試圖通過製作自己的帖子表單方法或使用curl向服務器發送帖子變量和值來欺騙系統。

如何防止此攻擊?

謝謝

回答

4

預防是不可能的(POST是安全的是一個過分簡化的神話)。你必須用各種方法來驗證傳入的數據:

  • CSRF令牌幫助防止任意形式提交機器人(但不反對handicrafted篡改)
  • enumarate預期表單值,斷言(),所有的都存在,並沒有無關字段顯示
  • 對期望值進行過濾和過濾。我用$_POST->text->in_array("field", "abc,def,xyz")例如
+0

+1。另外還有關於表單處理的資源:http://phpsec.org/projects/guide/2.html – singles 2011-02-03 07:16:41

0

有沒有辦法阻止人們做任意HTTP請求。

你如何爲自己辯護取決於請求的內容和爲什麼構成攻擊。

-1

此攻擊名爲「SQL注入」。保護它並不難。如果你的值是字符串,只需使用magic_quotes,如果你的值是數字,則使用過濾器女巫跳過onlu數字。

+1

Magic Quotes不足以抵禦SQL注入。這個問題沒有提供足夠的信息來斷定攻擊是SQL注入,它可能是XSS,「關於我的分數說謊」,「填充我的論壇與垃圾郵件」或其他東西。 – Quentin 2011-02-03 07:14:21

0

可以確保POST從您的形式通過CAPCHA一種保護,或者您可以消毒每$ _ POST變量,並拒絕整個POST數據,如果它不符合標準。