php - 我应该何时以及如何使用此功能?

标签 php mysql security

<分区>

我在 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 并开始构建。

关于php - 我应该何时以及如何使用此功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18268332/

相关文章:

grails - 哪个安全框架用于 Grails 应用程序?

android - 如何授予我的 Android 应用管理员权限?

php - MySQL GROUP BY 查询仅返回一行

java - 如何将我的结果集移动到特定记录

mysql - Master Master Replication with keepalived 用于故障转移和一致性

MySql - 不支持 BLOB/TEXT 列

c - 如何通过 TLS 测试 POODLE?

php - 更新代码不适用于 php 和 mysql

javascript - 使用 Jquery 倒计时器过早触发 Mysql 更新

php - Wordpress 在 sql 查询中使用 $_GET