1.防遠程提交;
遠程提交: 用戶通過扒網(wǎng)站代碼的形式,從遠程提交表單,以PHP為示例,如:Action原本指向 formHandler.php,遠程提交可修改指向 http://www.yoursite.com/formHandler.php,做他希望的任何修改,點擊 Submit,服務器會把這個表單數(shù)據(jù)作為合法通信流接收。
解決方案:
Referer驗證:考慮檢查 $_SERVER['HTTP_REFERER']
,從而判斷請求是否來自自己的服務器,這種方法可以擋住大多數(shù)惡意用戶,這種方案可以通過修改Referer頭繞開令牌:處理遠程表單提交更好的方式是,根據(jù)一個惟一的字符串或時間戳生成一個令牌,并將這個令牌放在會話變量和表單中。提交表單之后,檢查兩個令牌是否匹配。如果不匹配,就知道有人試圖從表單的遠程副本發(fā)送數(shù)據(jù)。
2.防SQL注入,對特殊代碼進行過濾;
SQL注入:就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執(zhí)行惡意的SQL命令。
解決方案:
- 使用正則表達式過濾傳入的參數(shù)
- 字符串過濾
3.防止注冊機灌水,使用驗證碼;