gpt4 book ai didi

security - 日志记录/安全注意事项和敏感数据

转载 作者:行者123 更新时间:2023-12-02 19:27:50 25 4
gpt4 key购买 nike

我正在研究与 Web 应用程序的日志记录和安全性相关的通用“架构”。据我所知,记录所有请求/响应数据(不仅是访问日志,还包括请求/响应的正文)被认为是最佳实践。它非常适合安全分析、调试目的、审计等等。

存在一个问题,即某些请求中会传输敏感信息,例如密码和/或信用卡数据。

(请注意:当然,我使用的是 HTTPS,但密码和/或信用卡数据将在日志记录或日志文件中显示为纯文本。顺便说一句,我不存储信用卡数据,因为我不符合 PCI DSS,我们会将此数据传输给符合 PCI DSS 的合作伙伴)。

目前,我记录和存储异地访问日志(因此记录没有请求/响应主体,但带有 GET 参数数据),并且我在应用程序代码中记录请求/响应主体数据(因此我能够决定使用哪种数据记录,并在写入日志之前删除敏感数据)。

但是,我正在考虑在应用程序外部实现(请求/响应主体的)日志记录,可以说通过某些模块(例如 mod_dumpio 或类似的东西)在服务器级别上实现,但在这种情况下,记录敏感信息信息可能是一个大问题。

我应该如何实现/配置它?

最佳答案

处理敏感数据时应考虑几种最佳做法。

首先,尽量减少传输的所有敏感数据。通过在架构中尽早对密码进行哈希处理,您可以确保任何下游组件永远不会面临暴露敏感数据的风险。

第二,与前一点相关,您应该限制/隔离接收此敏感信息的组件。对于密码,只有身份验证服务器需要此信息 - 其余组件实际上应该只处理授权 token (或类似的东西)。对于信用卡,这可能应该只关联与那些需要它的服务 - 例如系统的结帐/计费组件。

第三,对于那些确实需要获取逻辑敏感信息的实际值(value)的系统(例如信用卡),您应该考虑创建/使用类似 token 的系统。这基本上是您可以存储敏感信息并提供 ID 引用来替换原始敏感数据元素的地方(例如,将信用卡号换成信用卡号 ID)。

要结束该解决方案,请在尽可能靠近边缘的位置(例如您捕获信用卡的位置)交换敏感数据以换取此 token 。将此 token 交换为敏感信息值(具有正确的授权)以取回该值,然后在最晚的可能时刻使用它。最后,审核在这些敏感点完成的日志记录,以确保它没有以明文方式记录。

这种设计模式是世界上一些最大的电子商务网站的做法。 (抱歉,我不能透露是谁。)希望有帮助!

关于security - 日志记录/安全注意事项和敏感数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33671027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com