簡體   English   中英

當我調用warning()或info()時,如何防止post變量出現在Yii2日志?

[英]How can I prevent post variables from appearing in the Yii2 log when I call warning() or info()?

我正在維護一個內置在Yii2中的應用程序,我想使用Yii :: warning()來編寫日志消息。 這很好,除非我在用戶登錄序列中記錄事件。

用戶名和密碼作為POST變量發送。 這些是敏感信息,不應在日志文件中捕獲。

$errorno = ldap_errno($this->link);
$errorstr = ldap_err2str($errorno);
Yii::warning("LDAP error: $errorno: $errorstr");

上面的代碼會導致出現日志警告,其中包含我的ldap錯誤消息,但該警告包含完整的堆棧跟蹤和POST變量。

即使僅在LDAP連接出現問題時寫入警告,它也可能包含當時從服務器管理員到CEO的任何用戶憑據。

如何在Yii中記錄與身份驗證相關的事件的警告,而無需獲得完整的堆棧跟蹤和轉儲POST字段?

您可以為每個日志目標配置將PHP超全局變量導出到日志的內容。 在您的配置文件中,例如:

'log' => [
    'traceLevel' => YII_DEBUG ? 3 : 0,
    'targets' => [
        [
            'class' => 'yii\log\FileTarget',
            'levels' => ['error', 'warning'],
            'logVars' => ['_GET', '_POST', '_FILES', '_COOKIE', '_SESSION', '_SERVER'],
        ],
    ],
],

省略logVars屬性時的默認設置如上例所示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM