公司的软件被用户的漏洞扫描工具扫出了很多安全问题,其中很多是关于XSS。
公司的后端说这个要前端来做,我个人觉得前端做也可以,但是重点不是再后端吗?
后端要是把接口接受的数据全部转义了,我觉得就没什么风险了。
所以我觉得前端其实没有很大的必要做这个,但是我不确定前端如果不做,
而后端做的很好的话是否还会有风险?或者是否还会被政府的扫描工具扫出安全问题?
公司的软件被用户的漏洞扫描工具扫出了很多安全问题,其中很多是关于XSS。
公司的后端说这个要前端来做,我个人觉得前端做也可以,但是重点不是再后端吗?
后端要是把接口接受的数据全部转义了,我觉得就没什么风险了。
所以我觉得前端其实没有很大的必要做这个,但是我不确定前端如果不做,
而后端做的很好的话是否还会有风险?或者是否还会被政府的扫描工具扫出安全问题?
这种事只能说, 前后都要做, 重点在后端
比如说 后端给你返回的数据, 你不用验证, 这个要他们保证数据库里取出来的完全正确
前端要保证 录入的数据完全正确, 其实边界不是那么清晰
你看一下 wiki 上的介绍,关于 XSS 的防御方式全部都是讲后端的。
10 回答11.3k 阅读
7 回答5.4k 阅读
6 回答7k 阅读✓ 已解决
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
8 回答6.4k 阅读
2 回答2.8k 阅读✓ 已解决
例如:
我在这个评论框,输入下面的代码,如果前端不处理直接展示的话,就会一直弹出来(这只是XSS一个简单的例子)。
但是对于一些非XSS攻击,例如 经典的sql注入: url?id=1 or 1=1
sql就会变成 SELECT * FROM article WHERE id =1 or 1=1。
这个一定是要后端去严格限制的。
对于后端来说,前端(客户端)所有的参数都是不可信任的,因为都可以伪造。
所以,无论是XSS,CORS还是SQL注入:
从用户体验来看,前端要做处理;
从系统安全性来看,后端一定要处理(不仅仅是XSS攻击)。