如何限制用户可以输入到文本框中的HTML类型?我正在运行一个小型论坛,使用一些我正在测试的自定义软件,但我需要知道如何限制HTML输入。有什么建议么?将HTML输入限制为文本框
1
A
回答
2
我建议稍微另一种方法:
- 不过滤传入的用户数据(除预防SQL注入攻击)。用户数据应尽可能保持纯净。
- 过滤数据库中的所有传出的数据,这是哪里的东西像标签剥离等。应该发生
保持用户数据的清洁让你在它是如何显示的更多的灵活性。过滤所有外发数据是一个很好的习惯(沿着永不相信的数据模型)。
0
提交文本后,您可以使用PHP中的正则表达式去除任何/所有与您的预定义集合不匹配的标签。
它看起来像下面这样:
find open tag (<)
if contents != allowed tag, remove tag (from <..>)
0
解析输入提供,剥离不完全匹配您允许列表中的所有HTML标签。这可以是一个复杂的正则表达式,也可以通过输入字符串的char []进行有状态迭代,从而构建允许的输入字符串并剥离
img
等标签上的不需要的属性。使用不同的代码系统(BB代码,降价)
找一些代码网上说已经这样做了,为您实施的基础来使用。例如Slashcode必须执行此,因此寻找其在Perl实现,并使用正则表达式(我认为是有)
2
您没有说明什么论坛是内置的,但如果它的PHP,退房:
库特征:白名单,搬运,良好的,嵌套,属性,XSS安全标准安全
0
无论你使用什么,一定要知道什么样的HTML内容可能是危险的。
例如一个<脚本>标记非常明显,但在IE中,style>标记与一样糟糕,因为它可以调用JScript命令。
实际上,任何style =“...”属性都可以在IE中调用脚本。
<对象>将是一个更多的标记是厌倦的。
0
PHP带有一个简单的功能strip_tag去除HTML标签。它允许某些标签不被剥离。
实施例#1用strip_tags()的例子
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>
上面的示例将输出:
Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>
个人的一个论坛,我会用BB代码或降价因为量支持和功能,如实时预览。
相关问题
- 1. HTML文本输入限制
- 2. HTML文本框限制在十进制输入
- 3. 如何将文本框输入限制为html中的数字0-10
- 4. 文本框用户输入限制
- 5. 将输入框限制为0-100
- 6. 将文本框/文本框中的输入限制为仅在J2me中使用字母数字输入
- 7. 将VBA userform文本框中的输入限制为仅限数字
- 8. 将文本框输入限制在C#中的数字#
- 9. 将纯文本输入转换为HTML
- 10. 如何将文本框的textchanged事件限制为键盘输入?
- 11. 使用jQuery将HTML文本输入更改为密码输入
- 12. 将输入框文本打印为简单文本而不是html标记
- 13. 将HTML输入限制为固定长度数字
- 14. 将输入限制为仅限整数(文本崩溃PYTHON程序)
- 15. 文本输入限制Flex3空气
- 16. 限制输入在编辑文本
- 17. JavaScript限制文本输入字符
- 18. 文本输入字符限制
- 19. Frabricjs - 限制文本输入区域
- 20. HTML文本框输入工具提示?
- 21. 获取HTML文本框输入
- 22. 如何居中输入文本框HTML?
- 23. 的Html透明文本输入框
- 24. HTML如何淡出输入文本框
- 25. 在html文本框中输入ascii
- 26. 将用户输入限制为HHMMSS
- 27. 将用户输入限制为字母
- 28. 强制在文本框上的文本输入为am/pm
- 29. 如何限制输入文本框允许只有0和1
- 30. 限制在文本框中允许的字符(输入金额)
重要的是使用白名单 - 寻找你将允许的标签,而不是搜索你不想要的标签。 – 2008-10-01 18:03:53