HTML编辑器漏洞

时间:2015-08-10 09:46:37

标签: javascript php html

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

我希望用户使用一些基本的html元素设置自己的描述,例如<b><iframe><body><style>等。

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

我尝试使用myqsl_real_escape_string(),但我认为这还不够

3 个答案:

答案 0 :(得分:2)

保护免受恶意HTML的攻击可能最好留给HTMLPurifier,您可以在其中列出您准备接受的用户标记。

不幸的是,没有一种安全的方法可以接受来自用户的JavaScript,因为有很多方法可以屏蔽内容,即使在沙盒环境中运行它也不一定会告诉你它是否安全,因此剥离{ {1}}标签完全可能是最安全的。

答案 1 :(得分:2)

您可以使用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;

?>

<强>输出:

你好, b标签用于文字

答案 2 :(得分:1)

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

您还可以使用这些技术阻止SQL注入。

  • 使用mysql_real_escape_string();
  • 使用预备陈述
  • 使用PDO准备好的陈述

您可以在此处找到有关它的更多信息:

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