【发布时间】:2021-09-03 14:18:45
【问题描述】:
考虑以下代码。如果发生异常,跟踪(将被记录并存储在数据库中)将包括敏感的password 数据。在这种情况下如何隐藏敏感数据,同时允许其他非敏感参数?
<?php
$user = 'john';
$pass = 'secret';
function auth($user, $pass) {
// authentication logic
}
function login($user, $pass) {
throw new Exception('Unexpected error');
// various logic
auth($user, $pass);
// various logic
}
try {
login($user, $pass);
} catch (Throwable $e) {
send_to_log($e->getTrace()); // This reveals the password "secret"
}
【问题讨论】:
-
将数据写入日志文件。
-
您为什么要向最终用户显示回溯的结果?不要这样做。
-
@miken32 为什么您认为代码示例反映了向最终用户显示的内容?我说的是插入到数据库或日志文件中的数据,最终用户永远看不到。
标签: php security logging credentials