java web攻击_[Java教程]常见的WEB攻击

[Java教程]常见的WEB攻击

0 2021-01-13 17:01:57

XSS

全称:Cross Site Scripting

中文名:跨站脚本

原理:利用网站漏洞和用户对该网站的信任,植入恶意javascript脚本,让用户访问的时候出现不被预期、恶意的操作。

例:

1.用户A在某论坛评论区评论, 并植入恶意代码。

你是个好人。

2.用户A评论后,数据保存到服务端数据库中。

3.其它用户查看该评论后,首先看到内容"你是个好人"。然后浏览器弹出弹窗提示1,接着便把自己的cookie数据提交给 转义为 <script>

CSRF

全称:Cross-site Request Forgery

中文名:跨站请求伪造

原理:利用 网站对浏览器的信任(基于会话原理),让用户执行非本意操作。

例:

1.银行提供转账服务 src='/images/loading.gif' data-original="http://www.examplebank.com/withdraw?account=小明&amount=1000&for=坏人">

4.小明的钱就转到坏人那里去了。

原因:小明登录了银行网站,会话没有过期,银行网站信任该浏览器,认为属于一个会话中属于同一个人所为,便让转账成功了。可惜这个操作并不是小明的本意,而是被利用了。

预防:

1.Referer校验。 当请求头中的域名和本网站域名一致,才认为没有遭到CSRF攻击。

2.Token随机数回传。服务器生成Token给客户端,客户端回传该token,服务端校验token。因为跨站脚本无法事先取得token,便无法伪造正确的请求。

SSRF

全称:Server-Side Request Forgery

中文名:服务器端请求伪造

原理:利用 服务端提供了从其他服务器获取数据的功能且没有对目标地址做过滤与限制的 缺陷 , 攻击内部系统。

例:

1.客户端提交 ftp://127.0.0.1 等等其它协议的网址,便攻击了服务器,使服务器读取本地文件,访问ftp站点了等了。

预防:

1.协议限制,比如仅允许http和https

2.ip或域名白名单

SQL注入

原理:利用 数据库系统的漏洞,攻击数据库系统。

例:

1.服务端登录接口login的入参为:(String id,String password)。 SQL语句为: select count(1) from user where id=id and password=password;

2.攻击者调用login接口,传入恶意参数。id=123&password=123 or 1=1;

3.攻击者如愿登录系统。原因就是:password的值"123 or 1=1"被数据库执行了or 1=1,绕过了前面的检查。

预防:

1.检查入参是否合理

2.改写sql语句,比如不要在SQL语句进行校验逻辑,应该select password from user where id=id,然后在代码中进行密码匹配。

3.使用PrepareStatement,或者Mybatis的#{}

本文网址:http://www.shaoqun.com/a/508694.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

JavaJavascriptSQL

0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值