防止注射的方法不止一种

时间:2012-10-06 01:58:33

标签: php mysql

  

可能重复:
  Best way to prevent SQL injection in PHP?

我见过mysql_real_escape_string和strip slashes用于防止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)),

2 个答案:

答案 0 :(得分:0)

您应该使用准备好的查询解决方案而不是字符串格式。

Are Paramerterized queries necessary in pdo?

prepared queries with pdo

Preventing sql injection in php

答案 1 :(得分:0)

避免使用mysql_函数,因为它们已被弃用。查看mysqli_或PDO。这两个都是预备语句,并且在有效使用时更快,更安全。

此外,准备好的陈述不需要转义。 这在前一个答案中有解释:

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

PHP.net on preparing a mysqli_ statement

相关问题