PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 附录 E. 版本说明 | 下一页

# E.206. 版本 7.4.13

> 发布日期: 2006-05-23

这个版本包含各种自7.4.12以来的修复，包括非常严重的安全问题的补丁。 关于7.4主版本的新特性的信息，请查阅第 E.219 节。

## E.206.1. 迁移到版本 7.4.13

运行7.4.X的用户不需要转储/恢复。不过，如果你是从一个早于7.4.11的版本升级而来， 请查看第 E.208 节。

针对CVE-2006-2313和CVE-2006-2314中描述的SQL注入攻击的完全安全可能需要在应用代码中改变。 如果你的应用嵌入了不能信赖的字符串到SQL命令中，你应该尽快检查他们， 以确保他们使用推荐的转义技术。在大多数情况下，应用应该使用库或驱动提供的子程序 （如libpq的`PQescapeStringConn()`）来执行字符串转义， 而不是依赖于ad hoc代码实现。

## E.206.2. 修改列表

- 改变服务器以在任何情况下都拒绝无效编码的多字节字符 (Tatsuo, Tom)

  PostgreSQL已经朝这个方向发展有一段时间了， 检查现在一致的应用于所有的编码和所有的文本输入中，并且现在总是错误而不仅仅是警告。 这个改变防卫了CVE-2006-2313中描述的SQL注入类型的攻击。

- 拒绝在字符串字面值中不安全的使用`\'`

  作为服务器端防卫CVE-2006-2314中描述的类型的SQL注入攻击， 该服务器现在在SQL字符串字面值中只接受`''`，不接受`\'` 作为ASCII单引号的表示。缺省的，`\'`只在`client_encoding` 设置为仅客户端的编码(SJIS, BIG5, GBK, GB18030, 或 UHC)时拒绝， 这是可能有SQL注入的情况。可用一个新的配置参数`backslash_quote` 在需要时调节这个行为。请注意，针对CVE-2006-2314的完全安全可能要求客户端侧的改变； `backslash_quote`的目的是在一定程度上使得不安全的客户端变得明显。

- 修改libpq的字符串转义例程， 知道编码注意事项和`standard_conforming_strings`

  这修复了使用libpq的应用针对CVE-2006-2313和CVE-2006-2314中描述的安全问题， 也预防了转换到SQL标准字符串文字语法的计划。使用多个PostgreSQL 连接并发的应用应该迁移到`PQescapeStringConn()`和 `PQescapeByteaConn()`，以确保每个数据库连接中使用的转义设置正确的动作了。 "手动"实现字符串转义的应用应该修改为依赖于库例程。

- 修复一些不正确的编码转换函数

  `win1251_to_iso`、`alt_to_iso`、 `euc_tw_to_big5`、`euc_tw_to_mic`、 `mic_to_euc_tw`在转换内容时都会损坏。

- 清理`\'`在字符串中剩余的使用 (Bruce, Jan)

- 修复有时会导致where OR条件索引扫描漏掉应该返回的行的bug

- 修复btree索引被截断情况下的WAL重放

- 为包含`|`的模式修复`SIMILAR TO` (Tom)

- 修复服务器正确的使用自定义DH SSL参数 (Michael Fuhr)

- 修复Intel Macs上的Bonjour (Ashley Clark)

- 修复各种小的内存泄露

上一页 | 起始页 | 下一页
版本 7.4.14 | 上一级 | 版本 7.4.12