3 ms·
> It's very easy to overlook such things and produce them as part of application logging/exhaust without realizing it Very true. It is a constant battle betwe
by rdtsc 10y ago
> It's very easy to overlook such things and produce them as part of application logging/exhaust without realizing it
Very true. It is a constant battle between debuggability and not leaking credentials.
In Erlang for example, when processes crash they dump their state, their neighbours, links to other processes, and other such useful stuff. That's very helpful, however it means it could dump credentials as well.
Luckily there a custom function to format the state of a process http://erlang.org/doc/man/gen_server.html#Module:format_status-2 http://erlang.org/doc/man/gen_server.html#Module:format_stat... which helps with that. But have to implement that each process which holds credentials.
Also some of those log ingesting services provide a pre-indexer credentials filtering. I know Splunk has it:
http://docs.splunk.com/Documentation/Splunk/6.4.3/Data/Anonymizedata http://docs.splunk.com/Documentation/Splunk/6.4.3/Data/Anony...
Of course it is better if it is filtered out before that. But it could be a safety net perhaps.
- mootothemax 10y ago>Very true. It is a constant battle between debuggability and not leaking credentials. And there are so many ways of getting bitten. Another anecdote for you: I recently found out that an API wasn't logging errors anywhere. Easy enough to fix, plug in a library and bam, everything is nicely logged to the database. Including the HTTP headers. Headers that include API auth tokens. Ouch.