沒有處理用戶輸入
這或者可以這樣說#1:永遠(yuǎn)不要相信用戶的輸入。用服務(wù)器端的PHP驗(yàn)證每個(gè)字符串,不要寄希望與JavaScript。最簡單的SQL注入攻擊會(huì)利用如下的代碼:
1 | $username = $_POST[ "name" ]; |
2 | $password = $_POST[ "password" ]; |
3 | $sql = "SELECT userid FROM usertable WHERE username='$username' AND password='$password';" ; |
4 | // run query... |
只要在username字段輸入“admin';--”,這樣就會(huì)被黑到,相應(yīng)的SQL語句如下:
1 | SELECT userid FROM usertable WHERE username= 'admin' ; |
狡猾的黑客可以以admin登錄,他們不需要知道密碼,因?yàn)槊艽a段被注釋掉了。
聯(lián)系客服