postgresql SET search_path TO SCHEMA_NAME是安全的吗?

时间:2015-08-31 08:11:38

标签: postgresql

PostgreSQL有一个查询特定模式的选项。

  

将search_path设为TO SCHEMA_NAME

它会导致任何文物吗?

使用它有多安全?

1 个答案:

答案 0 :(得分:3)

更改search_path更改哪些表没有架构资格认证。

如果您有SECURITY DEFINER函数,则用户可以通过在运行之前更改search_path来欺骗它来影响其他表。只有在忽略PostgreSQL文档的建议时,才能在函数选项中始终使用SET search_path

同样,如果用户可以注入set search_path,则可能会欺骗webapp来影响不同的表。但如果他们可以注入,他们可以直接注入恶意SQL。

主要问题是SECURITY DEFINER功能,可以通过遵循手册的建议轻松解决。