黑客恶意篡改你的网页前端代码,在里面注入一些自己的html+javascript 的脚本和代码,然后在用户访问那个网站的网页的时候,黑客注入那些恶意的脚本就运行了。恶意脚本运行的时候会控制你的浏览器,这个时候脚本就可以做很多的事情。
XSS攻击类型
反射型攻击
主要是想办法让你点击一个URL链接,这个URL链接里就嵌入了恶意脚本,点击那个URL链接之后,那个URL执行的是黑客自己的服务器上的一段恶意脚本。
具体的场景可能是一张图片,或者动图,或者小视频,诱惑性,引诱用户去点击。
然后用户点击之后,而已脚本被返回到你的浏览器里运行,此时就可以控制浏览器的行为。通过这个控制,可以让你自动关注某个用户的ID,然后控制用户发布一个带有病毒的微博等等。
浏览器可能通过cookie存放了用户的sessionID信息,此时脚本就能利用cookie去伪造用户登录,获取session信息,最后以用户的名义在系统里面执行一些操作。
持久型攻击
比如在论坛或者社交网站之类的系统,黑客在帖子或者评论上写了一段恶意脚本,然后把恶意脚本混杂在评论内容里提交到网站的数据库里去。然后此时其他的用户在自己的浏览器浏览社交网站,正好浏览到这个包含恶意脚本的评论内容,此时恶意脚本就可以运行了,就可以干坏事了。
如何防御XSS攻击
- 包含恶意URL链接的图片、视频、动图,不去点击,尽量使用正规网站。
- 消毒机制,针对那些可能会存在黑客输入恶意脚本接口(比如评论接口),就可以在代码里对内容进行消毒(可以使用过滤器),对代码进行转义,比如把
>转义为>
等,这样就可以把脚本里的html标签、js代码之类的东西,都给转义掉,让这些而已脚本失效。 - HttpOnly方式,如果在浏览器存放cookie的时候,可以设置一个
HttpOnly
属性,可以让在浏览器运行的js脚本禁止 访问这些 HttpOnly cookie的,这样黑客就无法窃取你再浏览器存储的cookie。