python - Heroku 路由器日志记录格式

标签 python logging heroku flask

我最近在 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/

相关文章:

python - 使用 range() 或 slice() 对二维 ndarray 进行切片的区别

ruby-on-rails - 如何使用 Logger.new 创建文件夹(如果不存在)?

java - Unresolved 依赖 SBT play#sbt-plugin;2.0 : not found Play examples on Heroku

css - Heroku 上的 CSS 错误

ruby-on-rails - 如何在heroku上使用rails设置pgbouncer?

Python reportlab 在第一页完全充满文本后动态创建新页面

python - python3 中输出 "w"和循环的问题

使用 ConfigParser 在配置文件中使用 Python 转义分隔符

java.util.Logger 打包在不同操作系统中时的行为有所不同

java - 如何在不使用绝对路径的情况下使用 log4j.properties 为 Java Web 服务创建日志文件