php - 检查用户输入和防止mysql注入(inject)的方法有哪些?

标签 php mysql forms input

“我们永远不应该相信用户的输入”,这是我从网络上的某个地方读到的。

目前我有一个网络表单,他们输入他们的用户名和电子邮件。对于用户名字段,如何控制、检查和防止mysql注入(inject)??目前,在我的 php 脚本中我只这样做:

$username = mysql_real_escape_string($_POST['username']); // prevent mysql injection

看了一些教程,在mysql_real_escape_string函数之前,还有其他的函数,比如,htmlentities等(想不起来是什么了,现在找不到了,唉)

是否必须在 mysql_real_escape_string 之前包含所谓的“htmlentities”函数??

您通常使用什么方法检查用户的输入数据?

哦,是的,还有一些其他功能:

stripslashes();
serialize();
urlencode();

我必须包括那些吗?

最佳答案

就将数据放入数据库而言,您做对了。您可以免受 SQL 注入(inject)攻击。

htmlentities()htmlspecialchars() 与 SQL 注入(inject)攻击无关;它们与 XSS 有关攻击,这是您应该研究的另一个主题,如果您将用户输入显示回网络,这也是一个相关问题。

关于php - 检查用户输入和防止mysql注入(inject)的方法有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1096151/

相关文章:

php - Symfony 2 自己的字段类型 - 总是 "This value is not valid"错误

php - 如何修复用户 'user_name' 已超出 'max_user_connections' 资源(当前值 : 30)?

mysql - 没有找到适合 jdbc mysql 的驱动程序?

javascript - 在 ajax 调用中传递 php 值

mysql - 添加refinerycms gem后迁移数据库的问题

php - Jquery传递复选框值并加载div

php - 使用 jQuery 发送表单并检查是否已提交

php - 填充连接表

php - 从我的网站向 Twitter 帐户发布推文时如何将文本设为粗体或斜体

php - 无法通过 getElementById 操作 AJAX 下拉列表