为了对用户提供最佳的XSS攻击保护,数据应该在向用户显示时进行清理,而不是在数据库插入时进行清理,如果我完全正确的话。所以我的问题是我可以在CakePHP中自动化数据清理,以便Cakes查询自动检索的链接模型在查询时也会被清理吗?或者我应该总是手动循环调用所有链接模型的清理方法吗?
答案 0 :(得分:2)
未通过其中一个核心助手或外部助手传递的所有输出都应通过视图中的h() method传递。
echo h($model['Model']['name']);
如果您想在模型中执行此操作,Model::afterFind()回调是修改数据的正确位置。但我不建议对那里的所有内容进行清理,因为有些情况比如编辑数据或将相同的数据暴露给API或JSON,可能不需要或不同的清理。
同样请参阅HtmlPurifier和HtmlPurifier for CakePHP。它是一个强大的过滤器和卫生库。
答案 1 :(得分:1)