网络安全 | XSS基础知识
前言
今天又到了我最喜欢的东西,一些网络安全有关的东西。
小时候就特别喜欢黑客,觉得特帅~
大学报计算机相关专业可能也是这方面的原因,但是阴差阳错,没有走网络安全的方向。
今天来说一说,XSS攻击的事情,我有幸,曾经用php搭建的博客(typecho),被我同学挂了脚本,xss了一下,完后,什么什么的,啊,你们懂得。
从那以后,我就知道,网络安全,是不可避免的,是一定要考虑到的,是一定要去了解的东西。
身处网络时代,谁又能置身事外!
什么是xss攻击?
XSS又叫CSS(Cross Site Script),跨站脚本攻击:指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
那么,当当前的网页弹出1的时候,我们就知道,这个网页是可以执行js脚本的了,那么我们是不是就可以通过document去盗取一些信息,来帮助我们更进一步的去潜入进去呢?例如盗取一下cookie等。
先来看一下XSS有几种吧:
- 持久型:一些可以提交的地方,文章评论,个人信息填写等,如果没有加过滤的话,嵌入的脚本就会被提交到服务器上,之后用户每次访问都会触发脚本(例如图中的alert(1),每个用户打开都会弹出1)
- 非持久型:反射型跨站脚本漏洞,是最普遍的类型。大多是链接的方式,需要用户点击,才能返回脚本进行操作(用户访问服务器–>点击跨站链接—>返回脚本代码)
- DOM型:客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞(很少见emm,反正我没见过hhh,日后见到了来补上,再细说)
XSS可能会带来的危害
使网页无法正常运行:这个就是我们上面中图示的内容,如果不仅仅是一个alert(1)
呢?外部来一个永久循环,这个网页的弹窗就会永远关不掉,导致无法正常的实现整体业务流程。
获取cookie信息:这个我们也在上文中说过,如果网页上可以执行js脚本的话,那么我们是可以通过document.cookie
来实现获取用户cookie的。
试想下如果像QQ空间说说中能够写入xss攻击语句,那岂不是看了你说说的人的号你都可以登录
一个字:爽~
劫持流量恶意跳转:
像这样,在网页中想办法插入一句像这样的语句,访问的网页就会直接跳转到百度去。
1 | <script>window.location.href="http://www.baidu.com";</script> |
XSS的攻击应该具备这样的条件
网页内部有输入框,内容可存储在服务器上
输入框内的内容,才能被提交到他的服务器上,才能改变这个网页内部的文件内容。
前提是这个输入,没有被过滤,才会成功哦!
可以自己写demo尝试一下,不建议直接在网络上开搞emm,自己玩玩就行哈~
XSS防御措施(对用户输入内容和服务端返回内容进行过滤和转译)
现代大部分浏览器都自带 XSS 筛选器(vue/react等主流框架已经避免类似问题,vue举例:不能在template中写script标签,无法在js中通过ref或append等方式动态改变或添加script标签)
过滤,对诸如script、img、a等标签进行过滤。
编码,像一些常见的符号,如<>在输入的时候要对其进行转换编码,这样做浏览器是不会对该标签进行解释执行的,同时也不影响显示效果。
最后
学习网络安全是为了保护好自己,在这个网络时代,避免自己的信息被不法分子盗取,而不是说我们学会如何去攻击别人。
还有更多的网络安全知识等着我们去学习呢,冲!