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