New submission from Aaron Meurer <asmeu...@gmail.com>:

Take the following scenario which happened to me recently. I am trying to debug 
an issue on Travis CI involving environment variables. Basically, I am not sure 
if an environment variable is being set correctly. So in my code, I put

print(os.environ.keys())

The reason I put keys() was 1, I didn't care about the values, and 2, I have 
secure environment variables set on Travis. 

To my surprise, in the Travis logs, I found something like this

KeysView(environ({'TRAVIS_STACK_FEATURES': 'basic cassandra chromium couchdb 
disabled-ipv6 docker docker-compose elasticsearch firefox go-toolchain 
google-chrome jdk memcached mongodb mysql neo4j nodejs_interpreter 
perl_interpreter perlbrew phantomjs postgresql python_interpreter rabbitmq 
redis riak ruby_interpreter sqlite xserver', 'CI': 'true', ..., 'MANPATH': 
'/home/travis/.nvm/versions/node/v7.4.0/share/man:/home/travis/.kiex/elixirs/elixir-1.4.5/man:/home/travis/.rvm/rubies/ruby-2.4.1/share/man:/usr/local/man:/usr/local/clang-3.9.0/share/man:/usr/local/share/man:/usr/share/man:/home/travis/.rvm/man'}))

So instead of just printing the keys like I asked for, it printed the whole 
environment, plus "KeysView(environ(". Included here was my secure environment 
variable. 

Now, fortunately, Travis hides the contents of secure environment variables in 
the logs, but it didn't used to 
(https://blog.travis-ci.com/2017-05-08-security-advisory).

Aside from being a potential security issue, it's just annoying that it prints 
the whole environment. The values are much larger than the keys. With a normal 
dictionary, print(d.keys()) just prints the keys:

>>> print(dict(a=1, b=2).keys())
dict_keys(['a', 'b'])

----------
messages: 308190
nosy: Aaron.Meurer
priority: normal
severity: normal
status: open
title: print(os.environ.keys()) should only print the keys
versions: Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue32300>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to