通过查询字符串参数 (GET) 搜索表单 - 隐私问题

Search form via query string parameter (GET) - privacy concerns

据我所知:

(1) Query string parameters are encrypted via HTTPS.

(2) Query string parameters are usually not transferred as referrer because of the default referrer policy of most browsers or specific referrer policies for websites.

但是:

(3) Query string parameters are usually part of the server logs.

(4) Query string parameters are visible within browser history.

我的问题是(因为搜索字词也可能是非常敏感的数据):

为什么网页上的搜索表单通常使用 GET? POST 而不是 GET 不会消除 (3) 和 (4) 中的隐私问题吗?

谢谢!

  1. 是的,但请确保您通过 Referer-policy header 控制它。如果您设置 no-cache headers,此数据也不会存储在代理上,尽管这不太重要,因为它通常会被加密。
  2. 是的,但无论如何您也在处理这些相同的搜索词,因此这里没有额外的曝光。您当然可以使用匿名的日志记录过程来解决这个问题,或者在分析和聚合后以其他方式删除所有日志详细信息,并在您的隐私政策中记录该过程。
  3. 是的,确实如此,但它也受用户的控制,他们可以随时删除它,或通过自动设置(例如,30 天后删除)。

在 HTTP 词汇表中,POST 用于创建资源,而 GET 明确用于检索它们,包括搜索。浏览器通常也会存储 POST 内容(例如,尝试刷新一个 POSTed 页面,它会提供重新发布数据的功能),但作为用户,您对此的可见性和直接控制较少 – 浏览器可以保留POST 历史记录与 GET 请求完全相同。因此,它们在隐私方面的唯一区别是它在客户端的可见性——在服务器端没有区别。