与 Postgres 的 TCP 连接安全吗?需要 SSL 吗?

2024-06-26

早上好,

我正在浏览 Postgresql 配置文件,最近注意到有一个ssl选项。我想知道什么时候需要这样做。

假设您有一个应用程序服务器和一个数据库服务器 - 不在专用网络内运行。如果用户尝试登录,如果未启用 SSL,应用程序服务器在查找用户密码是否是有效的用户名/密码时是否会以明文形式将用户密码传输到数据库?

这里的标准做法是什么?我应该将数据库设置为使用 SSL 吗?

如果是这样的话,连接设置有什么不同吗?config/database.yml在我的 Rails 应用程序中?

Thanks!


与其他协议一样,使用 PostgreSQL 的 SSL/TLS 可以保护客户端和服务器之间的连接。是否需要取决于您的网络环境。

如果没有 SSL/TLS,窃听者将可以看到客户端和服务器之间的流量:所有查询和响应,可能还包括密码,具体取决于您的配置方式pg_hba.conf(无论客户正在使用md5或明文密码 http://www.postgresql.org/docs/9.2/static/auth-methods.html).

据我所知,是请求MD5或者明文密码认证的服务器 http://www.postgresql.org/docs/9.2/static/protocol-flow.html#AEN95138,因此,在不使用 SSL/TLS 的情况下,活跃的中间人攻击者肯定可以降级并获取您的密码。

配置良好的 SSL/TLS 连接应该允许您防止针对密码和数据的窃听和 MITM 攻击。

您可以要求在服务器端使用 SSLsslhost in pg_hba.conf,但这只是问题的一部分。最终,就像网络服务器一样 https://webmasters.stackexchange.com/a/28443/11628,由客户端来验证是否使用了 SSL,以及是否与正确的服务器一起使用。

libpq 文档中的表 31-1 http://www.postgresql.org/docs/9.2/static/libpq-ssl.html总结了您获得的保护级别。

本质上:

  • 如果您认为您有理由使用 SSL,disable, allow and prefer没有用(如果你想要安全,就不要选择“不”或“也许”)。
  • require几乎没有用,因为它根本不验证远程服务器的身份。
  • verify-ca不验证主机名,这使其容易受到 MITM 攻击。

如果安全对您很重要,您会想要的是verify-full.

这些 SSL 模式名称由 libpq 设置。其他客户端可能不会使用相同的(例如纯 Ruby 实现或 JDBC)。

据我所知,ruby-pg https://bitbucket.org/ged/ruby-pg/wiki/Home依赖于 libpq。不幸的是,它只列出“disable|allow|prefer|require”sslmode http://deveiate.org/code/pg/PG/Connection.html。也许verify-full如果直接通过的话也可能有效。但是,还需要一种配置 CA 证书的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 Postgres 的 TCP 连接安全吗?需要 SSL 吗? 的相关文章

  • 是否应该用于 JSF 2.2 CSRF 保护?

    我很困惑 我看到 JSF 2 0 有隐式 CSRF 保护 JSF 2 0 如何防止 CSRF https stackoverflow com questions 8704612 how jsf 2 0 prevents csrf 根据文章的
  • 一次将多个值插入MySQL [重复]

    这个问题在这里已经有答案了 谁能解释一下为什么这个 PHP MySQL 不起作用 基本上我需要从表单中一次插入大量行 因此会有多个名称字段 多个短 中 长字段等 我收到此错误 Notice Undefined variable Short1
  • 用于存储和检索每个用户敏感数据的.Net 设计模式

    Net 服务器应用程序是否有与存储和检索敏感的每个用户信息 例如第 3 方凭据 相关的参考模式 我的初步设计思路是 生成具有适当强私钥的自签名 X509 证书 导出证书和密钥并将其存储在 USB 密钥中 该 USB 密钥将被锁在宝箱中并由龙
  • 全静态方法和应用单例模式有什么区别?

    我正在创建一个数据库来存储有关我的网站用户的信息 我正在使用 stuts2 因此使用 Java EE 技术 对于数据库 我将创建一个 DBManager 我应该在这里应用单例模式还是将其所有方法设为静态 我将使用这个 DBManager 进
  • SQL Server:比较两个表中的列

    我最近完成了从某些应用程序的旧版本到当前版本的迁移 在迁移数据库时遇到了一些问题 我需要一个可以帮助我比较两个表中的列的查询 我的意思不是行中的数据 我需要比较列本身来弄清楚我错过了表结构的哪些变化 看一下红门 SQL 比较 http ww
  • Microsoft SQL 数据库的 WebSocket 侦听器

    我目前正在开发一个项目 该项目必须使用 WebSockets 作为将数据传输到客户端的方式 基础设施看起来像这样 客户端 gt Web 服务器 gt Microsoft SQL 数据库 我想最理想的情况应该是这样的 客户端打开一个到服务器的
  • SQLite数据库分区

    我想创建 sqlite 分区结构 我创建了3个数据库 我将这 3 个数据库附加到另一个数据库 该数据库将成为父数据库 ATTACH DATABASE 1 db as 1 ATTACH DATABASE 2 db as 2 ATTACH DA
  • 将多个表中的数据获取到单行中,同时连接一些值

    我正在尝试从表中检索数据并将多行合并为一列 而不重复任何信息 我有以下表格 简介 资格 项目 Profile pro id surname firstname 1 John James 2 King Fred 3 Luxury Yachts
  • 多态查询的数据库压力

    我在 JPA 中使用了超过 5 个子类的多态抓取 执行的查询如下 explain SELECT ohlcrawbea0 trade time AS trade ti3 11 ohlcrawbea0 avg price AS avg pric
  • Heroku postgresql 数据库名称

    这是我必须查找 heroku 数据库名称的命令 heroku config grep POSTGRESQL 我得到类似于以下的结果 HEROKU POSTGRESQL NAVY URL postgres wxjwilh t email pr
  • MySQL 在 Windows 上将数据库文件存储在哪里以及文件的名称是什么?

    我不小心格式化了硬盘并重新安装了 Windows 却忘记备份 MySQL 服务器中的重要数据库 我现在正在尝试使用某些软件来挽救文件 但我不知道要寻找什么 文件存储的路径是什么 文件的名称是什么 我应该查找什么命名约定或文件扩展名 我相信我
  • 可变字段数的数据库结构设计

    对于某种库存系统 用户可以创建一个item type它具有某些属性 现在每种类型的属性数量都是可变的 我应该如何使用 DBStructure 来解决这个问题 只需制作 X 份量propertyX领域 还是有其他方法可以以这种方式实现灵活性
  • Python postgreSQL sqlalchemy 查询 DATERANGE 列

    我有一个预订系统 并将预订日期范围保存在 日期范围 列中 booked date Column DATERANGE nullable False 我已经知道我可以通过以下方式访问实际日期booked date lower or booked
  • 如何在 Django 中创建/使用自定义数据库函数

    序幕 这是SO中经常出现的一个问题 Django GEOS 中 PostGIS ST MakeValid 的等效项 https stackoverflow com questions 45631855 equivalent of postg
  • 在AWS Windows实例中获取SSL的CSR文件

    我需要获取 CSR 才能完成 godaddy com 的 SSL 订单 我在 Amazon AWS 实例中运行 Windows 2012 服务器是 Express js 域名指向该实例IP 一切正常 我想我必须从控制台或类似的东西创建该密钥
  • Heroku 自定义域 SSL 警告

    我正在尝试为我的 Heroku 部署应用程序设置 GoDaddy 购买的自定义域 我让它工作 以便 www com 正确转发到我的 herokuapp cedar 但是 1 我尝试获取裸地址没有成功 2 当我第一次尝试登录自定义域时 我得到
  • 使用 pyscopg2 和 PostgreSQL 将日期时间插入数据库

    我在使用 pyscopg2 的 insert 语句将日期时间戳插入 SQL 数据库时遇到问题 下面的代码所做的是每次按下按钮时 它都应该在数据库中插入一行 其中包含buildingID 只是文本 以及按下按钮时的日期和时间 我只是不知道如何
  • 在 PostgreSQL 中向日期添加月份显示语法错误

    我使用的是Postgres 9 0版本 我想在日期中添加一些月份来计算新日期并在表中更新 这里要添加的月份数将是整数变量 我的代码如下 declare numberofmonths smallint 5 update salereg1 se
  • Grib2 到 PostGIS 栅格——有人让它工作吗?

    我有一个应用程序需要导入美国国家气象局表面分析 这些分析分布为grib2 http en wikipedia org wiki GRIB文件 我想将它们提取到 PostGIS 2 0 栅格中 进行一些计算和建模 并在 GeoServer 中
  • Apache HTTPClient SSLPeerUnverifiedException

    使用 Apache HttpClient 4 2 1 使用从基于表单的登录示例复制的代码 http hc apache org httpcomponents client ga examples html http hc apache or

随机推荐

  • YAML 中空字典的语法

    如何在 YAML 中表示空字典 IE 它在语义上应该等同于空的 json object 简短回答 使用 在 yaml 中有两种表示映射 字典 的方法 流映射 http www yaml org spec 1 2 spec html id27
  • Prism 应用程序关闭时不退出

    我正在学习棱镜 我遇到了一个问题 我制作了一款应用程序 与 Mike Taulty 制作的关于 Prism 的精彩教程中的应用程序非常相似 最大的区别是我的应用程序是 WPF 应用程序而不是 Silverlight 我发现我遇到了问题 当我
  • 如何在 ruby​​ on Rails 中的 haml 内的 js 设置会话变量?

    我通过 js 有表行着色 针对行组 我想让它通过会话变量记住阴影 我正在使用的 haml 部分有 Group Shading a href gt id gt row colors on On a href gt id gt row colo
  • 将文件夹中所有文本文件中与模式匹配的行提取到单个输出文件

    我试图提取文件夹中所有文件中以 开头的每一行 然后将这些行复制到单独的文本文件中 目前在 PowerShell 代码中使用此代码 但我没有得到任何结果 files Get ChildItem folder Filter txt foreac
  • CodeIgniter“找不到您请求的页面。”错误?

    我在使用 CodeIgniter 时遇到问题 我已经检查了互联网上所有可能的解决方案 似乎对我的情况没有任何帮助 我不是一个大专业人士 这是我第一次使用 CodeIgniter 所以不要对我严厉 路线 php route default c
  • C 中每 N 个元素中出现次数最多的元素

    我有一个大小为 0 8388608 的大数组 A 其中包含 相对较小 的整数 A i 0 131072 我想找到每个 N 32 个元素中最常出现的元素 什么会更快 A 创建一个大小为131072的关联数组B 迭代32个元素 递增B A i
  • OS X Homebrew 安装时缺少 Imagemagick jpeg 解码委托

    我最近从 macports 转换为 homebrew 之前的 macports Imagemagick 安装运行良好 我按照自制程序说明 chown usr local 有点担心 并删除 usr local include 和 usr lo
  • 保存 Lisp 状态

    我是 lisp 的初学者 有一个问题 当我直接在 REPL 中编写一些代码 没有任何 lisp 文件 时 如何保存解释器的工作 状态以便下次恢复并继续工作 我用的是ECL 谢谢 抱歉我蹩脚的英语 来自电化学发光手册 http ecls so
  • 找到一个子串,替换并乘以1024

    我有一个内容如下的文件 03 14 27 31K 03 13 59 50M 04 11 51 435K 问题是如何获取以字节为单位的数字并替换为旧值 以便我可以获得 也去掉引号很有用 03 14 27 31744 用什么比较好 grep 还
  • 使用 aop.xml 在 AspectJ 中加载时间编织

    据我了解 要使用 aop xml 文件进行加载时编织 必须将其放置在 META INF 中 有没有办法解决这个问题并在任何目录中使用 aop xml 或任何 xml 文件 谢谢 您可以使用系统属性org aspectj weaver loa
  • 是否针对各种屏幕尺寸建议修改 dp 大小而不是像素?

    比如说 对于屏幕A 240X320 ldpi 和屏幕B 720X1280 xhdpi 上的ImageButton 是否建议在各个屏幕的每个唯一布局资源文件中手动更改其dp 布局宽度和高度 大小 或者 为图像的每个 dpi 大小创建缩放的九块
  • 如何以编程方式 ajax 更新支持 bean 中的特定组件

    有没有办法通过 ajax 更新特定组件 例如
  • Azure 自动化 Powershell Runbook 无法进行 LoadAssembly

    我是 Powershell Runbook 的新手 所以如果我遗漏了一些明显的内容 请原谅我 我正在尝试从我的脚本记录 Application Insights 请求 但甚至无法加载 DLL 尽管我已经看到其他代码执行非常类似的操作 请注意
  • 带可选参数的 SQL 更新命令?

    我将大约 500 000 个对象插入数据库 其中许多对象是相同的 在数据库中具有相同的主键表示 但其他字段可能不同 因此我使用方法 更新 如果没有行受影响 插入 问题是 有时一个对象的某些字段设置为 null 从文件中无法读取 并且已经在数
  • ModuleNotFoundError:没有名为“pwd”的模块——airflow python [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想使用以下方式安装气流的 Web UI airflow webserver port 1080 但我收到这个错误 Mo
  • 在自定义列表视图中,滚动时复选框未选中

    我知道这个问题已经被问了一遍又一遍 但我仍然找不到有用的建议 当我滚动列表视图时 复选框未选中 当特定项目时 我使用数组列表来存储列表视图中所选项目的 id 取消选中它将从列表视图中删除 public class ManagePractic
  • Airflow 元数据数据库权限

    有没有地方可以找到在 mysql 中创建metadadb 所需的权限列表 我不想为气流用户授予所有权限 None
  • 用于提取 FDF 数据的 PHP 正则表达式代码

    我正在尝试使用 PHP 和正则表达式解析 FDF 文件 但我就是无法理解正则表达式 我一直在解析文件以生成数组 FDF 1 2 1 0 obj lt lt FDF lt lt Fields lt lt V email protected c
  • jqGrid 中的时间格式

    我正在尝试在 jqGrid 中设置时间格式 这是行不通的 我想在区域设置文件中使用预定义的格式化程序 这是 col 的定义方式 name Tid index Tid width 65 editable true formatoptions
  • 与 Postgres 的 TCP 连接安全吗?需要 SSL 吗?

    早上好 我正在浏览 Postgresql 配置文件 最近注意到有一个ssl选项 我想知道什么时候需要这样做 假设您有一个应用程序服务器和一个数据库服务器 不在专用网络内运行 如果用户尝试登录 如果未启用 SSL 应用程序服务器在查找用户密码