2019-05-21 10:48:41 1523次浏览 2条回答 0 悬赏 10 金钱

我看到源代码中登录界面等,都是直接使用 $model->load() 函数来获取 form,非常方便,但是这个函数会对每个数据做处理,防止 XSS 攻击吗?

  • 回答于 2019-05-21 13:37 举报

    不会!纯碎是填充数据。

    7 条回复
    回复于 2019-05-21 14:26 回复

    那既想使用load方法,又想防止XSS攻击,有什么好的方式吗?我看到HtmlPurifier::process($content)只能对字符串过滤,而load方法是要求数组的。

    回复于 2019-05-21 16:55 回复

    在model的rules中添加过滤规则就行了

    回复于 2019-05-22 09:04 回复

    rules方法中是不是只是做验证呢?会对数据过滤处理吗?通过了rules方法,数据应该不会发生变化吧?不知道我的理解对不对

    回复于 2019-05-22 09:37 回复

    你只看到了load方法,但是没有看到其它方法。每个方法完成的任务是不一样的:一个表单的提交到入库是需要经过几个步骤的。简单来说,就是load,validate,save。你觉得预防xss攻击会在哪一步呢?

    回复于 2019-05-23 11:00 回复

    rules 有个filter方法, 会执行自定义的过滤方法, 这个方法里可以改变值, https://www.yiichina.com/doc/guide/2.0/tutorial-core-validators#filter 看这里

    回复于 2019-05-25 10:55 回复

    谢谢你的回复,看到了以前没有注意到的细节

    回复于 2019-05-25 10:56 回复

    您细讲一下吧,你后面提出来的问题更好,我非常想知道你的总结

    觉得很赞
  • 回答于 2019-05-21 17:57 举报

    你也可以添加一个钩子函数

    1 条回复
    回复于 2019-05-22 09:03 回复

    在哪个函数中加?

您需要登录后才可以回答。登录 | 立即注册
Sanlence
助理

Sanlence

注册时间:2017-04-10
最后登录:2021-07-24
在线时长:5小时48分
  • 粉丝0
  • 金钱115
  • 威望0
  • 积分165

热门问题