避免硬编码你的PostgreSQL数据库密码

一个密码文件包含了我们需要连接的五个字段,所以我们可以使用文件权限来使密码更安全。

host:port:dbname:user:password

such as myhost:5432:postgres:sriggs:moresecure

密码文件是使用一个叫PGPASSFILE的环境变量来设置的。如果PGPASSFILE没有设置,然后,一个默认的文件名和位置被搜索:

在*nix系统,检查~/pgpass.

在Windows系统,检查%APPDATA%\postgresql\pgpass.conf,%APPDATA%是路径中应用数据子目录(对我来说,是C:\)

在*nix系统,chmod 0600 ~/.pgpass

密码文件可以包含多行。每行与请求的host:port:dbname:user组合匹配,直到我们找到一行匹配行,然后我们使用那个密码。

每个条目可以是一个文本值或*一个可以匹配任何字符的通配符。不支持部分匹配。不支持部分匹配。有了适当的权限,用户可以连接到任何数据库。在dbname和port字段使用通配符是有意义的,虽然在其他字段是没有意义的。示例如下:

host:port:dbname:user:password

myhost:5432:*:sriggs:moresecurepw

myhost:5432:perf:hannu:okpw

myhost:*:perf:gabriele:maggioresicurezza

如果你有少量的数据库服务器,这看起来是一个很好的改进。如果你有许多不同的数据库服务器,你可能想使用一个连接服务的文件,或者是把细节存储在LDAP服务器中。

时间: 2024-11-03 00:01:41

避免硬编码你的PostgreSQL数据库密码的相关文章

Fortify漏洞之Dynamic Code Evaluation: Code Injection(动态脚本注入)和 Password Management: Hardcoded Password(密码硬编码)

继续对Fortify的漏洞进行总结,本篇主要针对  Dynamic Code Evaluation: Code Injection(动态脚本注入) 和 Password Management: Hardcoded Password(密码硬编码)  的漏洞进行总结,如下: 1.1.产生原因: 许多现代编程语言都允许动态解析源代码指令.这使得程序员可以执行基于用户输入的动态指令.当程序员错误地认为由用户直接提供的指令仅会执行一些无害的操作时(如对当前的用户对象进行简单的计算或修改用户的状态),就会出

修改PostgreSQL数据库的默认用户postgres的密码

有时候,忘记了postgresql 安装时默认用户postgres 的密码,怎么办呢? linux shell命令下面输入: sudo -u postgres psql  (这样就可以直接登录进postgres 了, 然后在里面可以进行添加用户,修改密码之类的,都不是问题了!!) -------------------------------------------------------------------------------------------------------------

密码硬编码(Password Management: Hardcoded Password)

在对项目进行安全扫描时,发现一些密码硬编码问题,本文主要三个方面:1)什么是密码硬编码:2)密码硬编码的危害:3)密码硬编码的解决方案. 一 什么是密码硬编码 将密码以明文的形式直接写到代码中,就是密码硬编码. 下边示例中,将用户名和密码直接写到代码中,就是硬编码. 1 function connectionDatabase(url, userName, password) { 2 // .... 3 } 4 5 connectionDatabase('./api', 'zhangsan', '

CVE-2019-18988 teamviewer将用户名密码硬编码至注册表中

CVE-2019-18988 teamviewer将用户名密码硬编码至注册表中 TeamViewer stored user passwords encrypted with AES-128-CBC with they key of 0602000000a400005253413100040000 and iv of 0100010067244F436E6762F25EA8D704 in the Windows registry. If the password is reused anywhe

安装PostgreSQL数据库(Linux篇) [转]

from marsprj 0.编译环境 Linux: CentOS 5.5 gcc: 4.1.2 1. 安装PostgreSQL 1) 解压postgresql-9.1.7.tar.bz2 #tar jxvf postgresql-9.1.7.tar.bz2 2) 进入解压后的postgresql-9.1.7目录 #cd postgresql-9.1.7 3) 编译postgresql源码 #./configure --prefix=/opt/pgsql-9.1.7 #make #make in

metasploit连接postgresql数据库

metasploit 连接postgresql数据库: 1.打开postgresql服务:services postgresql start 2.进入postgresql中,设置默认用户密码.创建新用户.设置新用户权限.创建数据库: sudo -u postgres psql#进入postgresql默认的用户 alter user postgres with password '密码'; #设置默认用户的登录密码 create user '用户名' wiht password '密码' noc

postgresql数据库psql控制台操作命令

登录postgresql数据库控制台 psql 数据库名 登录成功显示 [zpf@kevin ~]$ psql postgres psql (9.4.1) Type "help" for help. postgres=# 创建数据库用户xxx CREATE USER xxx WITH PASSWORD 'xxxxxx'; 创建数据库yyy并指定全部者为xxx CREATE DATABASE yyy OWNER xxx; 将对数据库yyy的全部操作权限赋给用户xxx,否则xxx仅仅能登录

postgresql数据库的数据导出

一.pg_dump的用法:数据库的导入导出是最常用的功能之一,每种数据库都提供有这方面的工具,例如Oracle的exp/imp,Informix的dbexp/dbimp,MySQL的mysqldump,而PostgreSQL提供的对应工具为pg_dump和pg_restore.pg_dump是用于备份PostgreSQL数据库的工具.它可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问.转储格式可以是一个脚本或者归档文件.转储脚本的格式是纯文本,包含许多SQL命令,这些

BT5之Metasploit[MSF]连接postgresql数据库

1,先查看postgresql的端口,默认是自动开启的,端口7337 .   [email protected]:~# netstat -tnpl |grep postgres tcp        0      0 127.0.0.1:7337          0.0.0.0:*               LISTEN      1100/postgres tcp6       0      0 ::1:7337                :::*