• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Mr0C
V2EX  ›  程序员

2021 年为啥还有公司前端使用 SQL 拼接参数

  •  
  •   Mr0C · Apr 29, 2021 · 8061 views
    This topic created in 2015 days ago, the information mentioned may be changed or developed.

    后端表示参数拼接成 SQL 接收,真的服了,就不怕 SQL 注入吗

    36 replies  •  2021-05-01 01:10:08 +08:00
    jack778
    jack778
    Apr 29, 2021❤️1
    1
    复制黏贴,能跑就行
    buffzty
    buffzty
    Apr 29, 2021
    2
    2021 年了为啥还有程序员天天编程写 bug 啊?
    Mr0C
    Mr0C
    OP
    Apr 29, 2021
    3
    常见的安全问题都不 care 吗
    jk1030
    jk1030
    Apr 29, 2021❤️3
    4
    2B 的产品有时候 sql 拼接参数是 feature
    PDX
    PDX
    Apr 29, 2021
    5
    你去看看事业单位用的办公系统
    statement
    statement
    Apr 29, 2021 via iPhone
    6
    后端校验啊。 前端只有约定好格式就行。和前端有什么关系。 你只要约定好 前端 delete 。后端当 select 用也行啊
    watcher
    watcher
    Apr 29, 2021
    7
    sql 作为描述语言,谁规定一定就是用来操作数据库的?用来操作搜索引擎不可以吗?
    panda666
    panda666
    Apr 29, 2021
    8
    sql 和前端有毛的关系
    mengdodo
    mengdodo
    Apr 29, 2021
    9
    @panda666 还真有,那个前两年兴起的前端 sql 技术,后端只需要约定接口通往数据层的表模型,前端自己调 sql 读写,我忘记叫什么了。 我一直觉得不靠谱……
    zjsxwc
    zjsxwc
    Apr 29, 2021
    10
    我记得 老项目 CS 架构的 都是 直接客户端传 SQL,
    服务端搞个 sql parser 就知道这条客户端提交的 sql 是否有权限。
    no1xsyzy
    no1xsyzy
    Apr 29, 2021
    11
    https://data.stackexchange.com/
    https://www.opendota.com/explorer
    不怕注入吗?

    @mengdodo 这也不是前端,这是 API 。同样一个 HTTP API,另一个后端程序也可以调用。
    前端是 UI 到 API 中间的东西(不管它的技术手段是啥)
    KouShuiYu
    KouShuiYu
    Apr 29, 2021
    12
    https://carto.com/
    这个公司为每个用户新建一个数据库
    bthulu
    bthulu
    Apr 29, 2021
    13
    怕什么注入, 法院重拳出击就行了
    darknoll
    darknoll
    Apr 29, 2021
    14
    这能怪前端??你后端干嘛吃的
    yaphets666
    yaphets666
    Apr 29, 2021
    15
    现在有种东西叫 graphql,类似
    opengps
    opengps
    Apr 29, 2021❤️2
    16
    能这么做的项目显然确实没啥用户量,甚至说是自己给自己用。对于注入这种事,小公司不遇到是不会去防的
    Cbdy
    Cbdy
    Apr 29, 2021 via Android
    17
    老板:又不是不能用
    phobal
    phobal
    Apr 29, 2021 via iPhone
    18
    @mengdodo 你是想说 graphQL 么,这个可跟直接拼 SQL 不一样哦
    ijrou
    ijrou
    Apr 29, 2021
    19
    老板:能用为啥还这么讲究?
    mypchas6fans
    mypchas6fans
    Apr 29, 2021
    20
    告诉各位我曾经呆过的某公司,近两年做的一个模块,名曰 xxx risk analysis,
    卖点是分析业务相关的指标和风险点,具体怎么做的呢?
    业务人员默认准备了一堆 SQL,可以根据需要在页面上微调,然后发到后端执行,结果再存到特定表里,前端做成报表,给客户大佬看……

    实际上就是个 xxx sql analysis……
    Trim21
    Trim21
    Apr 29, 2021 via Android
    21
    @yaphets666 grqphql 也有占位符和参数…
    Mac
    Mac
    Apr 29, 2021
    22
    @PDX #5 人家跑局域网的
    unco020511
    unco020511
    Apr 29, 2021
    23
    领导:又不是不能用
    3dwelcome
    3dwelcome
    Apr 29, 2021
    24
    我以前也想过这问题,为什么前端写 SQL ?因为代码改起来方便,开发速度快啊。

    当初的设想是,开发阶段前端写明文 SQL,发布阶段把 SQL 全部都用 hash 替代,然后后端校验 hash 有效性,再根据前端的 HASH,来还原明文 SQL 语句,并阻止未授权的 SQL 运行。

    这样既保证了开发效率,又保证了安全性。
    lagoon
    lagoon
    Apr 29, 2021
    25
    http,直接明文传输各种数据,都见怪不怪了。
    djs
    djs
    Apr 29, 2021
    26
    @mengdodo #9 graphql 吧,那个跟这不是一回事呀
    KyonLi
    KyonLi
    Apr 29, 2021 via iPhone
    27
    对对对,就是前端求着后端自己来写 sql 的
    evilStart
    evilStart
    Apr 29, 2021 via Android
    28
    @3dwelcome hash 之后还咋还原??
    3dwelcome
    3dwelcome
    Apr 29, 2021
    29
    @evilStart 不需要还原,后端的 hash 白名单而已。开发明文阶段,后端每条语句都有缓存明文和对应 hash 值的。
    生产环境只是简单查个表。
    chanchan
    chanchan
    Apr 30, 2021
    30
    这不是我上家吗 哈哈
    codingKingKong
    codingKingKong
    Apr 30, 2021
    31
    看使用范围, 如果是内部应用, 所有人拥有所有表操作权限, 或者就是个面馆管理系统, 恰好老板会点 sql, 也不是不行
    要是还需要控制权限呢, 就考虑查之前做一下鉴权
    要是还需要审计呢, 就考虑一下再加上 log
    要是还需要公开使用呢...考虑一下再加上敏感字段加密, sql 防注入...不过公网公开的这种接口, 我还没遇到也就是了
    passerbytiny
    passerbytiny
    Apr 30, 2021 via Android
    32
    @3dwelcome 用名单管理 sql,我敢保证想出这点子的人不是干活——包括但不限于编码、测试、评审——的。玩呢,这干活时间那不是翻倍,是翻几番。
    passerbytiny
    passerbytiny
    Apr 30, 2021 via Android
    33
    为啥还有公司前端使用 SQL 拼接参数?简单来说,懒。深入一点可能是:甲方,或者更可能是乙方老板,压根就没打算做能用的东西。
    lajunnow888
    lajunnow888
    Apr 30, 2021
    34
    一句话,又不是不能用
    slgz
    slgz
    Apr 30, 2021
    35
    @mengdodo #9 你说的应该是 graphql 这个吧
    ZhaoHuiLiu
    ZhaoHuiLiu
    May 1, 2021
    36
    都是拿钱做事,安全这东西,得负责人懂程序,不然大家都是玩玩。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2911 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 12:28 · PVG 20:28 · LAX 04:28 · JFK 07:28
    ♥ Do have faith in what you're doing.