是否可以代表用户在我的网站上禁用第三方Cookie?

时间:2018-07-16 23:10:02

标签: cookies webserver

我有一个网站从另一个网站加载资源。我已经能够确定:

  • 第三方网站在用户的浏览器中放置cookie。
  • 如果我在浏览器设置中禁用了第三方cookie,则第三方网站将不再能够在浏览器中放置cookie。
  • 资源仍然可以正常工作。

我想知道是否可以从网站上提供某种标头或其他指令,这些标头或指令可以对用户产生与禁用第三方Cookie相同的效果,但是并不需要它们随便看看它们的设置。

1 个答案:

答案 0 :(得分:0)

通常,不可能阻止您的浏览器在HTTP请求中包含cookie。但是,最近,向浏览器添加了一些获取资源的新方法。

  • 使用Fetch API fetch在响应中忽略Set-Cookie,除非指定,否则不包括Cookie

  • 使用ES6(ES2015)模块: <script type="module" ...>如果没有crossorigin属性,将不会发送Cookie。它不适用于非模块脚本,并且必须配置服务器(而不是您的服务器,一个用于服务文件),以使用有效的CORS标头为文件提供服务。用import * from blah.com/script.js导入的脚本也将以相同的方式运行。遵循link以获得更多信息。

  • 设置crossorigin="anonymous"具有script的资源元素,例如imgstylecrossorigin="anonymous"将不包含{{1 }}标头中的后续请求。

但是这些都可以通过使用Cross-Origin Resource Sharing (CORS)来工作,并且如果将资源服务器配置为不允许没有凭据(cookie和其他标头)的请求,它们将无法工作。您可能会收到404或其他错误。

如果您担心第三方Cookie,通常最好从您自己的服务器或像大多数CDN一样的无cookie的服务器中提供静态数据。