据我了解CSRF,这是一个非常简单的方案:
想象一下,MyApp.com纯粹是带有RESTful后端的SPA,示例中的url(myapp.com/user/delete-account.php)是RESTful API(myapp.com/API/delete-account.json)并被称为只是来自浏览器javascript(角度)或移动应用程序(使用JWT)。
想法:如果我在JavaScript中的任何请求中添加特定标头:
headers.append('X-MyApp-Source', 'angular-app');
并添加服务器端检查:
if (user.AuthType == "cookies" && !request.Headers.Contains("X-MyApp-Source"))
{
return (400, "Bad request, missing source header");
}
攻击者是否可以通过Bob的Cookie和请求标头创建请求?
X-Frame-Options
我并不是说我的想法是防弹的,只是brianstorm。
谢谢!
答案 0 :(得分:0)
为什么MyApp-Crack.com不会使用withCredentials: true
将相关的身份验证cookie发送到myapp.com?它无法读取cookie值,但仍可以发送它。
还可以使用旧的(或故意恶意的)broswer插件或扩展(旧版Java,Flash等)来添加标头。它与Referer / Origin检查大致相同,以防止CSRF - 比没有更好,但不是你能做的最好。
因此,在理想的情况下,它不会直接受到攻击,但也不会非常强大。