PostgreSQL有一个查询特定模式的选项。
将search_path设为TO SCHEMA_NAME
它会导致任何文物吗?
使用它有多安全?
答案 0 :(得分:3)
更改search_path
更改哪些表没有架构资格认证。
如果您有SECURITY DEFINER
函数,则用户可以通过在运行之前更改search_path
来欺骗它来影响其他表。只有在忽略PostgreSQL文档的建议时,才能在函数选项中始终使用SET search_path
。
同样,如果用户可以注入set search_path
,则可能会欺骗webapp来影响不同的表。但如果他们可以注入,他们可以直接注入恶意SQL。
主要问题是SECURITY DEFINER
功能,可以通过遵循手册的建议轻松解决。