今天的码农女孩做了关于前端网络攻击的笔记

前端网络攻击
1. XSS

XSS,跨站脚本攻击。是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
它可以分为两类:反射型和持久型。

反射型XSS攻击场景:用户点击嵌入恶意脚本的链接,攻击者可以获取用户的cookie信息或密码等重要信息,进行恶性操作。
解决:开启cookie的HttpOnly属性,禁止JavaScript脚本读取cookie信息。

持久型XSS攻击场景:攻击者提交含有恶意脚本的请求(通常使用<script>标签),此脚本被保存在数据库中。用户再次浏览页面,包含恶意脚本的页面会自动执行脚本,从而达到攻击效果。这种攻击常见于论坛,博客等应用中。
解决:前端提交请求时,转义<&lt,转义>&gt;或者后台存储数据时进行特殊字符转义。
建议后台处理,因为攻击者可以绕过前端页面,直接模拟请求,提交恶意

2. SQL注入

攻击者在HTTP请求中注入恶意SQL命令,例如,drop table users,服务器用请求参数构造数据库SQL命令时,恶意SQL被执行。

解决:后台处理,例如,使用预编译语句PreparedStatement进行预处理。

3. CSRF

CSRF,Cross-site request forgery,跨站请求伪造。这种方式是利用浏览器的cookie或服务器的session策略,盗取用户信息,模拟用户向第三方网站发送恶意请求。
CSRF比XSS更具危险性。想要深入理解CSRF的攻击特性我们有必要了解一下网站session的工作原理。

我们知道http请求是无状态的,也就是说每次http请求都是独立的无关之前的操作的,但是每次http请求都会将本域下的所有cookie作为http请求头的一部分发送给服务端,所以服务端就根据请求中的cookie存放的sessionid去session对象中找到该用户数据。

因为从WEB页面产生的所以请求,包括文件请求,都会带上cookie,这样,只要用户在网站A的会话还没有过期,访问恶意网站B时就可能被动发出请求到网站A,同时携带cookie信息,从而达到伪造用户进行恶性操作。

解决方案:

  1. 同源检测
    既然CSRF大多来自第三方网站,那么我们就直接禁止外域(或者不受信任的域名)对我们发起请求。
    可以通过origin header或者referer header判断请求源(注意:某些情况下,浏览器不会发送referer参数,比如,从https跳转到http,为了安全性不会发送referer)。
    缺点:CSRF大多数情况下来自第三方域名,但并不能排除本域发起。如果攻击者有权限在本域发布评论(含链接、图片等,统称UGC),那么它可以直接在本域发起攻击,这种情况下同源策略无法达到防护的作用。
  2. CSRF Token验证
    提交请求中携带Token,并且每次请求的Token值都是合法的随机数(注意:使用时注意token的私密性,不要以url参数的形式发送(不要使用GET)。尽量采用POST操作,以form表单或者AJAX的形式提交)。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值