对于XSS的一般处理,输入的时候encode?输出的时候encode?哪种处理更优?

2013-08-12 10:57:37 +08:00
 vvii
4212 次点击
所在节点    PHP
8 条回复
cloudzhou
2013-08-12 11:18:53 +08:00
现有的大多数框架是输出的时候encode,因为尽量保存原始输入信息。
otakustay
2013-08-12 11:45:13 +08:00
显然输出的时候encode才是正确的,假设一串输入是abc,你输入时进行encode变成xyz,随后有人告诉你现在新发现了一个XSS漏洞,其中xy字符是要encode的不然会出问题,请问你要怎么处理数据库中已经有了的数据?再encode一次的话输出就出错了,不encode的话输出又是XSS漏洞
Mutoo
2013-08-12 12:39:34 +08:00
输入防 SQL Injection,输出防 XSS
lqs
2013-08-12 22:13:18 +08:00
输出时。如果怕忘掉就选用一个默认自动encode的模板引擎。
qiaoy
2013-08-13 14:27:23 +08:00
@Mutoo sql注入和xss都需要在输入处做防护的,输出处不可控。
vvii
2013-08-13 14:39:17 +08:00
@qiaoy 为什么输出不可控呢?
hxgdzyuyi
2013-08-13 22:14:11 +08:00
输出吧。 要考虑数据可能要给移动端使用
kelz
2013-08-13 23:42:58 +08:00
关于xss的解决方案可参考freebuf的作者写的文章 http://www.freebuf.com/author/jiayzhan

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/78807

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX