我最近在 Heroku 上部署了一个 Flask 应用程序。它在现有 API 之上提供了一个 API,并且需要用户提供用于原始服务的 secret API key 。该应用程序实际上只是一些表单,其值通过 ajax 传递到服务器上的特定 URL。没有什么花哨。我采取措施不在应用程序中存储 secret 信息,并且不希望在应用程序中的任何地方留下任何痕迹。
查看来自 heroku logs --source heroku
的日志,heroku 路由器进程存储应用程序的所有 HTTP 请求,包括那些包含 secret 信息的请求。
有没有办法为 heroku
进程指定日志格式,以便不存储服务的 URL?
最佳答案
正如其他评论者所提到的,将 secret 信息放在 URL 中是一种不好的做法。这些可以在往返服务器的过程中被许多系统(例如路由器、代理服务器、缓存)缓存或记录。有几种方法可以解决这个问题:
将它们放在
Authorization
header 中.这可能是为基于 REST 的 API 处理身份验证的最常见方式。将它们放在 POST 正文中。这可以将其从 URL 中删除,但在语义上有点奇怪,说您正在将凭据发布到某些资源(如果这是 REST API),除非它是登录调用。
关于python - Heroku 路由器日志记录格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12897717/