Rest 是否可以由后端从启用CSRF的完全不同的IP地址为前端提供服务?

Rest 是否可以由后端从启用CSRF的完全不同的IP地址为前端提供服务?,rest,xmlhttprequest,csrf,x-xsrf-token,Rest,Xmlhttprequest,Csrf,X Xsrf Token,在我遇到这个问题之前,我认为一切都应该顺利进行。但现在我面临着一个我以前从未想过的问题 我有两个服务器,一个前端和一个后端。这两个有不同的地址192.168.2.10:8080和localhost:4200。后端是用Java+Spring实现的,前端是Angualr2(这还不重要)。当然,我可以很容易地从localhost为它们提供服务,这只是为了测试。事实上,如果我从localhost提供这两种服务,我就不会面临我将要描述的问题 我的后端已经启用了CSRF,这意味着对于每个POST请求(以及其

在我遇到这个问题之前,我认为一切都应该顺利进行。但现在我面临着一个我以前从未想过的问题

我有两个服务器,一个前端和一个后端。这两个有不同的地址
192.168.2.10:8080
localhost:4200
。后端是用Java+Spring实现的,前端是Angualr2(这还不重要)。当然,我可以很容易地从localhost为它们提供服务,这只是为了测试。事实上,如果我从localhost提供这两种服务,我就不会面临我将要描述的问题

我的后端已经启用了CSRF,这意味着对于每个POST请求(以及其他一些方法),它都需要一个cookie和一个标头,以便出现并相互匹配(
XSRF-TOKEN
cookie和
X-XSRF-TOKEN
标头)。问题是,当我对后端服务器进行Ajax调用时,
X-XSRF-TOKEN
没有正确填充

当我在网络选项卡中打开POST请求时,我可以看到cookie被发送到后端服务器。但是,请求中没有
X-XSRF-TOKEN

是的,我已经将
with credentials
属性设置为true。正如我所说,如果两台服务器共享相同的IP地址,那么一切都可以正常工作。我认为问题在于,由于cookie是为不同的地址设置的,XMLHttpRequest对象无法访问它以将其包含为头,这对我来说是一个麻烦


那么,后端是否可以从启用了CSRF且不使用代理的完全不同的IP地址为前端提供服务?

cookie是httponly?@ConstantingAlbernu不是。如果它是httponly,那么即使两台服务器都位于同一地址也不会起作用。