我正在尝试实现CSRF和SSL(它们并不完全依赖),并列出了我对主题的理解,以获得理解的证据。请随时纠正我对此的理解。
我们在几乎所有的安全应用程序中都看到了CSRF令牌。
跨站点请求伪造的工作方式:
你登录了你的银行账户。看看你的账户,或者只是因为你忙着就把它们打开在你的浏览器上。现在您收到的电子邮件可能是文本/图像或任何在下一个选项卡。当收到电子邮件时,诸如onload等函数,其他java脚本函数可能会在您不知情的情况下从浏览器中触发GET/PUT/POST请求。现在要注意的是,CSRF实际上无法从您的安全网页中读取任何内容,因为一旦您有了适当的SSL,安全页面就会被加密。而且CSRF也不能偷你的证件。事实上,由于CSRF令牌被加密,所以无法找到隐藏在安全网站标签中的CSRF令牌。只有在您通过网站验证了自己的身份之后,它才能工作,它会发出请求,这会使服务器认为请求来自您刚刚登录的浏览器,因此服务器按照接收到的请求工作。
现在,黑客试图打开CSRF攻击,它欺骗浏览器发送url:
<img src="https://www.bankWebsite.com/transfer?amount=1000&destination=8990">因此,在你不知道的情况下,从你认证的一个会话中,一个请求被发射,告诉你转移1000个帐号8990 n爆炸,你被抢劫了1000美元,就像这样。
如何保护自己:
可通过以下几种方式对CSRF进行保护:
1)验证来自标头的请求的来源
2)验证请求的目标
3) CSRF令牌
如何保护CSRF令牌:
当前在头/cookie中的CSRf令牌。因此,当黑客欺骗浏览器将请求发送到服务器时,令牌只出现在标头中,而不是提交的表单中。因此,当服务器检查是否接收到CSRF令牌时,它尝试将来自报头的CSRF令牌与从表单/请求接收的CSRF令牌匹配。如果它不存在/不匹配,那么服务器就会识别它是一种攻击,并阻止请求进一步渗透。
如果我对CSRF攻击的理解,保护是否正确,请各位纠正我吗?
这是否意味着没有的适当实现,CSRF是没有用的?
发布于 2017-02-27 07:45:09
如果我对CSRF攻击的理解,保护是否正确,请各位纠正我吗?
是
这是否意味着如果没有适当的SSL实现,CSRF是没有用的?
如果您以纯文本(而不是使用SSL对令牌进行加密)将令牌发送到客户端和从客户端发送,则攻击者可以拦截令牌。
如果攻击者知道在表单数据中放置什么令牌,则保护就消失了。
https://stackoverflow.com/questions/42271179
复制相似问题