1

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

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

可能的解决方案是添加escape=false$this->Html->link但我已经创建了应用程序,所以存在的地方太多了,html->link所以到处去改变是没有效率的。

如果有任何其他解决方案存在,请帮助?

4

1 回答 1

2

制作一个自定义助手MyHtmlHelper,例如扩展HtmlHelper和覆盖该link()方法。

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

于 2013-11-03T14:48:33.527 回答