HTML编辑器漏洞


HTML editor vulnerability

我正在做一个网上商店,我对产品的描述有一点问题。

我想用户设置自己的描述与一些基本的html元素,如<b>, <iframe>, <body>, <style>

那么我现在如何保护该描述从sql注入或恶意javascript和php代码?

我尝试了myqsl_real_escape_string(),但我认为这是不够的

您可以使用BB-Codes来描述。

例如

:

<?php
$description = 'hello, [b]b Tag[/b] for test';
$description = htmlspecialchars($description, ENT_QUOTES, "UTF-8");
$description = preg_replace(''[b](.*?)'['/b]','<b>$1</b>',$description);
echo $description;
?>
输出:

hello, b标签用于文本

防止恶意HTML可能最好留给像HTMLPurifier这样的东西,你可以列出你准备接受来自用户的标签。

没有真正安全的方式来接受来自用户的JavaScript,不幸的是,因为有太多的方法来屏蔽内容,即使在沙盒环境中运行它也不一定告诉你它是否安全,所以完全剥离<script>标记可能是最安全的。

我建议使用PDO来运行参数化的SQL查询,这可以保护您免受SQL注入。

您还可以使用这些技术来防止sql注入。

  • 使用mysql_real_escape_string();
  • 使用预处理语句
  • 使用PDO准备语句

你可以在这里找到更多的信息:

http://packetcode.com/article/preventing-sql-injection-php-security