Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Heroku路由器日志记录格式_Python_Logging_Heroku_Flask - Fatal编程技术网

Python Heroku路由器日志记录格式

Python Heroku路由器日志记录格式,python,logging,heroku,flask,Python,Logging,Heroku,Flask,我最近在Heroku上部署了一个Flask应用程序。它在现有API的基础上提供API,并要求用户为原始服务提供机密API密钥。应用程序实际上只是几个表单,其值通过ajax传递到服务器上的特定URL。没什么特别的。我采取措施不在应用程序中存储机密信息,也不希望在应用程序中的任何位置出现机密信息的痕迹 查看heroku logs--source heroku中的日志,heroku路由器进程存储应用程序的所有HTTP请求,包括包含机密信息的请求 是否有办法指定heroku进程的日志格式,以便不存储所提

我最近在Heroku上部署了一个Flask应用程序。它在现有API的基础上提供API,并要求用户为原始服务提供机密API密钥。应用程序实际上只是几个表单,其值通过ajax传递到服务器上的特定URL。没什么特别的。我采取措施不在应用程序中存储机密信息,也不希望在应用程序中的任何位置出现机密信息的痕迹

查看heroku logs--source heroku中的日志,heroku路由器进程存储应用程序的所有HTTP请求,包括包含机密信息的请求


是否有办法指定heroku进程的日志格式,以便不存储所提供的URL?

正如其他评论者所提到的,将机密信息放在URL中是一种不好的做法。在与服务器的往返过程中,许多系统(如路由器、代理服务器、缓存)可能会缓存或记录这些数据。有两种方法可以解决此问题:

  • 把它们放在盒子里。这可能是基于REST的API处理身份验证的最常见方式

  • 把它们放在柱子身上。这可以使其脱离URL,但从语义上说,您正在将凭据发布到某个资源(如果这是REST API),这有点奇怪,除非它是一个登录调用


机密信息是在URL本身中还是仅仅在发送的POST数据中?机密信息是在ajax点击的URL中。在这种情况下,在将数据添加到URL并在其点击服务器时对其进行解码之前,您能否使用某种密钥对数据进行编码?这样,日志中的信息就不是明文了。类似于带有nonce和共享密钥的签名应该可以工作。没有回答问题,但可能是解决您问题的方法。不要将敏感信息放在URL中或作为GET params:)如果它类似于用户id,您还应该使用其他身份验证。如果是用户名/密码之类的东西,你应该使用POST。你问过Heroku支持吗?我已经对应用程序进行了重构,使用POST请求。一般来说,我不能否认将机密信息放入URL会有风险,但在HTTPS连接上,URL参数是加密的。对于像API这样的东西,url参数非常有意义。然而,对于如何从heroku路由器日志中过滤它们,我仍然没有答案。