Javascript 对前端应用程序进行用户身份验证的POST调用

Javascript 对前端应用程序进行用户身份验证的POST调用,javascript,c#,security,active-directory,ldap,Javascript,C#,Security,Active Directory,Ldap,我的任务是在前端Javascript应用程序上创建LDAP身份验证 我的时间非常有限,并且有一个非常小的工具集。该工具集是前端javascript应用程序和一个可用的C#应用程序,我可以对其进行post和get请求 我想我可以简单地打个电话,比如https://mybackend.com/authenticate 在那里我会发布用户名和密码 在后端,这将返回用户在广告中是否有效。我可以在前端使用它来确保用户已登录 这种方法是非常不安全还是有缺陷?我在想,如果我发布到上面的后端,不会有太多内容被暴

我的任务是在前端Javascript应用程序上创建LDAP身份验证

我的时间非常有限,并且有一个非常小的工具集。该工具集是前端javascript应用程序和一个可用的C#应用程序,我可以对其进行post和get请求

我想我可以简单地打个电话,比如
https://mybackend.com/authenticate
在那里我会发布用户名和密码

在后端,这将返回用户在广告中是否有效。我可以在前端使用它来确保用户已登录

这种方法是非常不安全还是有缺陷?我在想,如果我发布到上面的后端,不会有太多内容被暴露

任何提示都会非常有用

这种方法是非常不安全还是有缺陷

这不是不安全的,这是正常的做法。可以通过添加CSRF令牌来增加更多的安全性,该令牌将在服务器上对任何表单提交进行验证

是的,您应该通过HTTPS发送所有数据,这将加密有效负载

这种方法是非常不安全还是有缺陷

这不是不安全的,这是正常的做法。可以通过添加CSRF令牌来增加更多的安全性,该令牌将在服务器上对任何表单提交进行验证

是的,您应该通过HTTPS发送所有数据,这将加密有效负载。

所有方法都不安全。 尤其是没有HTTPS

但您可以将身份验证放在消息头中,并使用由只有服务器知道的密钥生成的令牌。

所有方法都是不安全的。 尤其是没有HTTPS


但是,您可以将身份验证放在消息头中,并使用由只有服务器知道的密钥生成的令牌。

对于像Angular这样的前端JavaScript框架,您所做的是正常的。只要您使用HttpsHttps,您就可以了

唯一的问题是如何处理子序列页面请求。 有两种方法可以处理它——

  • 最简单的方法是使用ASP.NETMVC作为登录页面,并在中间件中使用CookieOWIN。由于相同的cookie在API调用时被发送回服务器,所以您不需要做任何额外的工作。你可以下载-

  • 另一种方法是使用承载令牌,在这种令牌中,您必须在每次页面请求时将相同的令牌发送回服务器


  • 对于像Angular这样的前端JavaScript框架,您所做的是正常的。只要您使用HttpsHttps,您就可以了

    唯一的问题是如何处理子序列页面请求。 有两种方法可以处理它——

  • 最简单的方法是使用ASP.NETMVC作为登录页面,并在中间件中使用CookieOWIN。由于相同的cookie在API调用时被发送回服务器,所以您不需要做任何额外的工作。你可以下载-

  • 另一种方法是使用承载令牌,在这种令牌中,您必须在每次页面请求时将相同的令牌发送回服务器


  • 谢谢,我将在接受此响应之前等待更多响应。谢谢,我将在接受此响应之前等待更多响应。但我只需要进行身份验证,然后我就完成了服务器的操作。所以理论上我不会有后续的页面请求。对吗?答案是否定的。HTTP是无状态的。这意味着您必须以某种方式在选项1或2中发回授权。该应用程序是一个单页程序。没有路由和一个简单的任务。验证用户身份并执行1个功能(发送电子邮件)。仅此而已。一页或多页都不重要。在随后的请求中,您仍然需要将授权令牌发送回服务器,可以是cookie、令牌或基本身份验证(另一种简单的方法,只需一页)。这是web应用程序的特性。@Win是正确的。为了发送电子邮件,您需要获得某种传递到后端的限时令牌。否则,人们只需查看您的javascript源代码,就可以在不进行身份验证的情况下向服务器发送“发送电子邮件”请求。所以理论上我不会有后续的页面请求。对吗?答案是否定的。HTTP是无状态的。这意味着您必须以某种方式在选项1或2中发回授权。该应用程序是一个单页程序。没有路由和一个简单的任务。验证用户身份并执行1个功能(发送电子邮件)。仅此而已。一页或多页都不重要。在随后的请求中,您仍然需要将授权令牌发送回服务器,可以是cookie、令牌或基本身份验证(另一种简单的方法,只需一页)。这是web应用程序的特性。@Win是正确的。为了发送电子邮件,您需要获得某种传递到后端的限时令牌。否则,人们只能查看你的JavaScript源代码,并用“发送电子邮件”请求来锤击服务器而不进行身份验证。因为你是一个带有广告的Windows商店,你也可以考虑使用OAuth2的ADF。然后,您需要将用户重定向到登录屏幕,而不是自己接收用户名/密码。另一方面,你不需要担心自己的webapp处理密码或与广告交谈,如果我有能力使用后端节点,这里就没有问题了!由于您是一个带有广告的Windows商店,您还可以考虑使用OAuth2的ADF。然后,您需要将用户重定向到登录屏幕,而不是自己接收用户名/密码。另一方面,你不需要担心你自己的网络应用程序处理密码或与广告交谈。如果我有能力使用后端节点,这里就不会有问题!