我正在开发一个Chrome扩展程序,它将使用jQuery通过AJAX请求发送数据。我需要确保只有登录用户才发送请求。这可能不是尝试保护AJAX请求本身的正确方法,因此任何建议都是适用的。
答案 0 :(得分:0)
要使用此功能,当用户登录时,您需要设置一个包含某种身份验证令牌或会话ID(通常是一些不可预测的字符串)的cookie,它也存储在您的服务器上。
然后,您的Ajax请求可以将来自当前浏览器cookie的身份验证令牌作为ajax调用的参数包含在内,然后您的服务器就可以验证该令牌属于合法用户。
如果用户未登录,则不会有cookie,因此没有令牌。
答案 1 :(得分:0)
您无法在客户端保护Ajax请求,因为每个人都可以请求您的API,如果它包含在您的JS中。 但是有些解决方法可以让您选择与服务器进行更安全的交互:
修改强> 正如您所提到的,如果您想确保用户登录以执行某些操作,您可以使用加密cookie和另一个答案中提到的令牌。但是如果您想要阻止请求并且不拒绝它们,那么以上解决方案可以帮助您。