我正在做一个网上商店,我对产品描述有点问题。
我希望用户使用一些基本的html元素设置自己的描述,例如<b>
,<iframe>
,<body>
,<style>
等。
那么我现在如何保护该描述不受sql注入或恶意javascript和php代码的影响?
我尝试使用myqsl_real_escape_string()
,但我认为这还不够
答案 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();
您可以在此处找到有关它的更多信息:
http://packetcode.com/article/preventing-sql-injection-php-security