我的php脚本的Sql可注入性

我的php脚本的Sql可注入性,php,mysql,security,validation,Php,Mysql,Security,Validation,通常情况下,我会对所有用户输入(包括字符串和数字输入)执行此操作: $matric_no = mysql_real_escape_string ($_POST['matric_no']); 我使用LHS上的参数来获取所需的值,以便处理或发布到mysql中。这种做法足够安全吗?这是一种好的做法吗 感谢您的帮助。只要插入查询的所有变量都用引号括起来,并使用mysql\u real\u escape\u string()进行转义,您就应该没事了 如果可能,我建议使用扩展,而不是过时的Mysql扩展。

通常情况下,我会对所有用户输入(包括字符串和数字输入)执行此操作:

$matric_no = mysql_real_escape_string ($_POST['matric_no']);
我使用LHS上的参数来获取所需的值,以便处理或发布到mysql中。这种做法足够安全吗?这是一种好的做法吗

感谢您的帮助。

只要插入查询的所有变量都用引号括起来,并使用
mysql\u real\u escape\u string()
进行转义,您就应该没事了


如果可能,我建议使用扩展,而不是过时的Mysql扩展。如果您这样做,那么您可以使用参数绑定,并100%确保您的查询不会被注入(只要您绑定了所有参数)。

您能在中显示您正在使用的查询吗?@Pekka好吧,假设我将其用于INSERT/UPDATE语句。这种做法好吗?这种做法本身不仅是好的,甚至是必要的:)但它是否足够取决于你的质疑。为数字输入显示一个真实的查询,你需要检查它们实际上是数字;mysql\u real\u escape\u string escape…strings对于仅整数输入,使用
intval()
更好。@Colshrapanel:感谢您的编辑。根据PHP和mysql中使用的字符集,仍然可以将SQL注入引号内的mysql\u real\u转义查询中。正如建议的那样,只要避免字符串蒙格函数的大量问题,而使用绑定参数即可。如何将其用于htmlentities和stripslash函数。。。可能会把它变成一个函数。求你了,我不知道。