教你回答面试官问题—前端安全

在面试经常会被问到一个问题就是你了解 前端安全 吗?对于很多初中级前端程序员来说,项目中一般很难接触到或者是想不到这种问题,没有实践也就不好回答这个问题。小前哥现在教你如何回答面试官的这个问题,且不挖坑~~~

回答问题一般就是解决方案在前,原理在后,但在学习的时候我们先原理,后方案。所以我们下面开始了解前端安全中有哪些前端攻击?

一 .XSS攻击

xss  跨站脚本攻击(Cross-site scripting)是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户端代码。当被攻击者登陆网站时就会自动运行这些恶意代码,从而,攻击者可以突破网站的访问权限,冒充受害者。

XSS 攻击可以分为3类:存储型(持久型)、反射型(非持久型)、DOM 型。

(哈哈,概念性的东西还是要看一下的,因为我们是面试回答,所以简单了解一下下~~)

下面说一个最简单最好记的一种XSS攻击:

eg:你的页面中有一个表单,表单中有一个<input type="text">,此时如果你的用户在页面中输入 <script>alert('哈哈哈,乖乖叫爷爷')</script> ,,在点击 保存 的时候,我们就会把input中的内容提交给后台,保存在 数据库 。在你展示表单的页面中,就会 alert('哈哈哈,乖乖叫爷爷')。

防范机制  就是我们要给面试官说的重点,针对这种问题,实际项目会有两种解决方案

1.前端在提交之前对数据进行转译,将< & > / 等特殊字符进行转译,这样存数据库中的数据也就是你转译过的。这里注意jquery中append的用法。

2.对于这种问题,后端同学也可以做到过滤,如java可以在他们的filter中对我们提交的数据进行转移修改。这样的话前端同学就不用做任何工作了(此处有笑声~~)

3.保护好你的cookie。 cookie的HttpOnly属性 ,加上了这个属性的cookie字段,js是无法进行读写的,这样能有效的防止XSS攻击。也可将 secure属性设置为true ,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。

二.CSRF攻击

CSRF(Cross-site request forgery) 跨站请求伪造。攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。

防范机制

1.合适使用post和get。提交 Post 判断referer

HTTP请求中有一个referer的报文头,用来指明当前流量的来源参考页。如果我们用post就可以将页面的referer带入,从而进行判断请求的来源是不是安全的网站。但是referer在本地起的服务中是没有的,直接请求页面也不会有。这就是为什么我们要用Post请求方式。直接请求页面,因为post请求是肯定会带入referer,但get有可能不会带referer。

2.利用Token(建议使用)

1>在请求头header中添加,这需要前后端制定同一个传值规则;

2>从cookie中获取。

3>在请求的时候直接以参数的形式传值给后端。

总结:对于回答面试官的问题,我们可以从两方面去回答,一是XSS攻击,解决方案特殊字符的转译、cookie的安全设置等,二是CSRF,解决方案为使用post和利用token(后端解决)。 总之如果你对安全的知识了解的不是很深入,可以把解决方案说出来,然后话题转移在后端解决方案上 ,学会完美避开话题, 让面试官觉得你对这个了解的,以后让你做你知道如何做就行

(对于面试,前端安全问题,小前哥就帮你到这了~~~)

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章