我一直在阅读有关使用同步器令牌模式来防止CSRF(CSRF意味着跨站点请求伪造)的内容,我不明白它到底是怎么安全的。
假设我有一个伪造的银行网站。具有两个URL的com:
fakebank。com/form。html
-显示取款表单的GET请求fakebank。com/doWithdraw
-发布到此url以执行撤消操作我对安全漏洞的理解是,maliciousSite。com
可以向伪造银行伪造POST请求。com/doWithdraw,如果您当前登录到fakebank,则发布将成功。
假设我们实现了一个同步器令牌模式,它将在fakebank.com/withdrawForm.html
上嵌入一个秘密代码。不能maliciousSite.com
只是欺骗该表单的GET请求,解析html结果,获取令牌,然后用该令牌创建POST请求吗?
这是假币银行。com没有检查HTTP引用者、来源或恶意站点。com正在成功欺骗推荐人/来源是伪造银行。通用域名格式。
这正是重点。浏览器中的相同起源策略不允许对其他站点的GET请求。因此,没有任何网站可以从其他网站获取CSRF令牌,只是在浏览器中使用JavaSept。
这是安全的,恶意的ite.com不能简单地做一个GET,窃取令牌,然后做一个POST的原因是请求是由用户的浏览器完成的,而不是由服务器在maliciousSite.com
。从fakebank.com
返回的所有数据返回到用户的浏览器,而不是在maliciousSite.com
的服务器。如果maliciousSite.com
执行GET以检索令牌,则它将是与发给用户的令牌不同的令牌。maliciousSite.com
无法将此cookie设置为提交到fakebank.com
,因为同域限制。
CSRFPOST
攻击通过诱骗用户的浏览器请求fakebank来工作。com/form。html
直接使用格式正确的POST
请求。服务器位于fakebank。com
愉快地执行请求的POST
,从而使用POST
正文中提供的参数(其中包括由maliciousSite.com
放入的属于攻击者的目标帐户)转移资金。位于恶意站点的服务器。com不需要查看返回的数据,因为已经采取了操作(除非fakebank.com
使用这些CSRF令牌,maliciousSite.com
不可能知道这些令牌,除非它以某种方式被泄露。它无法请求)。如果<代码>伪造银行。com正在使用CSRF令牌,然后是恶意站点。com将提交一个缺少令牌的POST
请求,从而表明正在进行潜在的CSRF攻击。
此方法的漏洞包括使用未充分保密且以某种方式泄露的CSRF令牌。此外,如果CSRF令牌不够随机,则maliciousSite。com
可能会猜到。此外,如果浏览器在执行相同的域策略时存在弱点,则可能会利用此漏洞。一般来说,现代浏览器不容易受到这种攻击。
如果这是一个不充分的解释,请让我知道,我会尝试更好地表达它。
我读过关于CSRF和不可预测的同步令牌模式是如何用来防止它的。我不太明白它是如何工作的。 让我们以这个场景为例: 用户使用以下表单登录到站点: 服务器还将令牌存储在会话中。发送请求时,它将表单数据中的令牌与会话中的令牌进行比较。 当黑客可以编写JavaScript代码时,如何防止CSRF: 发送GET请求到站点 接收包含请求表单的html文本。 在html文本中搜索CSRF令牌。 使用该令牌发出恶
大家好,我很难为我的应用程序设置安全解决方案!!所以我有一个REST API后端,在http://localhost:51030使用Spring框架开发,对于前端,我有一个Angular 2应用程序(最新版本A.K.A.Angular 4),运行速度为http://localhost:4200.我在后端设置了CORS配置,如下所示: 使用此配置只能正常工作,我可以执行从角应用到回弹的请求并获得响应
我使用的是Spring Boot 2.1.1。我认为这个版本的Spring Boot默认启用了CSRF保护(如果我错了请纠正我)。我试图为我的java web应用程序设置CSRF保护,但我不确定需要做什么更改才能显示CSRF令牌。 我正试图通过浏览器检查CSRF令牌。但是,标记的名称和值似乎显示为空白。
场景是:您有一个有效期较长的刷新令牌和一个有效期限较短的访问令牌。 设置:有一个客户端、应用程序服务器和身份验证服务器。 客户端存储访问令牌。 应用程序服务器存储刷新令牌。 身份验证服务器分发刷新访问令牌。 其中一个优点是被盗的访问令牌只能在其有效的时间内使用。 假设黑客窃取了有效期为30分钟的访问令牌。当黑客在30分钟后用有效但过期的被盗访问令牌发出请求时,应用服务器用刷新令牌刷新它,从而黑客获
使用刷新令牌可以缓解CSRF攻击。第一条规定: 刷新令牌由auth服务器作为HttpOnly cookie发送到客户端,并由浏览器在/refresh_token API调用中自动发送。因为客户端Javascript不能读取或窃取HttpOnly cookie,所以这比将其作为普通cookie或在LocalStorage中持久化要好一些。这种方法也可以免受CSRF攻击,因为即使表单提交攻击可以调用/
问题内容: 在GET和POST参数中不仅需要cookie,还需要身份验证。 检查HTTP Referer头; 在Wikipedia上看到了这篇文章,想知道如何应用它们 好的…我正在使用Kohana PHP框架,并且具有确定引荐来源标头的功能,但是究竟要检查引荐来源标头中的什么内容呢?框架函数仅返回引荐来源网址 以及如何验证GET和POST参数?反对什么?存储的信息?预期的类型? 问题答案: 为了防