首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用存储在表中的WHERE子句?

使用存储在表中的WHERE子句?
EN

Security用户
提问于 2019-10-08 22:34:42
回答 1查看 217关注 0票数 1

背景:

我有一个订单管理系统

  • WMS具有允许用户使用保存查询的功能。
  • 查询保存在一个名为QUERY的数据库表中(在CLAUSE列中)。

CLAUSE列中的值示例如下:

((woclass = 'WORKORDER' or woclass = 'ACTIVITY') and contains(description,'$paint') > 0 and historyflag = 0 and istask = 0 and siteid = 'SERVICES')

场景:

我正在学习如何正确地将WMS系统与一个单独的GIS系统集成(这两个系统都是基于broswer/Oracle/内部系统的)。

我想利用保存的WMS查询,将它们集成到GIS系统的web地图中。我将编写一个GIS小部件(JavaScript),允许用户从QUERY表中选择和执行查询。

  • 从下拉菜单中,从QUERY表中选择WHERE子句名,从CLAUSE列中提取值,并在自定义的过滤工具中使用它(以查询GIS )。

问题:

上面提到的GIS小部件是否容易被注入?如果是的话,我能做些什么来保证它的安全?

我是IT行业的新手,我正在努力学习如何在系统之间安全地集成/共享查询。外行的条件将不胜感激。

EN

回答 1

Security用户

发布于 2019-10-09 01:46:16

不,您的系统不需要有注入漏洞。

虽然您可以轻松地(并且不安全地)通过执行"eval“来实现这些子句,或者在没有验证的情况下将结果抛到WHERE中,但是正确地这样做是可能的。您将解析要验证它是否符合正确格式,然后构建一个现在受信任的查询。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/219293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档