前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >前端开发涉及的Web安全

前端开发涉及的Web安全

原创
作者头像
伯爵
修改于 2019-10-22 06:49:38
修改于 2019-10-22 06:49:38
7570
举报
文章被收录于专栏:前端小菜鸟前端小菜鸟

前端开发涉及常见的Web安全漏洞有:浏览器Web安全,跨站脚本攻击(XSS),跨站请求伪装(CSRF),点击劫持,HTTP劫持,DNS劫持,文件上传漏洞等,以跨站脚本攻击漏洞最为常见,作为前端开发需要了解一些基本的Web安全漏洞和相关的防御措施。

浏览器安全

  1. 同源策略

同源策略:是浏览器安全功能的基本措施,限制了来自不同源的脚本和document对当前对象的一些属性的获取或者设置。同源策略的影响因素:域名或者IP,子域名,端口,协议。

不是浏览器所有的元素收到同源策略的约束。srcipt,img,iframe,link等DOM标签可以通过src属性加载跨域资源,但是同时浏览器限制了JavaScript的权限,不能对读写返回的内容。

XMLHttpRequest对象本身不能进行跨站请求,但是可以通过设置HTTP header报文的方式,获得跨站资源请求的能力,这个策略基础是:浏览器上JavaScript没有访问HTTP header的权限。涉及的请求首部:Origin,响应首部:Access-Control-Allow-Origin。

同源策略也可能存在漏洞,比如IE8的CSS跨域漏洞。

  1. 沙箱(SandBox)

SandBox是提供一种设置访问内容范围的措施,确保沙箱内部的进程只能访问被分配的资源,不能访问未被分配的资源,从而对系统本身提供安全保护。

现代浏览器是一般基于多进程架构,以Chrome为例主要有browser进程,renderer进程,插件进程和扩展进程。不同的进程各自分工通过特殊接口通信,browser进行管理浏览器前端页面,renderer进程管理page tab,browser进程管理renderer进程的资源分配,chrome的SandBox用来保护renderer对象,确保renderer进程的访问权限只能访问被分配的资源。

  1. 恶意网站拦截

对于恶意网站的定义,那些对于普通网民或者社会有害的网站都是恶意网站,仿冒,木马,盗号,博彩,色情这些常见的恶意网站,一般浏览器都有恶意网站举报功能,对于确认的恶意网站浏览器厂商会维护一份恶意网站黑名单,浏览器定时获取黑名单的最新目录进行拦截操作。

跨站脚本攻击(XSS)

代码语言:txt
AI代码解释
复制
跨站脚本攻击(XSS),全称Cross Site Script,为了区层叠样式表CSS使用了XSS简称。

跨站脚本攻击的产生是因为Web页面被植入了恶意的JavaScript代码,当用户浏览页面时诱导用户进行点击等操作后,这些恶意代码被执行,从而完成攻击目的。XSS按照不同的效果分类:

  1. 反射型XSS

将用户输入“反射”到浏览器上成为反射型XSS,也成为非持久性的XSS,比如:

<div><script>alert("xss")</script></div>

  1. 存储型XSS

相对于非持久性XSS,存储型的XSS是将用户输入进行数据持久化操作,具有一定的稳定性。

  1. 常见的XSS攻击

a. Cookie劫持

存储型XSS常见的安全漏洞有Cookie劫持,因为Cookie保存用户的登录凭证,如果获取到用户当前的Cookie可以绕过登录密码进行Web操作,具有很大的破坏力。可以通过设置Cookie过期时间,设置Cookie的HttpOnly标识,绑定客户端IP等操作封装Cookie劫持。

b. 模拟HTTP请求

可以通过模拟GET,POST请求请求或者操作服务器资源也是XSS漏洞的一种情况,通过操作DOM页面的操作完成对服务器的攻击。

c. 获取用户浏览器信息

通过JavaScript获取用户浏览器UserAgent获取用户浏览器准确信息,因为不同的浏览器都有自己特定的一些属性或者方法,使用浏览器版本特征判断可以准确的获取用户的浏览器信息,因为UserAngent对象是可以伪造的。

通过判断不同的操作系统,不同的浏览器以及版本信息,攻击者可以更精准的实施安全攻击。

XSS的防御:

a. 前端输入输出进行检查,对于特殊字符进行过滤,转码等操作

b. 使用带有HttpOnly的Cookie

c. 富文本编辑器禁止使用事件,可以实现跨域操作的inframe,form,base等危险的标签也会被禁止,比如github上<base> 元素字符串格式也会被转义。

跨站点请求伪装(CSRF)

代码语言:txt
AI代码解释
复制
 跨站点请求伪装 (CSRF即Cross-site request forgery)利用用户身份,执行非本意的操作。

CSRF是一种挟持了用户身份,在已经登录的Web应用上执行非本意的攻击操作。它的请求是跨域并且利用登录Cookie,token等信息伪造的。

  1. Cookie的获取

CSRF漏洞的第一步是伪造,在Web应用的删除等操作是需要登录认证才可以执行,所以需要获取用户的登录信息比如Cookie。

浏览器的Cookie策略分为两种:Sesstion Cookie和Third-party Cookie。Sesstion Cookie是临时性Cookie,保存在浏览器进程的内存中,打开新的Tab页面依旧可以在内存中获取Sesstion,生命周期在浏览器关闭时失效;Third-party Cookie又称为本地Cookie,需要在服务器设置Expire时间,保存在本地。

一些浏览器因为同源策略的原因,限制的了img,iframe等元素对Third-party Cookie的发送,比如IE浏览器,但是Firefox浏览器可以允许发生Third-party Cookie,在Firefox浏览器可以通过iframe等元素获取Third-party Cookie。比如

`<iframe ="http://www.a.com"></iframe>

`

在火狐浏览器上,我们在b网站获取a网站的内容,同时获取到Cookie的内容。

CSRF的防御:

a. 验证码:目前相对比较有效的防止CSRF漏洞的方式,通过强制的人机交互验证,更大程度的限制用户在不知情的情况下进行Web应用操作。

b. Referer Check:另外一种防止CSRF的思路,获取请求的“源”信息以判断请求是否合法,但是在实际应用中可能因为用户隐私设置,HTTPS跳转HTTP而导致获取不到相关参数,作为CSRF漏洞防御的一个补充措施。

c. Token认证:比较通用的预防措施,Token本身是一个不容易被猜中的随机数,分别保证在Cookie和和form中,通过判断Cookie的token和form的token是否一致。

点击劫持(ClickJacking)

代码语言:txt
AI代码解释
复制
点击劫持(ClickJacking)是一种视觉欺骗,使用iframe构建欺骗的DOM诱导用户非本意操作。

常见的点击劫持:

  1. 点击劫持 在Web页面使用iframe构建透明的页面,完全覆盖当前页面,当用户操作点击页面的时候触发iframe构建的页面,可以发送攻击者需要的数据完成攻击。
  2. 图片覆盖 使用ifame构建完整的图面覆盖当前页面的图片,当用户点击页面图片的时候,触发攻击代码,也可能构建新的电话号码覆盖网站原本提供的联系电话,导致用户上当受骗。
  3. 拖拽劫持 iframe构建可以拖拽的元素,当用户拖拽元素的过程中触发拖住事件,敏感信息被发生到攻击者服务器。
  4. 触屏劫持 发生在智能手机上的劫持漏洞,原理类似PC端,使用iframe构建元素欺骗用户。

点击劫持的防御:

点击劫持本质上是一种视觉上的欺骗,使用iframe构建欺骗DOM,用户操作这些DOM元素触发攻击事件,所以点击劫持的防御可以禁止使用iframe,常见的处理方式有两种。

a. frame busting:禁止iframe嵌套。

b. X-Frame-options:处理点击劫持的HTTP首部,可以配置是否使用iframe,以及配置iframe的来源。

HTTP劫持

HTTP劫持多见于网络运营商的操作,因为HTTP是明文传输,所以当运营上获取到网络链路上的HTTP请求时,在相应报文内容添加广告代码,当页面存在广告小弹窗说明页面目前被劫持,也可能是网络运营商的网络被攻击。

HTTPS是加密传输所以可以有效防止HTTP劫持。

HTTPS可以防止HTTP劫持。

DNS劫持

DNS劫持分为两种情况,一种是域名无法解析,则页面被路由到错误纠正页面,比如电信首页;第二种是域名解析被恶意路由到其他页面,域名是A网站结果被恶意劫持跳转到B网站导致无法访问A网站。

常见的钓鱼网站原理,其中灰色产业涉及违法问题现在已经被严厉监管。

文件上传漏洞

因为文件上传可能直接上传可执行脚本文件,所以需要处理文件上传验证以确保上传的服务器的文件是可信的,在Gmail文件上传使用文件类型检查文件格式,提供文件格式黑名单进行过滤,QQ邮箱直接使用文件后缀判断文件格式,提供白名单上传也就是指定的文件格式才可以被上传(Qmail是文件后缀判断,白名单处理是猜测的,之前做过类似处理对比过两种不同的文件处理方式)。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
阶段七:浏览器安全
32 | 同源策略:为什么XMLHttpRequest不能跨域请求资源–Web页面安全 浏览器安全分为三大块:Web页面安全、浏览器网络安全、浏览器系统安全。 同源策略 页面中最基础、最核心的安全策略:同源策略(same-origin policy) 如果两个URL协议相同、域名相同、端口相同,就称为这两个URL同源 同源策略就是说:相同源之间可以操作DOM、读取互相之间的Cookie、indexDB、locationStorage等页面数据以及网络层面共享。 也就解释了为什么同源策略限制了X
六个周
2022/10/28
4860
记一笔前端需要关注的安全知识
很多时候我们只是关注我们如何去页面,完成需求,怎么使用框架,样式兼容。很多时候我们忽略前端的安全问题。我以前觉得前端所谓的安全防范,其实都是没有用的,毕竟在浏览器,任何东西都暴露给用户,所以安全更多是后端去关注即可。但随着做前端的时间久了,会去深入研究一下曾经忽略的细节。才发现前端的安全其实是非常有必要的。
LamHo
2022/09/26
2830
记一笔前端需要关注的安全知识
前端网络安全 常见面试题速查
XSS 安全漏洞 简单转义是否有防护作⽤ HTML 标签⽂字内容 有 HTML 属性值 有 CSS 内联样式 ⽆ 内联 JavaScript ⽆ 内联 JSON ⽆ 跳转链接 ⽆
Cellinlab
2023/05/17
7210
前端安全编码规范
随着互联网高速的发展,信息安全已经成为企业重点关注焦点之一,而前端又是引发安全问题的高危据点,所以,作为一个前端开发人员,需要了解前端的安全问题,以及如何去预防、修复安全漏洞。下面就以前端可能受到的攻击方式为起点,讲解web中可能存在的安全漏洞以及如何去检测这些安全漏洞,如何去防范潜在的恶意攻击。
coder_koala
2020/12/07
1.4K0
前端安全编码规范
真的!Web安全入门看这个就够了
在Web发展初期由于对安全问题认知认识不足,导致发生过许多的安全问题,且遗留下许多历史问题:如PHP语言至今只能依靠较好的代码规范来防范文件包含漏洞,而无法从语言本身来杜绝此类安全问题的发生。常见的安全漏洞:SQL注入、XSS攻击、CSRF。
Java程序猿
2023/04/12
7920
白帽子讲web安全 pdf_白帽子讲web安全适合初学者看吗
一个网站的数据库,在没有任何保护的情况下,数据库服务端口是允许任何人随意连接的;在有了防火墙的保护后,通过ACL可以控制只允许信任来源的访问。这些措施在很大程度上保证了系统软件处于信任边界之内,从而杜绝了绝大部分的攻击来源。
全栈程序员站长
2022/09/29
6060
白帽子讲web安全 pdf_白帽子讲web安全适合初学者看吗
浅谈前端安全
安全问题的分类 按照所发生的区域分类 后端安全问题:所有发生在后端服务器、应用、服务当中的安全问题 前端安全问题:所有发生在浏览器、单页面应用、Web页面当中的安全问题 按照团队中哪个角色最适合来修复安全问题分类 后端安全问题:针对这个安全问题,后端最适合来修复 前端安全问题:针对这个安全问题,前端最适合来修复 综合以上 前端安全问题:发生在浏览器、前端应用当中或者通常由前端开发工程师来对其进行修复的安全问题 浏览器安全 同源策略 是一种约定,是浏览器最核心也最基本的安全功能,限制了来自不同源的docum
pitaojin
2018/05/25
4.9K0
简单web安全入门
Secure by default, in software, means that the default configuration settings are the most secure settings possible……
linjinhe
2018/06/06
8700
Web前端安全策略之XSS的攻击与防御
随着技术的发展,前端早已不是只做页面的展示了, 同时还需要做安全方面的处理,毕竟网站上很多数据会涉及到用户的隐私。 若是没有些安全策略, 很容易被别人通过某些操作,获取到一些用户隐私信息,那么用户数据隐私就无法得到保障。 对于前端方面的安全策略你又知道多少呢?接下来我们来介绍一下~
@零一
2021/01/29
7700
Web前端安全策略之XSS的攻击与防御
【云安全最佳实践】WEB安全常见攻击与防范
对于常规的Web攻击手段,如XSS、CSRF、SQL注入、(常规的不包括文件上传漏洞、DDoS攻击)等1.XSS跨站脚本攻击,因为缩写和css重叠,所以能叫XSS,跨脚本攻击是指通过存在安全漏洞的web网站注册用户的浏览器内非法的非本站点HTML标签或javascript进行一种攻击。跨站脚本攻击有可能造成以下影响利用虚假输入表单骗取用户个人信息用脚本窃取用户的cookie值,被害者在不知情况的下,帮助攻击者发送恶意请求防范手册HEAD ctx.set('X-XSS-Protection',0) //禁止X
小周sir
2022/10/31
12.9K0
《白帽子讲Web安全》读书笔记
起初,研究计算机系统和网络的人,被称为"Hacker",“Hacker"在中国按照音译,被称为“黑客”
玖柒的小窝
2021/09/17
1K0
《白帽子讲Web安全》读书笔记
Web安全系列——CSRF攻击
CSRF攻击给网站身份验证、用户账户和个人隐私带来极大威胁。了解 CSRF 攻击的流程、原理与防御措施,是构建安全可靠的Web应用程序的必要条件。
windealli
2023/10/13
5520
Web安全系列——CSRF攻击
CSRF攻击原理介绍和利用
注意:本文分享给安全从业人员,网站开发人员和运维人员在日常工作中使用和防范恶意攻击,请勿恶意使用下面描述技术进行非法操作。
全栈工程师修炼指南
2020/10/23
4.6K0
CSRF攻击原理介绍和利用
web安全浅析
写这篇文章的初衷,主要由于自己所负责的项目有这方面的需求,就简要提一提web安全方面的一些知识 一.web安全的兴起 web攻击技术经历几个阶段 a.服务器
lyb-geek
2018/03/27
1.8K0
web安全浅析
CSRF攻击与防御,Web安全的第一防线(源码,实战,5分钟科普文)
跨站请求伪造,也被称为“OneClick Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。
HACK学习
2019/08/07
9120
CSRF攻击与防御,Web安全的第一防线(源码,实战,5分钟科普文)
Web 安全总结(面试必备良药)
利用漏洞提交恶意 JavaScript 代码,比如在input, textarea等所有可能输入文本信息的区域,输入<script src="http://恶意网站"></script>等,提交后信息会存在服务器中,当用户再次打开网站请求到相应的数据,打开页面,恶意脚本就会将用户的 Cookie 信息等数据上传到黑客服务器。
winty
2019/12/21
9940
Web安全的三个攻防姿势
关于Web安全的问题,是一个老生常谈的问题,作为离用户最近的一层,我们大前端确实需要把手伸的更远一点。
Bug开发工程师
2018/09/21
5980
Web安全的三个攻防姿势
竞争激烈的互联网时代,是否需要注重一下WEB安全?
一直以来自己对WEB安全方面的知识了解的比较少,最近有点闲工夫了解了一下。也是为了以后面试吧,之前就遇到过问WEB安全方面的问题,答的不是很理想,所以整理了一下!
拾贰
2019/08/28
7710
竞争激烈的互联网时代,是否需要注重一下WEB安全?
面试中常见的的 web 安全问题
安全涉及的领域很大, 我也仅仅是了解一些皮毛, 每次面试前都要找资料复习, 很麻烦。
前端迷
2019/10/22
7840
保护你的网站免受黑客攻击:深入解析XSS和CSRF漏洞
👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.
Lorin 洛林
2024/04/27
6230
保护你的网站免受黑客攻击:深入解析XSS和CSRF漏洞
相关推荐
阶段七:浏览器安全
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档