好的,我有一个用户表单,它的值被提交到数据库。
我的价值观如下,
$type = $_POST['type'];
$username = mysql_real_escape_string($_POST['username']);
$gender = $_POST['gender'];
$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string($_POST['password']);然后我插入它们如下,
mysql_query("INSERT INTO accounts (username, email, password, gender, type) VALUES ('$username', '$email', '$password', '$gender', '$type')");现在我对此非常满意,然后我做了一些研究,一些叫做mysql_real_escape_string的表让我担心安全性,然后我发现也应该用于单选按钮,然后我发现我需要定义一个输入值是否是一个整数并检查它?现在这让我很担心,因为我认为我的网站是安全的,但它显然不是,所以在一些帮助下,你能解释一下巴比表,以及如何比使用标准的真实转义更安全吗?
谢谢
发布于 2011-04-11 21:38:15
这是消毒你的数据的概念,,特别是不可预测的输入是公开的。
发布于 2011-04-11 21:36:30
网络安全的第一条规则:永远不要相信你的输入。
mysql_real_escape_string通常是足够好的。您可以做其他有趣的事情,比如检查,看看应该是数字的东西是什么(这比调用mysql_real_escape_string容易得多)。
请记住,如果您将输入用于SQL查询以外的其他方面,则需要格外偏执。例如,我有一个脚本,它以名称作为参数,并使用它在磁盘上查找文件。然而,如果有人做了一些棘手的事情,他们可能能够访问一个文件,他们不应该使用我的脚本。因此,通过对照正则表达式检查文件名,确保文件名看起来是正确的。
发布于 2011-04-11 21:37:26
转义您的所有参数将发挥作用,因为这将确保您的所有特殊字符将被转义。所以只要相信你的mysql_real_escape_string :-)
https://stackoverflow.com/questions/5627826
复制相似问题