【发布时间】:2011-12-03 16:06:45
【问题描述】:
我明白了
$id = (int) $_POST['id']
$content = filter_input(INPUT_POST, 'post_content', FILTER_SANITIZE_STRING);
当我将 $content 字符串发布到数据库时,上述内容使我的 $content 字符串得到保护:
$conn->new->query("UPDATE `posts` SET `content` = " . $conn->escape_string($content) . " where `id` = {$id};");
但同时,它确实删除了一些特殊字符,例如标签,例如我不能在我的帖子中使用<,因为它会被删除。
我怎样才能修改它,以获得足够的安全性,同时防止我的代码被黑客入侵?
【问题讨论】:
-
FILTER_SANITIZE_STRING是strip_tags和htmlspecialchars的组合。你必须决定你想要/保留什么。如果允许使用标签,则使用真正的过滤器,如 HTMLPurifier。
标签: php security post filtering