tinyMCE使用脚本标签发布代码?

时间:2015-01-15 15:05:48

标签: php mysql database tinymce htmlpurifier

我创建了一个用于创建文章http://8mags.com/bored/people/的页面 当我发布一篇包含脚本标签和其他HTML标签的文章时,脚本标签就出现了,这里是生成文章http://8mags.com/bored/people/stories/59b4f0c3a94d5f2637b376be6e554480.php的链接 这是安全威胁吗?我该怎样预防呢?这是我正在使用的代码

if (!empty($_REQUEST['content'])&&!empty($_REQUEST['title'])&&!empty($_REQUEST['writer'])) {
$title = $_POST['title'];
$content = $_POST['content'];
$writer = $_POST['writer'];
require_once 'htmlpurifier/library/HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();
$pure_content = $purifier->purify($content);
$entity_content = htmlentities($pure_content);
$entity_content = $mysqli->real_escape_string($entity_content);
$slashedtitle = addslashes($_POST['title']);
$slashedcontent = addslashes($_POST['content']);
$slashedwriter = addslashes($_POST['writer']);
$mysqli->query("INSERT INTO stories (TITLE, WRITER, CONTENT, UPVOTE, DOWNVOTE) VALUES ('$slashedtitle', '$slashedwriter', '$slashedcontent', 0, 0)");

1 个答案:

答案 0 :(得分:1)

据我所见,没有安全威胁。通过使用HTMLPurifier,应删除所有恶意代码。

我怀疑这里发生的事情是,tinyMCE编辑器将您编写的代码转换为HTML实体,然后提交表单。 <script>已转换为&lt;script&gt;。因此代码不会在浏览器中执行,也不会恶作剧。

如果您想测试恶意代码会发生什么,请使用Firebug之类的工具将代码注入编辑器,这样它就无法转义。