李博侠 2021-03-17 10:42 采纳率: 25%
浏览 35

请教一个oracle查询的问题

        我是做前端运维,后端的程序因为没有代码改不动,现在有一个场景,前端会给后端传递一个变量,用来执行一段sql查询,后端的sql是类似:select column1, column2 ...... from tab where columnx = 'condition';的这样一个查询,condition就是我从前端要传给后端的一个变量。

 

        这个程序之前的设计思路只限于查询单个条件,前端只能给后端传递唯一的condition才能正确执行。但目前有个需求,需要前端给后端传递多个条件,并返回多个结果,在没有条件改后端程序的情况下,能否有变通的方法?

 

        另外需要说明的是,这是一个erp软件的流程提交过程,我是要指定流程传递的参数,所以不具备写for循环的条件;另外,之前我也尝试过利用sql注入的方式处理,即传递condition时带上sql语句,但跟踪发现后台程序发现有sql注入后会将前台传递的condition抛弃,所以也不行;再后来我还想过利用any函数,即传递一个any('condition1','condition2','condition3')这样的一个值过去,但是这样的参数传递方法,后台虽然不会被抛弃,但是因为后台的代码中condition是在引号里的,any函数被解析成了文本,所以也不行。

 

        我现在是绞尽脑汁也没有好的办法了,哪位大神有方法,在不改变后端代码的前提下实现我的需求,小弟在此拜谢了。

 

        另外,数据库环境是oracle 11g。

  • 写回答

4条回答 默认 最新

  • 规则边缘 2021-03-17 10:50
    关注

    既然SQL注入的方式不行,后台又不能改动。

    那就试试前端并发多个请求,每个请求带不同的condition,全查回来后在前端合并。

     

    评论

报告相同问题?

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程