Using Opaque Envelopes
Using Opaque Envelopes
- public function __construct($string)
- public function openEnvelope()
- public function __toString()
Internals
Internals
- private function mask($string, $noise)
Opaque reference to a string (like a password) that won't put any sensitive data in stack traces, var_dump(), print_r(), error logs, etc. Usage:
$envelope = new PhutilOpaqueEnvelope($password); do_stuff($envelope); // ... $password = $envelope->openEnvelope();
Any time you're passing sensitive data into a stack, you should obscure it with an envelope to prevent it leaking if something goes wrong.
The key for the envelope is stored elsewhere, in PhutilOpaqueEnvelopeKey. This prevents it from appearing in any sort of logs related to the envelope, even if the logger is very aggressive.
$string |
this | //Implicit.// |
wild |
wild |
$string | ||
$noise |
wild |