Linux
查找通過基本認證(Apache)認證的目前使用者
當您通過基本身份驗證頁面登錄時,您通過身份驗證的使用者名是否儲存在任何地方(在伺服器或客戶端電腦上),可能在環境變數中?
背景:我有一個用於電子郵件伺服器的通用 Web 管理頁面,我想知道誰在做什麼。當使用者通過基本身份驗證成功登錄時,我希望能夠辨識他們並記錄他們的操作。所以每次送出請求時,我都可以寫入日誌文件。基本格式是:
$username ran a $function against $useraccount
因此,如果使用者更改了某人的權限,例如:
Admin-Bob ran a permission change against User-Scott
因此,如果發生錯誤,我可以輕鬆地在日誌文件中追溯導致原因的操作。我嘗試檢查
%ENV
雜湊無濟於事,有什麼想法嗎?我真的不想進入類似 PHP 的會話,因為那將意味著取消我的基本身份驗證,這已經給了我很好的控製程度。如果我必須用會話編寫一些程式碼,我需要實現一個系統來在最大嘗試次數後阻止使用者等等,我真的不想編寫程式碼。我認為這更適合伺服器故障,因為它與 Apache 相關,而不是程式語言。會議可以用多種語言進行。
使用者名將在環境變數中可用
REMOTE_USER
。如果您開始使用摘要或什至可能是 kerberos 身份驗證,這幾乎適用於所有身份驗證方法。
Shtéf 已經提到過
$ENV{'REMOTE_USER'}
,但如果您使用的是 CGI.pm,它也會由remote_user()
函式返回。my $cgi = CGI->new(); print $cgi->remote_user(); # Prints user name