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

# E.180. 版本 8.0.8

> 发布日期: 2006-05-23

这个版本包含各种自8.0.7以来的修复，包括对极其严重安全问题的修复。 关于8.0主版本的新特性信息，请参阅第 E.188 节。

## E.180.1. 迁移到版本 8.0.8

运行8.0.X的用户不需要转储/恢复。不过，如果你是从一个早于8.0.6的版本升级而来， 那么请参阅第 E.182 节。

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

## E.180.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)

- 修复导致OR'd索引扫描有时丢失它们应该返回的行的bug

- 修复btree索引已经被截断时的WAL重放

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

- 修复`SELECT INTO`和`CREATE TABLE AS`， 以在缺省表空间中创建表，而不是在基本目录中 (Kris Jurka)

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

- 字符Intel Macs中的Bonjour (Ashley Clark)

- 修复各种小的内存泄露

- 修复在一些Win32系统上的口令提示问题 (Robert Kinberg)

上一页 | 起始页 | 下一页
版本 8.0.9 | 上一级 | 版本 8.0.7