继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

http你不得不知道的那些事(三)-XSS

ruibin
关注TA
已关注
手记 77
粉丝 9110
获赞 2572

web安全主要涉及到两方面的东西,一个是前面分享的CSRF,一个就是本篇将要分享的XSS。如果CSRF是沉睡中的巨人,那么XSS就是真正web安全方面的巨人,现在大部分的web攻击都来自XSS。

XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML或者JS代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。

如今的web前端开发者都应该清楚,在现代浏览器的同源策略保护下,浏览器的跨域行为受到了限制,并且从XSS漏洞攻击原理上讲,跨站这两个字其实没有什么必要。

XSS攻击分为三种:

  1. Reflected XSS(基于反射的XSS攻击)

  2. Stored XSS(基于存储的XSS攻击)

  3. DOM-based or local XSS(基于DOM或本地的XSS攻击)

前两种都比较简单,主要处理方式是对页面内容进行转义,目前很多前端框架都会自动帮你实现这个功能。很多时候我们都感觉不到,所以很多使用框架的新手都不知道自己不知不觉已经规避了大部分的XSS攻击。不过在自己手写原生代码时就要特别注意这个东西了。

现在讲一下不常见的XSS攻击方式,基于DOM或本地的XSS攻击。这种攻击方式基本在我们毫无防范毫无准备的时候发动攻击。攻击方式:一般是提供一个免费的wifi,但是提供免费wifi的网关会往你访问的任何页面插入一段脚本或者是直接返回一个钓鱼页面,从而植入恶意脚本。这种直接存在于页面,无须经过服务器返回就是基于本地的XSS攻击。
步骤如下所示:

  1. 提供一个免费的wifi。
  2. 开启一个特殊的DNS服务,将所有域名都解析到我们的电脑上,并把Wifi的DHCP-DNS设置为我们的电脑IP。
  3. 之后连上wifi的用户打开任何网站,请求都将被我们截取到。我们根据http头中的host字段来转发到真正服务器上。
  4. 收到服务器返回的数据之后,我们就可以实现网页脚本的注入,并返回给用户。
  5. 当注入的脚本被执行,用户的浏览器将依次预加载各大网站的常用脚本库。

是不是很可怕,是不是再也不敢连接免费wifi了,是不是不敢使用万能助手了~

处理方式其实比较简单,把明文的http请求换成加密的https请求,这样就不会被恶意wifi拦截请求了。其实这个就是wifi流量劫持,大家可以参考这篇文章https://www.cnblogs.com/index-html/p/wifi_hijack_3.html,上面有详细的关于wifi流量劫持的讲解。

总结一下了,web安全主要需要防范两个方面,一个是XSS一个是CSRF,两者都危害巨大。作为前端程序员需要做的主要是对内容转义、并且配合服务器进行验证码、随机数、请求方式的校验。后端程序员主要完成的工作是对协议、cookie、请求、session以及一些必要的转义工作。很多时候都需要前后端配合共同努力才能做好web安全的防范工作,这就要求前后端程序员都要对web安全有防范意识,有相关的专业知识。好了,以上是XSS。下一篇分享http报文,希望以上的分享对大家有用,thx。

打开App,阅读手记
6人推荐
发表评论
随时随地看视频慕课网APP