2014-10-08 80 views
2

AntiForgeryToken出现在我的表单下的MVC 5解决方案中。 它运作良好。 但我的客户得到了一些推荐网站,例如,如果我的域名是www.mysite.com,则其网址是 www.mysite.blabla.com。如何解决参考网站的请求验证令牌

如果用户打开正常的网站,它是工作不错,但如果万一他开www.mysite.blabla.com并做出提交(POST)的形式,我得到错误The required anti-forgery cookie "__RequestVerificationToken" is not present.

在ELMAH日志我看到下一个值

HTTP_HOST www.mysite.com 

HTTP_REFERER http://www.mysite.blabla.com/ 

HTTP_X_FORWARDED_HOST www.mysite.blabla.com 

HTTP_X_FORWARDED_SERVER www.mysite.blabla.com 

SERVER_NAME www.mysite.com 

我需要允许使用我在此域中的工作。 是否可以设置Anto-Forgety Token来允许对此域名进行reqvest? 或者是只有一个解决办法:删除

@ Html.AntiForgeryToken()

回答

0

的AnitForgeryToken的目的是为了防止其他网站可以发布到你的行动。这是预期的行为。它可以防止跨站点请求伪造攻击。

如果他们想要链接,它应该与一个标准的GET请求。

+0

是的,这是真的,但可能有一些解决方案存在。 – 2014-10-08 18:40:20

+0

您将不得不使用GET请求:'my.url.com?value = abc&value2 = 123',或者取出AntiForgeryToken并打开您的网站以应对潜在的攻击。 – ps2goat 2014-10-08 18:43:22

+0

是的,但关于CAPTCHA我也有 – 2014-10-08 18:45:53