常说的前端安全是什么

本文将讲述前端的九种安全问题,是平常比较常见的安全问题,当然如果还有其他必要重要的安全问题大家可以帮忙补充:

一、XSS(Cross-Site Scripting)脚本攻击漏洞;

XSS这类安全问题发生的本质原因在于:浏览器错误的将攻击者提供的用户输入数据当做JavaScript脚本给执行了。用户写一些恶意的js代码,来执行一些可以的行为,盗取Cookie信息、会话攻击、、修改Web页面以欺骗用户。

解决方案:

1.输入过滤:对数据进行严格的输出编码,使得攻击者提供的数据不再被浏览器认为是脚本而被误执行。例如

2.将输出的字符串中的反斜杠进行转义,用正则去转码解码

3.从url中获取的信息,在前端进行转义后再输出

二、CSRF(Cross-sit request forgery)漏洞;

CSRF也称为跨站请求伪造,其实就是对网站中的一些表单提交行为被黑客利用。比如你的网站登录的时候存到cookie的一些个人信息,当你访问黑客的网站有一段相同代码隐藏div,但你点击的时候就会导致你的网站被登出或者被登录,就是在对别的网站就行操作的时候会对你之前访问的网站发送请求。

解决办法:

1.增加token验证.因为cookie发送请求的时候会自动增加上,但是token却不会,这样就避免了攻击

2.Referer验证。页面来源的判断

三、iframe安全隐患问题;

前端用iframe来引入进来的一些页面,比如嵌入一些广告,地图等等。但是有些iframe安全性我们无法去评估测试,有时候会携带一些第三方的插件,或者嵌入了一下不安全的脚本,这些都是值得我们去考虑的。

解决办法:

1.使用安全的网站进行嵌入;

2.在iframe添加一个叫sandbox的属性,浏览器会对iframe内容进行严格的控制,详细了解可以看看相关的API接口文档。

四、本地存储数据问题;

很多开发者为了方便,把一些个人信息不经加密直接存到本地或者cookie,这样是非常不安全的,黑客们可以很容易就拿到用户的信息,所有在放到cookie中的信息或者localStorage里的信息要进行加密,加密可以自己定义一些加密方法或者网上寻找一些加密的插件,或者用base64进行多次加密然后再多次解码,用以保证信息安全。

五、第三方依赖的安全性问题;

项目开发中过多的用第三方依赖或者插件,一方面会影响性能问题,另一方面第三方的依赖或者插件存在很多安全性问题,也会存在漏洞,所以要谨慎使用第三方的插件。

六、HTTPS加密传输数据;

在浏览器对服务器访问或者请求的过程中,会经过很多的协议或者步骤,当其中的某一步被黑客拦截的时候,如果信息没有加密,就会很容易被盗取。所以接口请求以及网站部署等最好进行HTTPS加密,这样防止被人盗取数据。

七、SQL注入:

应用程序在向后台数据库传递SQL时,攻击者将SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行的恶意SQL命令。

解决方案:

1.防止系统敏感信息泄露:该方法主要是在后台实现

2.数据转义

3.增加黑名单或白名单验证

八、文件上传漏洞

解决方案:

1.检查服务器是否判断了上传文件类型及后缀

2.定义上传文件类型白名单

3.文件上传目录禁止执行脚本解析

九、CDN劫持/污染

以出于性能考虑,前端应用通常会把一些静态资源存放到CDN上,在提高前端应用的访问速度的同时也隐含了一个新的安全风险。
如果攻击者劫持了CDN,或者对CDN中的资源进行了污染,那么我们的前端应用拿到的就是有问题的JS脚本或者Stylesheet文件。这种攻击方式造成的效果和XSS跨站脚本攻击相似。

解决方案:

防御这种攻击的办法是使用浏览器提供的SRI(Subresource Integrity)功能。

每个资源文件都有一个SRI值。由两部分组成,减号(-)左侧是生成SRI值用到的哈希算法名,右侧是经过Base64编码后的该资源文件的Hash值。

浏览器在处理这个script元素的时候,就会检查对应的JS脚本文件的完整性,看其是否和script元素中integrity属性指定的SRI值一致,如果不匹配,浏览器则会中止对这个JS脚本的处理

前端安全问题先分享到这里,欢迎大家留言补充。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值