我在 php 和 mysql 中有一个脚本,我想保护它的输入免受 sql 注入(inject)。
我知道一些功能,但真的不知道应该在哪里以及如何使用它们。
函数是:
nl2br()
preg_replace()
htmlspecialchars()
mysql_real_escape_string()
htmlentities()
我的输入是:
username
password
mobile
email
url
description (text area)
谁能帮我解释一下我该怎么做?
谢谢
您必须使用名为 mysqli 的更新版本的 mysql 驱动程序或者您可以使用类似 PDO 的替代方法
您可以将数据库与准备好的语句结合使用。这是防御sql注入(inject)的唯一方法。因此,请花点时间选择其中一门类(class)并学习如何使用它们。
请问,
SQL 注入(inject)仍然不是您唯一需要担心的事情。有人可以在公共(public)表单中添加一些 JavaScript 来隐藏页面或类似的东西。您可以使用它来过滤掉它们 preg_replace('/<script\b[^>]*>(.*?)<\/script>/is', "", $var);
但这仍然只是一个例子,还有很多东西需要学习,只需看看 PDO 或 mysqli 并开始构建。