繁体   English   中英

Javascript:如何强制POST请求将用户视为未通过身份验证

[英]Javascript: How can I force a POST request to treat the user as not authenticated

我正在使用Javascript和XmlHttpRequest POST到同一站点上的另一个URL。 必须对用户进行身份验证才能访问运行Javascript的页面,但是我需要以未经身份验证的用户身份将POST提交到第二个URL(以防止服务器运行始终为经过身份验证的用户运行的代码)。 有什么方法可以提交POST,以便它似乎来自未经身份验证的用户(这样,服务器就不会从其会话中提取用户的身份验证信息,并将其视为经过POST身份验证的信息)?

例如,是否有一种方法可以仅为POST打开一个新会话,或者仅为POST更改会话ID?

注意:

  • 我尝试使用凭据为不存在的用户显式执行授权,但这没有任何区别。
  • 如果可以使用ajax而不是XmlHttpRequest来完成此操作,那么这是可以接受的解决方案。

不幸的是,这不能仅用JavaScript来实现,因此您将不得不在服务器上进行一些更改。 您有两种选择:

  • 您可以将会话cookie标记为HttpOnly,这样它就不会与您的请求一起发送。 但这意味着,所有请求都以未经身份验证的用户身份发送。

  • 第二种选择是为此端点使用子域。 Cookie仅与XmlHttpRequests一起在同一域上发送,以防止跨站点脚本编写。 因此,如果将服务器端点从www.example.com/myresource移到api.example.com/myresource ,则不会发送cookie。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM