清理Codeigniter MVC输出的最佳方法

时间:2018-08-02 11:05:42

标签: codeigniter xss codeigniter-3 sanitization

我正在研究使用Smarty模板系统对Codigniter中的内容进行消毒的最佳标准

查看文档,我们被告知对输出而不是输入进行消毒。 https://www.codeigniter.com/user_guide/general/common_functions.html#html_escape

不同的文章说使用html_escape()并在输出之前晚使用它,但是我可以看到在早晚进行此操作的利弊。

在灵巧解析之前晚使用它可能会导致一些内置字符串出现问题,例如使用<br>的多行地址。 更聪明的解析之后甚至还会导致使用默认文本的探针,例如{$ var.name | default:'未设置'}。 您不能在此使用nofilter选项,因为$ var.name可能是恶意的。 这很好,因为它将捕获所有输出数据,包括模型设置器/获取器和原始查询结果

希望尽早进行消毒(从数据库中检索) 早在吸气剂     返回html_escape($ this-> _ address1);

或从数组设置     如果(isset($ data ['address1']))     {         $ this-> _ address1 = html_escape($ data ['address1']);     }

这意味着将对所有构建的字符串进行清理。例如插入恶意脚本的多行地址。 123街 alert('恶意');, 镇 县

虽然这将适用于所有模型视图,但不会捕获结果查询,因此需要进行清理。

您认为高效卫生的最佳标准是什么。

0 个答案:

没有答案