XSS攻击和CSRF攻击(浅显易懂)

1、XSS攻击(跨站脚本攻击)

        往web页面(包含HTML和js文件)嵌入可执行的代码(js)

为什么选择攻击js文件?

        在网络传输的时候,js文件是可以被下载或者是通过Ajax提交的

        js安全性比较弱

危害性:

(1)攻击者能够通过模拟GET、POST请求操作用户的浏览器;

(2)用户提交的数据,未经处理之前,是可以被获取到的 (js obj.value);

(3)XSS钓鱼,利用js在当前页面上“画出”一个伪造的登录框,当用户在登录框中输入用户名和密码后,用户名和密码将被发送至黑客的服务器上;

(4)强行改变程序的执行方式(打开一个不健康的网页)

        XSS本质上是一种针对HTML的注入攻击,注入攻击的本质,是把用户输入的数据当做代码执行。这里有两个关键条件,第一个是用户能够控制输入;第二个是原本程序要执行的代码,拼接了用户输入的数据。在对抗注入攻击时,可以从以上两个关键条件入手。

预防方案:

(1)让运维将js等文件设置为只读,只在需要时更改为可编写的;

(2)通过后台程序,写一套检测程序,检测文件大小的改变,文件大小一旦发生变化,并且不是本公司人员进行文件修改时,立即发出警报并更换文件;

(3)校验用户输入,过滤特殊字符;

(4)输出检查,光有输入检查还不够,在变量输出到HTML页面时,可以使用编码或者转义的方式来预防XSS攻击。

2、CSRF(跨站点请求伪造)

        攻击者伪造一个请求,诱使用户去触发这个请求,以此冒充用户身份向服务器发送伪造请求,并且该伪造请求被服务器成功执行。

危害:

        攻击者盗用用户身份发送恶意请求,比如删除你的个人信息,修改密码,购买商品,虚拟货币或者银行转账等等,太多了,细思极恐!

        CSRF攻击的目标,一般都会产生“写数据”操作的URL,比如增、删、改;而“读数据”操作并不是CSRF攻击的目标,因为在CSRF的攻击过程中,攻击者无法获取到服务器端返回的数据,攻击者只是借用户之手触发服务器动作。

预防方案:

(1)验证码,CSRF攻击的过程,往往是在用户不知情的情况下构造了网络请求,而验证码则强制用户必须与应用进行交互,才能完成最终请求;

(2)Referer Check可以被用于检查请求是否来自合法的“源”;

(3)新增token参数,CSRF之所以能攻击成功,其本质原因是重要操作的所有参数都是可以被攻击者猜测到的,而这个token是随机的,不可预测的,攻击者将无法再构造出一个完整的URL实施CSRF攻击。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、什么是XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。 二、XSS漏洞的危害 (1)网络钓鱼,包括盗取各类用户账号; (2)窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作; (3)劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等; (4)强制弹出广告页面、刷流量等; (5)网页挂马; (6)进行恶意操作,例如任意篡改页面信息、删除文章等; (7)进行大量的客户端攻击,如DDoS攻击; (8)获取客户端信息,例如用户的浏览历史、真实IP、开放端口等; (9)控制受害者机器向其他网站发起攻击; (10)结合其他漏洞,如CSRF漏洞,实施进一步作恶; (11)提升用户权限,包括进一步渗透网站; (12)传播跨站脚本蠕虫等; 三、过滤器配置 web.xml配置 XssFilter com.xxx.Filter.XssFilter XssFilter /*
SQL注入、XSS(跨站脚本攻击)和CSRF(跨站请求伪造)是三种常见的网络安全威胁,它们针对的应用场景和攻击机制有所不同。 1. SQL注入: - **定义**:攻击者通过在输入字段中插入恶意SQL代码,欺骗应用程序执行非授权的数据库查询,可能获取敏感信息或修改数据。 - **目标**:主要影响Web应用程序后端数据库,试图访问或操控存储在服务器的数据。 - **示例**:尝试在登录表单中输入"\' OR '1'='1",可能导致所有用户登录。 2. XSS攻击: - **定义**:攻击者在网站上植入恶意脚本,当用户访问含有这些脚本的页面时,脚本会在用户的浏览器上执行,可能窃取用户信息或控制用户的会话。 - **目标**:影响用户浏览器,操纵前端显示内容,或利用用户的行为进行攻击。 - **示例**:在网页中添加未过滤的用户评论,评论中包含HTML代码,如`<img src="malicious.com">`,可能导致恶意图片加载或跟踪。 3. CSRF攻击: - **定义**:攻击者通过伪装成合法用户,利用受害者已经登录的身份,发送请求到受信任的网站执行未经授权的操作,如转账、修改设置等。 - **目标**:利用用户的已认证状态,进行无需用户干预的恶意操作。 - **示例**:网站提供一个“一键购买”功能,如果一个恶意网站包含一个隐藏的表单,填充了受害者账户信息并指向该功能,用户无意点击后可能会完成购买。 相关问题: 1. 如何防止SQL注入攻击? 2. XSS攻击通常如何防御? 3. CSRF攻击如何通过令牌机制来防范?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值