作为一名前端,感觉很多公司的前端安全非常脆弱。就这两年面试的公司来说,很多创业公司不注重前端安全。虽然 IE8 以上浏览器以及 Vue.js 这一类框架对 XSS 攻击做了一定的防范,但仍免不了无意或故意写出有漏洞的代码,随随便便把 cookie 给搞走。当然,很多公司的前端只用 jQuery 就不提了,很多前端流行:老夫拿起 jQuery 就是干。真想反问, jQuery 尤其是 jQuery 的早期版本没有做非常好的 XSS 防范,你真能时时刻刻考虑自己写的代码是否有 XSS 漏洞?
不太了解后端,感觉大部分公司后端安全做的还可以, SQL 注入什么的感觉大家都挺注意的。只是有些疑问,为何前端安全那么脆弱。
1
daryl 2017-04-03 10:12:53 +08:00 1
其实讲道理, xss 也该是后端防范的= =
|
2
dubuqingfeng 2017-04-03 10:17:16 +08:00 via Android
其实讲道理, xss 也该是前后端防范的= =,更何况还有 csrf ,点击劫持,造成的蠕虫,说明白了还是水平太差
|
3
brucefeng 2017-04-03 10:17:34 +08:00
前端即使做了安全,后端还会继续做的。前端承担交互功能,做安全没什么实质性作用。
|
4
lujiajing1126 2017-04-03 10:18:26 +08:00 via iPhone 3
不觉得安全和用什么框架,类库有关系
|
5
chunqiuyiyu 2017-04-03 10:19:24 +08:00
不觉得安全和用什么框架,类库有关系 +1
|
6
littleylv 2017-04-03 10:34:33 +08:00
不觉得安全和用什么框架,类库有关系 +2
|
7
littleylv 2017-04-03 10:37:59 +08:00
先问是不是,再问为什么
|
8
sammo 2017-04-03 10:38:09 +08:00 via iPhone
私以为是这只是不重视集成测试的诸多后果之一
|
9
momocraft 2017-04-03 10:38:38 +08:00
(只会用 API) 和 (对安全没概念) 可能有关联性。要保证安全也需要能深入研究。
|
10
peneazy OP @lujiajing1126
@chunqiuyiyu @littleylv 就 Vue 来说,若其它环节都没有做任何防范处理(当然这种可能非常小), 第二种写法就存在 XSS 风险 <span>Message: {{ msg }}</span> <span>Message: {{{ msg_html }}}</span> |
11
wuling 2017-04-03 10:59:50 +08:00
私以为是大部分公司不重视或者没有相关保障措施。安全是个很复杂的东西,不能光靠程序员自律,一来安全知识领域很深,普通程序员最多做到最基本的注意事项。二来受限于业务进展,顾不了那么多东西。如果公司没有安全部门,没做专门安全测试,光靠自律就能安全了?不可能的
|
12
sagaxu 2017-04-03 11:04:51 +08:00
后端的职责,任何数据过来,都不该破坏或者影响其它正常数据,如 SQL 注入。
前端的职责,后端返回的任何数据,展示时都自己做好转义,比如 XSS 。 前后端一起合作完成的,例如 CSRF 。 后端在 controller 里统一转义,或者清洗后再入库,都是中了 PHP Magic Quotes 的遗毒 |
13
muziki 2017-04-03 11:13:53 +08:00 via iPhone
因为有价值观加成啊
什么?你说这儿不安全?罚你五个月饼好了 |
14
peneazy OP |
16
Moonless 2017-04-03 11:24:20 +08:00 via Android
@peneazy
双大括号会将数据解释为纯文本,而非 HTML 。为了输出真正的 HTML ,你需要使用 v-html 指令: <div v-html="rawHtml"></div> 被插入的内容都会被当做 HTML —— 数据绑定会被忽略。注意,你不能使用 v-html 来复合局部模板,因为 Vue 不是基于字符串的模板引擎。组件更适合担任 UI 重用与复合的基本单元。 你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容插值。 摘自 vue 文档 |
17
Biwood 2017-04-03 11:27:55 +08:00 via Android
360 网站监测 jQuery1.x 的最新版有 XSS 漏洞,能具体说说什么样的漏洞么,全世界那么多网站都在用的库,波及范围太广了吧
|
18
cjyang1128 2017-04-03 11:27:59 +08:00
xss 现在危害性也不是很高,只要后端返回 cookie 的时候把关键性的 cookie (比如 session id )设置为 secure 就行了。其他的 xss 只能恶心恶心人
|
19
EyreFree 2017-04-03 11:31:26 +08:00 via iPhone
钱没花到位或者压根不在乎,一般是亡羊补牢,没人搞我或者有人搞但是没出大乱子就不管。
举一个不太适当的例子:创业公司花三千五招了个实习生搞前端还指望什么安全... |
20
Luckyray 2017-04-03 11:32:27 +08:00 via iPhone
没钱啊
|
23
zhengxiaowai 2017-04-03 11:51:42 +08:00
因为对挣钱没有一点用处,国内什么鸟风气,还不知道吗?金钱至上,当安全威胁到挣钱时候才会去搞得,比如大一点公司
|
24
ma63d 2017-04-03 12:17:31 +08:00
@peneazy 搞笑了,不觉得安全和用什么框架,类库有关系 +1
同时, Vue 文档苦口婆心的说了一万次谨慎使用 HTML 插值和 v-html 。竟然也拿出来成为 Vue 的黑点。 现在这些人为了搞个大新闻真是什么损招都使得出啊。 |
25
ma63d 2017-04-03 12:20:39 +08:00
楼主千万别用原生 JS 了, document.innerHTML 危险更大更恐怖啊。。逃
|
26
changwei 2017-04-03 12:43:08 +08:00 via Android
这种还算小的,我现在看我同学写的各种类似于毕业设计的小项目,各种越权漏洞(数据库查询的时候 where 只接收 url 带上的 id ,不带上 session 里面的 user id 做限制条件)还有下载漏洞(../../这种的)还有上传不校验扩展名的(直接上传一个 jsp 到你服务器上),现在我们还在学最基础的 jsp ,至于其他 xss , csrf 的就更不用说了,从学校开始就有这种只看分数只看效果的思想,不重视隐含问题的习惯,只能靠以后职业生涯中的碰壁来修正吧。
|
27
MrMario 2017-04-03 12:52:13 +08:00 via iPhone
@cjyang1128 不妨再加上 http-only ^_^
|
28
dreamcountry 2017-04-03 13:17:07 +08:00
楼主这标题扣的帽子太大了,你说国内某些互联网公司还差不多
|
29
cjyang1128 2017-04-03 13:30:38 +08:00
@MrMario 对,就是 http-only
|
30
lujiajing1126 2017-04-03 13:38:52 +08:00 via iPhone
|
31
peneazy OP @ma63d 我明明在正文里说 Vue 好,做了一定的防范,相比 jQuery 更能减少没有安全意识前端出漏洞的可能
|
32
xiaoyu233 2017-04-03 13:42:51 +08:00
因为前端漏洞不如后端漏洞简单粗暴?
|
33
julyclyde 2017-04-03 15:55:29 +08:00
前端作为一个“界”存在于业内也就七八年吧,哪儿有那么多经验流传下来啊……
|
34
wobuhuicode 2017-04-03 16:05:51 +08:00 via iPhone
不要相信任何传过来的信息……这个是做后端最基本的原则……前端只是用来显示,不是写逻辑的
|
35
falcon05 2017-04-03 16:22:12 +08:00 via iPhone
前端还要担心安全的时候,说明后端没做好。
|
36
jackmasa 2017-04-03 16:38:31 +08:00
跟库关系当然大拉。。。
插个题,有人知道这句代码会导致什么安全问题吗? ```javascript jQuery.get(location.pathname) ``` |
37
loading 2017-04-03 16:46:58 +08:00 via Android
这个锅应该前端没什么好背的。
|
38
bdbai 2017-04-03 17:37:18 +08:00 via Android
@cjyang1128 你说的是 xss 还是 csrf ?
|
39
Reign 2017-04-03 18:14:00 +08:00
前端再怎么安全,都是要让后端重新来验证的,还不如放弃前端过滤
|
40
mrjoel 2017-04-03 18:58:49 +08:00 via iPhone
前端 xss 的受害者一般是用户
|
41
xucheng 2017-04-03 20:24:45 +08:00 via iPad
XSS 不是应该靠 Content Security Policy 就可以解决的吗
|
42
jzz7280 2017-04-03 22:41:44 +08:00
不然网络专业就不会转行了
|
43
erevus 2017-04-03 23:29:25 +08:00
|
44
aboutTime 2017-04-04 00:34:38 +08:00
我有一天闲来无事,用 react 试了下写点有 csrf 漏洞的代码,发现框架已经对 csrf 做了处理
现在的浏览器和框架应该对这方面有处理 私以为,前端安全怎么做也是一层纸,不过做还是要做的 |
45
vincentqi 2017-04-04 00:47:07 +08:00
安全成本也算在成本里,一个治安良好的社区没必要家家装防盗窗
|
47
Jiavan 2017-04-04 10:06:49 +08:00 via Android
这个根本还是得后端来做验证,前端只是辅助性的防范,真正想 attack 的完全可以直接绕过 js 验证,倒是觉得某些公司很少考虑后端需要做这些事情
|
48
ryd994 2017-04-04 10:45:53 +08:00 via Android
因为他们后端也没注意
|
51
hweining 2017-04-05 22:53:29 +08:00
|