针对 javascript 代码的 CakePHP 表单验证
CakePHP form validation against javascript code
我正在开发一个 cakephp (2.5.6
) 应用程序,用户可以在其中输入评论、博客文章等。用户可以使用 html 标记 (h1, h2.., quote, ..)。
如何为表单输入添加安全性,以便用户无法添加 javascript 代码,如 <script>alert('foo');</script>
或其他任何内容。
我已经用简单的 $this->Form->input('description');
测试过了。现在,如果我用 echo $data['Post']['description']
显示描述,则在页面刷新时会显示警报。
防止这种情况的常用方法是什么? cakephp 是否提供任何助手或函数?
嗯,你应该通过 h()
将 all 输出推送到网页上,这是 htmlspecialchars 的 Cake 快捷方式。甚至是从 API 或硬件传感器获取的输出。谁告诉你他们不能给你恶意数据?最基本的安全规则:不要相信系统中的 任何 数据输入。
如果您需要更详细的消毒剂 HTML 净化器,它是一个库 and CakePHP plugin for it,可让您提出特定的过滤。例如,不允许 <script>
但允许 <b>
和 <a>
。它甚至可以过滤允许的 HTML 属性。阅读文档。
我正在开发一个 cakephp (2.5.6
) 应用程序,用户可以在其中输入评论、博客文章等。用户可以使用 html 标记 (h1, h2.., quote, ..)。
如何为表单输入添加安全性,以便用户无法添加 javascript 代码,如 <script>alert('foo');</script>
或其他任何内容。
我已经用简单的 $this->Form->input('description');
测试过了。现在,如果我用 echo $data['Post']['description']
显示描述,则在页面刷新时会显示警报。
防止这种情况的常用方法是什么? cakephp 是否提供任何助手或函数?
嗯,你应该通过 h()
将 all 输出推送到网页上,这是 htmlspecialchars 的 Cake 快捷方式。甚至是从 API 或硬件传感器获取的输出。谁告诉你他们不能给你恶意数据?最基本的安全规则:不要相信系统中的 任何 数据输入。
如果您需要更详细的消毒剂 HTML 净化器,它是一个库 and CakePHP plugin for it,可让您提出特定的过滤。例如,不允许 <script>
但允许 <b>
和 <a>
。它甚至可以过滤允许的 HTML 属性。阅读文档。