我在cakephp中开发了一个应用程序,我发现了应用程序中存储的XSS攻击。为了处理这种攻击,我在我的应用程序中添加了Sanitizing::clean,它将特殊字符转换为HTML代码。
但是,当在链接$this->Html->link中使用任何经过消毒的字符串时,由于cakephp中的默认escape=true,该字符串将再次被编码。<转折&:它的结果是<而不是只是<。
可能的解决方案是在escape=false中添加$this->Html->link,但是我已经创建了应用程序,所以有太多的地方存在html->link,因此在任何地方进行更改都是不有效的。
如果有其他解决方案,请帮助??
发布于 2013-11-03 14:48:33
创建一个像MyHtmlHelper这样的自定义助手,它扩展了HtmlHelper并覆盖了link()方法。
在控制器中包括使用别名特性(如public $helpers = array('Html' => array('className' => 'MyHtmlHelper')); ),这样视图中的$this->Html将使用自定义助手的实例,而不必对视图文件进行任何更改。
https://stackoverflow.com/questions/19721998
复制相似问题