2012-10-06 34 views
-3

可能重复:
Best way to prevent SQL injection in PHP?更多,以防止注射

我看到mysql_real_escape_string和条斜线在防止MySQL的注射被使用。或者我需要更多的东西,并将其全部置入功能,然后使用该功能来防止注射?

$query = ("SELECT * FROM `users` WHERE `fname` REGEXP '%s' AND `lname` REGEXP '%s' LIMIT 
%d", 
mysql_real_escape_string($fname), 
mysql_real_escape_string($lname), 
(int)$RowsLimit); 

还是会更好地做这样的事情? mysql_real_escape_string(stripslahses($ fname)),

+1

http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php ,其中包括许多其他 – ultranaut

+1

[The Great Escapism(或:您需要知道如何处理文本中的文本)](http://kunststube.net/escapism/) – deceze

回答

0

避免。看看mysqli_或PDO。这两个都是准备语句,并且在有效使用时更快更安全。

此外,准备的语句不需要转义。 这是在前面的回答解释说:

Why is using a mysql prepared statement more secure than using the common escape functions?

PHP.net on preparing a mysqli_ statement

+0

谢谢,我不知道mysql_functions正在被弃用。我以为我需要应用几个字符串来帮助防止注射。我会更多地关注PDO(从未远远领先于此)。谢谢您的回答。 –