Re: [请益]请问 mysql_real_escape_string的写法?

楼主: hiigara (石头)   2015-08-08 20:47:59
※ 引述《ahoo122002 (承让)》之铭言:
: 请问mysql_real_escape_string?
: 有大约google了一下sql injection
: 之后想说这样写ok吗?
: 1.
: function test($value){
: return mysql_real_escape_string($value);
: }
: $name = test($_POST["name"]);
: $password = test($_POST["password"]);
escape sql 是在有 SQL 的地方才应该做的事情
没有SQL 的时候 escape ...没什么 OK 不 OK 可言...
: 2.
: <?php
: function mysql_escape_mimic($inp) {
: // blah blah
: return $inp;
: }
: $name = mysql_escape_mimic($_POST["name"]);
: $password = mysql_escape_mimic($_POST["password"]);
不要写自己的 escape function,要用别人写好的
这世界比你以为的险恶太多...
你写的方法看起来跟 addslashes() 满类似的
那么就有可能被人用塞入奇怪的多 byte 字符攻破
操作方法像是这篇
http://www.securityidiots.com
/Web-Pentest/SQL-Injection/addslashes-bypass-sql-injection.html
: 有高手可以提供其他好的写法吗?
: 先不谈PDO,ORM <
作者: ahoo122002 (承让)   2015-08-10 19:45:00
是否只有文字输入的部份,要防sql injection
作者: LPH66 (-6.2598534e+18f)   2015-08-10 21:52:00
所有外来的东西 (不论是不是输入框) 都要防
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-08-11 10:33:00
是阿,是否只有参数要防injection? 参数和SQL stmt一定要在一起escape才算数吗?SQL stmt又不会有外来的
作者: ahoo122002 (承让)   2015-08-12 19:50:00
针对第1个写法,想说大家都知道,所以省略sql,才只贴部份程式码,来问大家。

Links booklink

Contact Us: admin [ a t ] ucptt.com