我在模型中以html格式存储了一些用户通知。前
$ not =“测试通知”;
但是根据我从其他输入获得的输入,我需要使用h()函数来逃避输出。所以 我的问题是,在这种情况下是否安全(针对XSS)输出而不进行转义,因为数据是在内部生成的,而不是从最终用户那里获取输入。
同样,在其他地方,我使用AJAX输出这种东西并在jQuery中调用.html()。在这种情况下它也安全吗?
由于
答案 0 :(得分:1)
对于普通文本字符串,您可以自己回答该问题:
绝对不可能从前端或后端将<
或>
等字符串放入该字符串中吗?如果是,那么。如果没有,你需要用h()包装它。
它不仅仅是XSS,布局也可能因输出数据的无效处理而中断。
因此,如果您在PHP代码中生成该字符串,您通常会知道该方法是多么“安全”(因为外部的访问权限有限)。
另请注意,当通过wysiysg编辑器允许HTML时,上述内容不适用,因为HTML不能被h()编辑。因此,您需要使用像https://github.com/burzum/cakephp-html-purifier
这样的输入来清理数据