
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
二.CSRF可以做什么?
这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。
三.CSRF漏洞现状
CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互网站分别爆出CSRF漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的BLOG网站),YouTube和百度HI......而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF为“沉睡的巨人”。
随着互联网的普及,网络安全变得越来越重要。Java等程序员需要掌握基本的web安全知识,防患于未然,下面列举一些常见的安全漏洞,以及对应的防御解决方案。
1.前端安全
2.后端安全
1.XSS简介
跨站脚本(cross site script)简称为XSS,是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式。
XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码。
2.XSS攻击的危害
1、盗取用户资料,比如:登录帐号、网银帐号等
2、利用用户身份,读取、篡改、添加、删除企业敏感数据等
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击
3.防止XSS解决方案
XSS的根源主要是没完全过滤客户端提交的数据 ,所以重点是要过滤用户提交的信息。
1.CSRF简介
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。
XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF更具危险性。
2.CSRF攻击的危害
主要的危害来自于,攻击者盗用了用户身份,发送恶意请求。比如:模拟用户的行为发送邮件,发消息,以及支付、转账等财产安全。
3.防止CSRF的解决方案
1.简介
SQL注入是比较常见的网络攻击方式之一,主要是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,实现无帐号登录,甚至篡改数据库。
2.SQL注入的危害
3.防止SQL注入的方式
通常情况下,SQL注入的位置包括:
(1)表单提交,主要是POST请求,也包括GET请求;
(2)URL参数提交,主要为GET请求参数;
(3)Cookie参数提交;
(4)HTTP请求头部的一些可修改的值,比如Referer、User_Agent等;
4.简要举例
举一个简单的例子,select * from user where id=100 ,表示查询id为100的用户信息,如果id=100变为 id=100 or 2=2,sql将变为:select * from user where id=100 or 2=2,将把所有user表的信息查询出来,这就是典型的sql注入。
5.防止SQL注入的解决方案
1)对用户的输入进行校验,使用正则表达式过滤传入的参数
2)使用参数化语句,不要拼接sql,也可以使用安全的存储过程
3)不要使用管理员权限的数据库连接,为每个应用使用权限有限的数据库连接
4)检查数据存储类型
5)重要的信息一定要加密
总之就是既要做好过滤与编码并使用参数化语句,也要把重要的信息进行加密处理,这样sql注入漏洞才能更好的解决。
以上就是Web安全介绍,更多Redis系列、Spring Cloud、Dubbo等微服务、MySQL数据库分库分表等架构设计,具体请参考:
回复关键词 【高并发】即可获取!
CSRF攻击的主要目的是让用户在不知情的情况下攻击自己已登录的一个系统,类似于钓鱼。如用户当前已经登录了邮箱,或bbs,同时用户又在使用另外一个,已经被你控制的站点,我们姑且叫它钓鱼网站。这个网站上面可能因为某个图片吸引你,你去点击一下,此时可能就会触发一个js的点击事件,构造一个bbs发帖的请求,去往你的bbs发帖,由于当前你的浏览器状态已经是登陆状态,所以session登陆cookie信息都会跟正常的请求一样,纯天然的利用当前的登陆状态,让用户在不知情的情况下,帮你发帖或干其他事情。
一句话就是我们利用CSRF攻击就是借用用户的身份去执行用户的 *** 作
先看一个例子(白帽子讲web安全),一个删除搜狐博客的例子,利用CSRF删除搜狐博客。
正常情况下,登陆搜狐博客后,只需请求这个url,就能把编号156713012的博客文章删除
我们尝试利用CSRF漏洞,删除编号为“156714243”的博客文章。这篇文章标题“test1”.
攻击者首先在自己的域构造一个页面:
其内容
使用了一个<img>标签,其地址指向了删除博客文章的链接。
攻击者诱使目标用户,也就是博客主人“test1test”访问这个页面:
该用户会看到一张无法显示的图片,也就是<img>标签创造的图片,但无法显示,然后回头看搜狐博客:
发现原来存在的标题为‘’test1”的文章,已被删除。
这个删除博客攻击文章的请求,是攻击者伪造的,所以这种攻击就叫做“跨站点请求伪造”。
下面仿照以上做一个实例,这里利用自己的简单留言板实施一次CSRF攻击
前面我们已经讲过了,CSRF攻击是在用户登录状态下,利用用户身份执行 *** 作,这里就用到了cookie,当用户正在访问留言板时,诱导用户去点开攻击者伪造的一个网页(有删除留言的指令),用户点开之后便带着原来的留言板cookie去执行删除留言这条指令,当用户返回之后发现原来留言信息没了。
这是登录界面,输入用户名进去后
看一下用户的cookie吧
当然这里是自己的cookie,已经能看到了。
可以看到是post请求以表单的形式提交到delete.php,执行删除 *** 作找到表单提交的name="ids",也就是ids=1时,我们可以删除id=1的留言,因为是POST请求,不能用标签的src属性,所以需要构建一个POST请求。
攻击者在自己的服务器中建立一个HTML文件csrf.html,用JS自动提交POST请求的form表单
这个只是本地测试,现在删除第三条留言,这个时候只要诱导用户去访问 http://127.0.0.1/Myphp/csrf.html 就会删除该留言,至于用什么方法,需要攻击者去精心构造了,只要想象力丰富,就能发挥CSRF强大的破坏力。
当用户在登录留言板状态下去访问该网页,,,,
原来的留言没了
这就是基本的CSRF攻击。。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)