관리자/모더레이터가 사용자 계정에 로그인하거나 사용자의 개인 메시지를 읽을 경우 사용자에게 알림을 보내고 싶습니다.
시스템 봇을 통해 개인 메시지로 알림을 보내거나, 사용자 프로필에 이러한 로그 동작을 표시하는 방식으로 처리할 수 있습니다. 예를 들어 사용자 계정 설정에 “로그” 메뉴를 만들어, 사용자가 이 동작(관리자/모더레이터의 로그인/개인 메시지 읽기)을 확인할 수 있도록 하는 것입니다.
기억이 맞다면, PM(개인 메시지) 접근 기능은 관리자(admin)만 사용할 수 있습니다._MOD(운영진)은 다른 사용자의 메시지를 열 수 없습니다. 따라서 간단한 답은, Discourse 인스턴스 자체를 관리하고 운영하는 특정 인원에게만 관리자 권한을 부여하는 것입니다. 기술적인 관점에서 보면, 인스턴스를 관리하는 사람은 로그 항목을 생성하지 않고도 데이터베이스 자체를 통해 PM에 접근할 수 있습니다. 사이트와 해당 서버의 관리자로서, 관리자가 이러한 수준의 접근을 하는 것을 궁극적으로 방지하는 유일한 방법은 그들이 키를 가지고 있지 않도록 콘텐츠를 암호화하는 것입니다.
원하시는 보안 수준을 위해 기본적으로 다음이 필요합니다:
저는 아직 사용해 본 적이 없지만, 이 도구가 키를 클라이언트 측에서 생성하고 저장하여 위장(impersonation) 기능을 통해 접근할 수 없도록 한다고 믿습니다. 키는 여전히 로컬에 저장되며, 위장 기능을 통해 접근할 수 없을 것입니다(제가 아는 한). 이는 데이터베이스 자체에 있는 데이터를 보호하는 사실상 유일한 방법입니다.
암호화되지 않은 메시지를 보고 있는 것 같습니다. 관리자가 메시지를 복호화하려면 사용자의 비밀번호를 알아야 하는데, 비밀번호는 PBKDF2 해시로 저장되어 있어 해시를 무차별 대입 공격(브루트포스)으로 풀기에는 비용이 많이 들고 시간이 오래 걸리는 과정입니다. 추가적인 프라이버시가 필요하시다면 암호화된 개인 메시지(Private Message) 플러그인의 만료 기능이 있습니다. 어쨌든, 관리자 UI에 개인 메시지 읽기 옵션이 없더라도 암호화 플러그인을 사용하지 않는 한 데이터베이스에는 평문으로 저장되어 있을 것입니다.
오픈소스라고 해서 프라이버시가 보장되는 것은 아닌 것 같습니다. 용어를 혼동하고 계신 것 같습니다.