[英]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?
注意:
不幸的是,这不能仅用JavaScript来实现,因此您将不得不在服务器上进行一些更改。 您有两种选择:
您可以将会话cookie标记为HttpOnly,这样它就不会与您的请求一起发送。 但这意味着,所有请求都以未经身份验证的用户身份发送。
第二种选择是为此端点使用子域。 Cookie仅与XmlHttpRequests一起在同一域上发送,以防止跨站点脚本编写。 因此,如果将服务器端点从www.example.com/myresource
移到api.example.com/myresource
,则不会发送cookie。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.