我正在开发一个cakephp(2.5.6
)应用程序,用户可以在其中输入评论,博客帖子等。用户可以使用html标记(h1,h2 ..,quote,..)。
如何为表单输入添加安全性,以便用户无法添加<script>alert('foo');</script>
之类的javascript代码或其他任何内容。
我用简单的$this->Form->input('description');
对其进行了测试。现在,如果我使用echo $data['Post']['description']
显示说明,则会在页面刷新时显示警告。
防止这种情况的常见方法是什么? cakephp是否提供任何帮助或功能?
答案 0 :(得分:1)
好吧,您应该通过h()
推送网页上的所有输出,这是htmlspecialchars的Cake快捷方式。甚至是您从API或硬件传感器获取的输出。谁告诉你他们不能给你恶意数据?最基本的安全规则:不要信任系统中的任何数据输入。
如果您需要更详细的清洁剂HTML Purifier,它是一个lib and CakePHP plugin for it,可让您进行特定的过滤。例如,禁止<script>
但允许<b>
和<a>
。它甚至可以过滤允许的HTML属性。阅读文档。