安全地将此脚本公开?新手问题

时间:2009-07-07 02:13:47

标签: php

<?php

if (isset($_POST['post'])) {

// sanitize variables
$title = mysql_real_escape_string(trim($_POST['title']));
$text = mysql_real_escape_string(trim($_POST['text']));

if (strlen($title) > 3) {

mysql_query("INSERT INTO msgs (title, text, date)
           VALUES('$title', '$text', '".time()."')");
header('location:  msg.php?id='.mysql_insert_id().'');
exit;

}

else {

echo '<h2>Errors</h2><p style="color: maroon">> Fields title and text must consist more than 3     characters.</span>';

}


}

?>

这样安全吗?我忘记了什么吗? 在我公开之前确定一下。

3 个答案:

答案 0 :(得分:4)

您没有检查“文本”的长度。

如果mysql_real_escape_string返回FALSE会怎样?

如果插入失败怎么办?在假设你获得插入ID之前,你不应该检查它吗?

答案 1 :(得分:2)

我会:

a)如果不允许HTML,请添加调用strip_tags();
b)如果允许HTML,则添加对htmlentities()的调用。

答案 2 :(得分:1)

您可以添加的另一件事是检查收到的数据是否来自您域中的表单。一些聪明的人可以创建自己的表单并发布到你的脚本。