作者justinC (无)
看板PHP
标题Re: [请益] php 发生 隐码问题
时间Sun Apr 30 00:48:02 2006
※ 引述《qrtt1 (隐者)》之铭言:
: ※ 引述《ckmarkhsu (深蓝站长)》之铭言:
: : php 也有此风险
: : 例如 SELECT userid FROM user WHERE username = $usernmae
: : 如果传近来的值是 '' OR 1=1
: : 那就会出错啦:P
: 用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;
:
之前看这篇没有很懂上面意思
mysql本身的prepared statement不是比较安全吗
不知道prepared statement实作是不是还把资料转成sql 语法
如果是的话不过滤 当然也是有问题
书上说对 sql injection有比较安全不知道什麽意思
?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.221.120.127