Javascript 保护jqueryajax请求

Javascript 保护jqueryajax请求,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我正在开发一个Chrome扩展,它将使用jQuery通过AJAX请求发送数据。我需要确保只有登录的用户发送了请求。这可能不是保护AJAX请求本身的正确方法,因此任何建议都会得到通知。要实现这一点,当用户登录时,您需要设置一个cookie,其中包含某种身份验证令牌或会话ID(通常是一些不可预测的字符串),该cookie也存储在您的服务器上 然后,Ajax请求可以将当前浏览器cookie中的身份验证令牌作为Ajax调用的参数包含在内,然后服务器可以验证该令牌是否属于合法用户 如果用户未登录,将不会有

我正在开发一个Chrome扩展,它将使用jQuery通过AJAX请求发送数据。我需要确保只有登录的用户发送了请求。这可能不是保护AJAX请求本身的正确方法,因此任何建议都会得到通知。

要实现这一点,当用户登录时,您需要设置一个cookie,其中包含某种身份验证令牌或会话ID(通常是一些不可预测的字符串),该cookie也存储在您的服务器上

然后,Ajax请求可以将当前浏览器cookie中的身份验证令牌作为Ajax调用的参数包含在内,然后服务器可以验证该令牌是否属于合法用户


如果用户未登录,将不会有cookie,因此也不会有令牌。

您无法在客户端保护Ajax请求,因为每个人都可以请求您的API(如果它包含在JS中)。 但是,您可以选择一些变通方法来与服务器进行更安全的交互:

  • 您可以发送加密数据
  • 您还可以混淆代码,使其更难阅读
  • 使用SSL保护数据免受窥探者的攻击
编辑:
正如您所提到的,如果您想确保用户登录以执行某些操作,您可以使用另一个答案中提到的加密cookie和令牌。但是,如果您想阻止请求而不是拒绝请求,上述解决方案可能会对您有所帮助。

不可能仅从客户端保护ajax请求。@hasanain这与确定用户是否登录有什么关系?您必须在服务器上进行检查。当他们登录时,您使用随机字符串设置cookie。然后在他们稍后发送请求时检查此cookie值。这些答案中的任何一个解决了您的问题吗?如果是这样,请勾选答案左侧的绿色复选标记,将最佳答案标记为已接受答案,以向社区表明您的问题已得到回答,然后您和提供答案的人都将获得一些声誉积分,从而在StackOverflow上获得更多特权。