2011-03-13 73 views
1

我使用livevalidation腳本來驗證php表單,但我認爲我的網站被黑了,因爲一些輸入允許插入數字不是字母。如何解決黑客的php表單

另一個問題黑客使我的選擇標記插入數據錯誤不是我的形式。

那麼請任何人都可以幫我嗎?

+4

這是小Bobby表再次:http://xkcd.com/327/ – corsiKa 2011-03-13 21:58:02

+0

感謝您的adivce,但我是一個初學者在PHP開發,所以你可以告訴我,我怎麼能找到一個giud幫助我 – maha 2011-03-13 22:02:26

+0

我會第一個承認這不是我的一杯茶:)那不是那麼多的建議和更多的「這是一個關於這種事情的滑稽漫畫。」 – corsiKa 2011-03-13 22:04:27

回答

11

JavaScript無法提供安全的方式來檢查數據。它只應該被視爲方便用戶。

您需要驗證您在PHP服務器上獲得的所有數據。

PS:您可能會發現Filtering功能非常有用,正則表達式,in_array()用於驗證選擇框等

+0

感謝您的adivse,但我是一個初學者在PHP開發,所以你能告訴我我怎麼能找到一個giud來幫助我 – maha 2011-03-13 22:02:48

+0

@maha,這是一個非常廣泛的問題。我手邊沒有任何資源(我相信別人會這麼做),但基本上你需要檢查表單提交的每個$ _GET或$ _POST變量,並確保它是你期望的。在搜索過濾功能的一些教程並嘗試之後,您可以回來並開始提出新的問題,解決諸如「我如何驗證電子郵件地址?」這樣的具體內容。等等。 – Matthew 2011-03-13 22:05:47

0

我可以做:

if (isset($_GET['string']) && !empty($_GET['string']) && is_string($_GET['string'])) 

    $str = mysql_real_escape_string(stripslashes(trim($_GET['string']))); 

和:

if (isset($_GET['id']) && !empty($_GET['id']) && is_numeric($_GET['id'])) 

    $id = trim($_GET['id']); 

你怎麼看這個?

我不確定所有這些測試的有用性。

0

下載accunetix尋找一個免費版本的地方,它會讓你測試你的應用程序的任何安全漏洞。它有一個很好的用戶界面,易於使用,不像其他存在的垃圾。 accunetix.com

+0

還確保您的表單上的每個輸入都被清除。無論它是一個複選框,選擇,輸入,收音機,按鈕。黑客將嘗試修改anythign以使您的網站達到他們想要的效果。 – 2011-03-14 00:22:29