使安全“;“私人场地区域”;使用准无服务器web架构(AJAX模板魔术)

Making secure "private site areas" using quasi-serverless web architecture (AJAX templating magic)

本文关键字:架构 web AJAX 魔术 服务器 安全 区域      更新时间:2023-09-26

首先,如果我的英语听起来不太好,我会尽量说清楚。我计划开发一个具有以下架构的网站:

静态页面提供给使用javascript模板和ajax加载内容的客户端,内容将通过ASP.NET MVC应用程序提供,该应用程序将json结果发送到客户端页面。

我的问题很简单:我可以用什么方法为我的网站用户提供私人区域?

我想到的唯一一件事是提供一个登录页面,将登录信息(加密)发送到服务器(通过ajax)。然后服务器返回一个令牌以作为cookie存储。对于接下来通过ajax对服务器的每一次调用(现在谈到私人区域),都会发送并检查令牌shuold,并提供适当的内容结果。

我该如何实现这个东西?安全和隐私问题是什么?

顺便说一下,我在服务器中使用C#,JQuery用于简单的ajax管理,JQuery.LoadJSON用于内容加载。Mustache for javascript提供了一些东西,比如部分等等。我正在寻找一些可以让我以简单明了的方式管理cookie的东西,建议也很感激。

非常感谢!

您实际上可以使用内置的ASP.NET身份验证机制:

  • 允许匿名访问您的所有页面(假设这是要求)
  • 在java脚本(客户端)中维护一个变量,以判断用户是否已通过身份验证
  • 为了访问任何安全内容/区域,请调用一个通用的js函数,该函数将查看当前用户是否经过身份验证,如果没有,则执行适当的操作来验证用户
  • 如果是基于表单的身份验证,那么您的函数应该使用模式对话框提示用户输入凭据,然后通过ajax调用将这些凭据传递给服务器。在服务器端,您应该验证凭据,并使用FormsAuthentication.SetAuthCookie来指示对ASP.NET运行时的成功身份验证。运行时将维护authcookie(这样您就不必自己管理令牌)
  • 对于任何为安全内容提供服务的ajax调用,在服务器端,该调用必须检查当前用户是否经过身份验证(使用HttpContext.Current.User.Identity.IsAuthenticated)。如果没有,您可以重定向到错误页面或发出401响应代码(建议用于windows身份验证方案)。您可以在AJAX调用中为经过身份验证的用户添加任何授权方案