XSS 和 CSRF 攻击

XSS

XSS,即 Cross Site Script,中译是跨站脚本攻击。XSS本质是Html注入,攻击者在网站上注入恶意的js代码,对客户端页面进行篡改,进而窃取隐私数据比如cookie、session,或者重定向到不好的网站等。

XSS场景再现

  • 使用url参数攻击:https://www.baidu.com?jarttoTest=<script>alert(document.cookie)</script>,这种是反射型的XSS,攻击是一次性的。简单来说就是:引导用户点击恶意链接,链接上的js代码被发送至服务器,而服务器将不加处理的脚本又返回至客户端,此时用户客户端就会执行js代码。* 有人在留言内容中插入恶意js,服务器将该内容放入数据库中,此时,每当有人访问这个留言,就会执行这个恶意js。这是存储型XSS。### XSS注入方法

  • 在 HTML 中内嵌的文本中,恶意内容以 script 标签形成注入。

  • 在内联的 JavaScript中,拼接的数据突破了原本的限制(字符串,变量,方法名等)。

  • 在标签属性中,恶意内容包含引号,从而突破属性值的限制,注入其他属性或者标签。

  • 在标签的 href、src 等属性中,包含 javascript: 等可执行代码。

  • 在 onload、onerror、onclick 等事件中,注入不受控制代码。

  • 在 style 属性和标签中,包含类似 background-image:url("javascript:..."); 的代码(新版本浏览器已经可以防范)。

  • 在 style 属性和标签中,包含类似 expression(...) 的 CSS 表达式代码(新版本浏览器已经可以防范)。

防范措施:

  • 不要相信用户输入: 对用户输入内容进行过滤。对特殊字符进行实体转义。

  • 不要完全信任服务端:对服务端输出进行转义。

  • 使用HttpOnly Cookie:将重要的cookie标记为httponly,这样就无法使用js代码获取cookie。

  • 需要转义的字符有:

字符

转义后字符

&

&

<

<

>

>

"

"

'

&#x27;

/

&#x2F;

xss参考文章:这里

CSRF

即 Cross Site Request Forgery,中译是跨站请求伪造。未经用户许可,偷偷的使用用户名义,发送恶意请求的攻击。通常情况下借助用户cookie来骗取服务器信任。

CSRF 特点

  • CSRF(通常)发生在第三方域名。

  • CSRF攻击者(通常)不能获取到Cookie等信息,只是使用。

防范措施:

  • 同源监测

  • CSRF Token: 需要服务端生成一个Token,然后放在页面中,页面提交请求的时候,带上这个Token。服务端把Token从Session中拿出,与请求中的Token进行比对验证。

  • Samesite Cookie属性:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值