我有一个 ASP MVC 网站,它通过 JSON 编码的 ajax 使用 wcf 服务。 是否有任何构建方式可以通过 ajax <--> wcf 服务使用防伪 token ?
这是它在 asp mvc 应用程序中的使用方式。 http://weblogs.asp.net/dixin/archive/2010/05/22/anti-forgery-request-recipes-for-asp-net-mvc-and-ajax.aspx
最佳答案
Anti Forgery Token 我确定您知道在 MVC 框架中默认情况下是可用的,您正在使用 Ajax 到 WCF,这实际上与 MVC 没有任何关系,除了您的大纲概念。
要通过 MVC View 向 WCF 服务提供安全的 Ajax 调用,您将走很长的路。
首先,您需要使用 Ajax 防伪 token 实现,请参阅下面的链接。您还需要一个数据库来管理带有到期日期的 WCF token 。
您需要在加载时转储出 WCF token ,并在每个 WCF 请求上传递 token 。 token 将针对数据库进行验证。如果 token 已过期,您将需要使用 AJAX 防伪造 token 执行另一个 Ajax 请求以生成新的 WCF token 返回 token 并在您的 WCF Ajax 请求中使用它。
总而言之,您将有两个 token ,一个用于验证您对 MVC Controller 的 Ajax 请求,另一个用于 WCF 请求。这种方法将为您提供一个安全的请求模型,以减少 CSRF 的机会。
关于 CSRF 的更多信息:http://www.troyhunt.com/2010/11/owasp-top-10-for-net-developers-part-5.html
MVC Ajax 防伪造 token :http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/
希望这对您有所帮助。
关于c# - 如何在 ajax wcf 服务中使用防伪 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9423681/