我有SPA应用程序,它使用ASP.NET MVC4的一些功能,如AntiForgeryToken。
我不知道如何在不使用Phonegap不支持的CSHTML的情况下在HTML中实现AntiForgeryToken功能?
答案 0 :(得分:3)
我认为有一种安全的方法可以在没有服务器生成页面的情况下实现防伪令牌:
Microsoft提供了一个非常类似的示例实现here(请参阅标题为“Anti-CSRF和AJAX”的部分)。
从表面上看,这可能看起来不安全,因为您有一个设置并返回防伪令牌的控制器方法,但是Web浏览器会强制执行same origin security policy,因此无法进行XSRF攻击。
由于phonegap使用本地文件,因此不受same origin policy(see here)的约束,因此它可以向config.xml中指定的任何域发出AJAX请求(see <access origin="..." /> here )
答案 1 :(得分:2)
ASP.NET MVC中AntiForgery令牌的当前实现依赖于HTML帮助程序,它生成隐藏的输入字段并设置cookie。如果您无法使用此帮助程序,则必须自行滚动此功能。