【发布时间】:2016-07-08 19:42:38
【问题描述】:
我知道mysqli_real_escape_string函数可以用来防止SQL注入。 (但是,mysql_real_escape_string() 不会保护您免受某些注入)
我的问题是什么时候应该使用 mysqli_real_escape_string() 函数?
情况01
我有一个注册表单,其中包含 4 个字段,分别称为名字、姓氏、电子邮件、密码。
我也应该使用 mysqli_real_escape_string() 来插入查询吗?所有四个字段?
或者在登录表单中使用就足够了?
情况02
我有一个个人资料页面,例如 profile.php?user_name=damith
我在此页面的许多功能中都使用了 $_GET['user_name']。
我应该在所有这些函数中使用 mysqli_real_escape_string() 吗?
【问题讨论】:
-
我建议总是使用参数化查询。当您忘记在某些查询中使用此功能时,您可能犯了一个巨大的错误,从而危及所有数据。使用参数化,您必须编写易受影响的查询。 php.net/manual/en/mysqli.quickstart.prepared-statements.php
标签: php mysqli sql-injection