我网站上的用户可以发布新闻。但就目前而言,就HTML而言,它都是荣誉系统。
function postNewsItem($subject, $body, $userid){
$time = time();
$subject = mysql_real_escape_string($subject);
$body = mysql_real_escape_string($body);
$q = "INSERT INTO news (subject, body, userid) VALUES ('$subject', '$body', '$userid')";
$result = mysql_query($q, $this->connection);
return 1;
}
我希望用户能够链接到图像,构建表格,加粗他们的文字等等,但我不希望他们能够链接到恶意脚本和什么不是。我知道有一些方法可以从用户输入中转义HTML,但是有一种方法可以在允许某些标记的情况下执行此操作吗?
答案 0 :(得分:6)
使用HTML PUrifier。它允许您基本上创建允许标签的白名单,并过滤掉其他任何内容。
答案 1 :(得分:6)
你可以使用strip_tags并允许某些标签
<?php
$allow = '<table><thead><th><tr><td><tbody><tfoot><img><a><b><i><u>';
$body = mysql_real_escape_string(strip_tags($body, $allow));
?>
当然你需要清理一些属性