sch*_*der 12 postgresql logs password postgresql-9.3
我无权访问 Postgres 安装,因此无法检查。
我是一名安全人员,我在日志中看到了明文密码:
create user user1 with password 'PLAINTEXT PASSWORD'
Run Code Online (Sandbox Code Playgroud)
在日志中没有明文密码的情况下,DBA 如何更改或创建他们的密码?
我见过这个,它指出您可以使用密码的 md5 散列,但散列也是明文。有没有更好的办法?
Cra*_*ger 13
听起来像是log_statement
设置为all
。
如果您希望在log_statement
设置为捕获ALTER USER
/的值时防止密码出现在日志中,ALTER ROLE
那么您将需要在更改密码时覆盖它。例如
BEGIN;
SET LOCAL log_statement = 'none';
ALTER USER ... SET PASSWORD ...;
COMMIT;
Run Code Online (Sandbox Code Playgroud)
您必须是超级用户才能执行此操作。普通用户无法覆盖日志记录规则。
如果 PostgreSQL 支持将语句(甚至函数)的一些参数标记为安全敏感并允许用户请求在日志pg_stat_statements
、pg_stat_activity
、 等中屏蔽它们,那就太好了。 目前没有任何这样的功能 - 但是嘿,补丁是欢迎。不过,如果您真的感兴趣,请在编写任何实际代码之前在 pgsql-hackers 上发帖,以便您可以获得建议和评论。或者,与从事合同开发的人交谈。
一般来说,PostgreSQL 期望您将日志视为敏感的。
在其他领域,日志记录是一个严重的安全问题。例如,一些pgcrypto
函数将加密密钥作为参数。