针对 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 属性。阅读文档。