“我们永远不应该相信用户的输入”,这是我从网络上的某个地方读到的。
目前我有一个网络表单,他们输入他们的用户名和电子邮件。对于用户名字段,如何控制、检查和防止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/