2013-02-02 109 views
-2

可能重复:
Why shouldn’t I use mysql_* functions in PHP?什么是... mysql_real_escape_string?危险吗?

惠,我可以使用一个代码在PHP这样的:

$s_username = addslashes(strip_tags($_POST['username'])); 
$s_password = addslashes(strip_tags($_POST['password'])); 
此之前

是使用

$email = mysql_real_escape_string(strip_tags($_POST['email'])); 
$username = mysql_real_escape_string(strip_tags($_POST['username'])); 

...因为很多人说mysql_real_escape_string使用起来很危险?

+1

谁说的...?也许它们意味着你不应该再使用mysql_ *堆栈,而是使用mysqli_ *或PDO来代替。该函数本身不*危险*,它只是被弃用。 – Quasdunk

+0

危险?究竟以什么方式? – TheDeadLike

+0

使用pdo或mysqli与预处理语句.. – bitWorking

回答

1

它的折旧意味着它没有被维护,所以如果发现安全漏洞,PHP开发人员不会去修复它。这并不危险,但它只是逃脱了可能用于sql注入的所有不好的字符。

改用mysqli_ *函数或PDO。那些实际上正在维护,并且更安全。

+0

thanx老兄真的很感激它.. :) –

+0

他们实际上很危险--http://www.iodigitalsec.com/mysql_real_escape_string-wont-magically-solve-your-sql-injection-problems/ – Stephen