看板 PHP 關於我們 聯絡資訊
※ 引述《ckmarkhsu (深藍站長)》之銘言: : php 也有此風險 : 例如 SELECT userid FROM user WHERE username = $usernmae : 如果傳近來的值是 '' OR 1=1 : 那就會出錯啦:P : ※ 引述《justinC (無)》之銘言: : : 像asp 很容易發生這類問題 : : 大多查到資料都是asp的 : : 雖然php 的預設都有把特殊字元slash掉 : : 難道就不會發生問題嗎?有php相關資料嗎 用prepared statement, 大部分會escape掉 (ex. PEAR::DB的prepare&execute或mysql本身的prepared statement) 瘋狂地檢查值域不對就退回 至少要有長度與字元集合的範圍檢查 只要是使用者端有辦法送字串過來的地方都check (好像有一點偏執狂xd) function id_checker($id) { $id = trim($id); if( regex_checker("/^([a-z][a-z\d]+)$/i", $id) && length_checker(6, 10, $id) ) return true; return false; } function passwd_checker($passwd){ $passwd = trim($passwd); if( regex_checker("/^([a-z\d]+)$/i", $passwd) && length_checker(4, 12, $passwd) ) return true; return false; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.26.34.20
PttHuge:http://0rz.net/b91eF 找sourceforge拿解答 :p 04/06 14:04