如何使用ASP.NET MVC实现"注销"链接?

Kev*_*ang 1 asp.net-mvc forms-authentication

这似乎是一个非常愚蠢的问题,但我正试图找出最好的方法来做到这一点.您是否只需重定向到/ Logout页面并让控制器调用FormsAuthentication.SignOut函数?

这是我的第一个想法,但后来我想知道它是否可能被第三方网站滥用.假设有人决定发布您的/ Logout页面的链接.用户将退出您的应用程序.有没有好办法防止这种情况发生?

tva*_*son 5

如果您担心用户通过使用恶意链接意外注销您的应用程序,您可以检查引用者以确保注销来自您的网站(或者在用户简单键入的情况下为 NULL)中的网址)。

实际上我并不担心这一点,因为注销某人很烦人,但不一定存在安全风险。


jak*_*ber 5

这种恶意链接将是一类安全漏洞的示例,称为跨站点请求伪造,CSRF.注销链接相对无害,但远程站点可以设置一些隐藏的表单并将它们发布到您的站点以通过POST执行任何可能的操作.

最常见的对策是在每种形式中包含挑战,随机隐藏值,然后检查该值.检查referer标头可能有效,但请注意,某些浏览器根本不发送referer.

阅读更多:http://en.wikipedia.org/wiki/Cross-site_request_forgery