PHP试题扫盲---XSS和CSRF攻击的认知和防止

XSS:跨站脚本(Cross-site scripting,通常简称为XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响,这类攻击通常包含了HTML以及客户端脚本语言,最常见的就是JavaScript,在一个论坛发帖中发布一段恶意的JavaScript代码就是脚本注入,如果这个代码内容有请求外部服务器,那么就叫做XSS,大概就是这么回事吧。

CSRF:跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法,它主要是冒充用户发起请求(在用户不知情的情况下),完成一些违背用户意愿的请求(如恶意发帖,删帖,改密码,发邮件等)。

咱们有时候可能会搞不清楚它们两个之间的一个区别,虽然这两个关键词时常抱团出现,但它们两个是不同维度的东西,或者说他们的目的是不一样的,XSS更偏向于方法论,CSRF更偏向于一种形式,只要是伪造用户发起的请求,都可成为CSRF攻击。

通常来说CSRF是由XSS实现的,所以CSRF时常也被称为XSRF,意思就是,用XSS的方式实现伪造请求,但实现的方式绝不止一种,还可以直接通过命令行模式(命令行敲命令来发起请求)直接伪造请求(只要通过合法验证即可)。

XSS更偏向于代码实现(即写一段拥有跨站请求功能的JavaScript脚本注入到一条帖子里,然后有用户访问了这个帖子,这就算是中了XSS攻击了),CSRF更偏向于一个攻击结果,只要发起了冒牌请求那么就算是CSRF了。

简单来说,条条大路(XSS路,命令行路)通罗马(CSRF马,XSRF马)。

好啦,到这里呢,大家可能对于这两种攻击有了一个基本的认知了,接下来,就来看看如何防止这类攻击。

首先最简单的就是做好对于用户输入以及输出信息的一种验证,例如像年龄之类的,只接受int类型数据,验证字符串长度等等。

还有就是HTTP Only Cookie这方面,因为浏览器是不允许js调用标有这种标识的cookie的。

还有就是字符实体化(html系列函数)。

等等吧,还有好多,咱这里就不一一赘述了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值