【发布时间】:2019-08-14 22:53:33
【问题描述】:
ACIDRain attack paper by Todd Warszawski, Peter Bailis.
A high-level overview blogpost 在这篇论文上。
发现许多应用程序容易受到此攻击,例如。 WooCommerce,Opencart。
ACIDRain 攻击可能触发两种类型的异常,具体取决于所涉及的应用程序:
- 基于级别的隔离异常,这是由于隔离造成的竞争 数据库级别的设置,即数据库可能不支持 可串行化,或者可能没有被配置为这样做(这是 大多数已部署数据库的情况)。
- 范围隔离 异常,当应用程序程序员未能 使用事务正确封装逻辑。这使 影响不可能发生的行为的并发请求 按顺序排列。
听起来两者都可以通过对事务强制执行可序列化隔离级别来解决。这是正确的吗?
另外,一些数据库没有真正的 Serializable 隔离级别,例如 Oracle。可以做些什么来保护他们免受此类攻击?
【问题讨论】:
-
@APC 在 Oracle 中使用 Serializable 隔离可能会出现写入偏差。 Link
标签: mysql oracle postgresql serializable transaction-isolation