【问题标题】:Search form via query string parameter (GET) - privacy concerns通过查询字符串参数 (GET) 搜索表单 - 隐私问题
【发布时间】:2020-11-17 17:24:27
【问题描述】:

据我所知:

(1) 查询字符串参数通过 HTTPS 加密。

(2) 由于大多数浏览器的默认referrer策略或网站的特定referrer策略,查询字符串参数通常不作为referrer传输。

但是:

(3) 查询字符串参数通常是服务器日志的一部分。

(4) 查询字符串参数在浏览器历史记录中可见。

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

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

谢谢!

【问题讨论】:

    标签: security server privacy


    【解决方案1】:
    1. 是的
    2. 是的,但请确保您通过 Referer-policy 标头进行控制。如果您设置无缓存标头,则此数据也不会存储在代理上,尽管这不太重要,因为它通常会被加密。
    3. 是的,但无论如何您也在处理和处理相同的搜索词,因此这里没有额外的曝光。您当然可以使用匿名的日志记录流程来解决此问题,或者在分析和汇总后删除所有日志详细信息,并在您的隐私政策中记录该流程。
    4. 是的,没错,但它也在用户的控制之下,用户可以随时删除,也可以通过自动设置(例如 30 天后删除)删除。

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

    【讨论】:

    • 感谢您的解释,HTTP 定义很有帮助。但要明确一点:POST 变量也存储在服务器日志中吗?我从来没有见过这样的事情(你说服务器端没有区别)。
    • 不,POST 数据不会保存在日志中(尽管您可以将其配置为这样做),但您可能还是在数据库中存储了相同的数据。
    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2021-12-23
    • 2012-11-08
    相关资源
    最近更新 更多