CakePHP:防止XSS攻击

时间:2013-11-01 06:40:25

标签: php cakephp xss

我在cakephp中开发了一个应用程序,我发现在我的应用程序中存储的XSS攻击。为了处理这种攻击,我在我的应用程序中添加了Sanitizing::clean,它将特殊字符转换为HTML代码。

但是当链接$this->Html->link中使用了任何已清理的字符串时,由于cakephp中的默认escape=true,该字符串会再次被编码。 & lt turns& amp:lt导致& lt而不是<

可能的解决方案是在escape=false中添加$this->Html->link,但我创建了应用程序,因此存在html->link存在的地方太多,因此无法进行更改无处不在。

如果还有其他解决方案,请帮忙吗?

1 个答案:

答案 0 :(得分:2)

制作MyHtmlHelper之类的自定义帮助程序,扩展HtmlHelper并覆盖link()方法。

在你的控制器中包括使用像public $helpers = array('Html' => array('className' => 'MyHtmlHelper'));这样的别名功能,这样你在视图中的$this->Html将使用你的自定义助手的实例,你不必在视图文件中进行任何更改。