csrf和xss的网络攻击及防范

什么是CSRF(跨站请求伪造)

当用户访问A(信任网站)网站并登录成功时,在用户处产生A的Cookie。这时候用户访问了B(危险网站)网站,当B要求访问第三方站点(A)的时,浏览器会带着用户最开始登录A的时候产生的Cookie访问A,而A网站并不能分辨请求是由用户发出的还是由B发出的,这时候B网站就能模拟用户操作。例如转账等操作

如何防范CSRF攻击

1.使用token
可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求
2.检查http头部的refer
根据 HTTP 协议,在 HTTP 头中有一个字段叫 refer,它记录了该 HTTP 请求的来源地址。例如我们要在网上银行执行转账,那么我们发出去的请求的http中的refer通常是通常是以 bank.example 域名开头的地址,既该银行的页面上的url,而黑客执行CSRF攻击的时候http中的refer是黑客自己网站的url。如果 Referer 是其他网站的话,则有可能是黑客的 CSRF 攻击,拒绝该请求。
3.在 HTTP 头中自定义属性并验证
这种方法也是使用 token 并进行验证,和上一种方法不同的是,这里并不是把 token 以参数的形式置于 HTTP 请求之中,而是把它放到 HTTP 头中自定义的属性里
4.使用验证码
在表单中增加一个随机的数字或字母验证码,通过强制用户和应用进行交互,来有效地遏制CSRF攻击

什么是XSS

XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了。

如何防御XSS

1. 对用户的输入进行检查
不信任任何用户的输入,对每个用户的输入都做严格检查,过滤,在输出的时候,对某些特殊字符进行转义,替换等

2. Cookie设置为httpOnly属性
httponly-这个属性可以防止XSS,它会禁止javascript脚本来访问cookie。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值