后端表示参数拼接成 SQL 接收,真的服了,就不怕 SQL 注入吗
|  |      1jack778      2021-04-29 10:35:48 +08:00  1 复制黏贴,能跑就行 | 
|      2buffzty      2021-04-29 10:36:01 +08:00 2021 年了为啥还有程序员天天编程写 bug 啊? | 
|      3Mr0C OP 常见的安全问题都不 care 吗 | 
|      4jk1030      2021-04-29 10:42:37 +08:00  3 2B 的产品有时候 sql 拼接参数是 feature | 
|  |      5PDX      2021-04-29 10:43:45 +08:00 你去看看事业单位用的办公系统 | 
|  |      6statement      2021-04-29 10:45:46 +08:00 via iPhone 后端校验啊。 前端只有约定好格式就行。和前端有什么关系。 你只要约定好 前端 delete 。后端当 select 用也行啊 | 
|      7watcher      2021-04-29 10:48:29 +08:00 sql 作为描述语言,谁规定一定就是用来操作数据库的?用来操作搜索引擎不可以吗? | 
|      8panda666      2021-04-29 10:49:46 +08:00 sql 和前端有毛的关系 | 
|  |      9mengdodo      2021-04-29 10:56:17 +08:00 @panda666 还真有,那个前两年兴起的前端 sql 技术,后端只需要约定接口通往数据层的表模型,前端自己调 sql 读写,我忘记叫什么了。 我一直觉得不靠谱…… | 
|  |      10zjsxwc      2021-04-29 10:56:28 +08:00 我记得 老项目 CS 架构的 都是 直接客户端传 SQL, 服务端搞个 sql parser 就知道这条客户端提交的 sql 是否有权限。 | 
|  |      11no1xsyzy      2021-04-29 11:06:02 +08:00 https://data.stackexchange.com/ https://www.opendota.com/explorer 不怕注入吗? @mengdodo 这也不是前端,这是 API 。同样一个 HTTP API,另一个后端程序也可以调用。 前端是 UI 到 API 中间的东西(不管它的技术手段是啥) | 
|  |      12KouShuiYu      2021-04-29 11:15:08 +08:00 https://carto.com/ 这个公司为每个用户新建一个数据库 | 
|      13bthulu      2021-04-29 11:18:08 +08:00 怕什么注入, 法院重拳出击就行了 | 
|      14darknoll      2021-04-29 11:38:32 +08:00 这能怪前端??你后端干嘛吃的 | 
|  |      15yaphets666      2021-04-29 11:45:34 +08:00 现在有种东西叫 graphql,类似 | 
|  |      16opengps      2021-04-29 12:04:40 +08:00  2 能这么做的项目显然确实没啥用户量,甚至说是自己给自己用。对于注入这种事,小公司不遇到是不会去防的 | 
|      17Cbdy      2021-04-29 12:07:03 +08:00 via Android 老板:又不是不能用 | 
|  |      19ijrou      2021-04-29 12:36:28 +08:00 老板:能用为啥还这么讲究? | 
|      20mypchas6fans      2021-04-29 12:39:56 +08:00 告诉各位我曾经呆过的某公司,近两年做的一个模块,名曰 xxx risk analysis, 卖点是分析业务相关的指标和风险点,具体怎么做的呢? 业务人员默认准备了一堆 SQL,可以根据需要在页面上微调,然后发到后端执行,结果再存到特定表里,前端做成报表,给客户大佬看…… 实际上就是个 xxx sql analysis…… | 
|  |      21Trim21      2021-04-29 12:46:20 +08:00 via Android @yaphets666 grqphql 也有占位符和参数… | 
|  |      23unco020511      2021-04-29 16:00:37 +08:00 领导:又不是不能用 | 
|  |      243dwelcome      2021-04-29 16:20:08 +08:00 我以前也想过这问题,为什么前端写 SQL ?因为代码改起来方便,开发速度快啊。 当初的设想是,开发阶段前端写明文 SQL,发布阶段把 SQL 全部都用 hash 替代,然后后端校验 hash 有效性,再根据前端的 HASH,来还原明文 SQL 语句,并阻止未授权的 SQL 运行。 这样既保证了开发效率,又保证了安全性。 | 
|  |      25lagoon      2021-04-29 16:21:45 +08:00 http,直接明文传输各种数据,都见怪不怪了。 | 
|  |      27KyonLi      2021-04-29 21:01:07 +08:00 via iPhone 对对对,就是前端求着后端自己来写 sql 的 | 
|  |      293dwelcome      2021-04-29 23:29:45 +08:00 @evilStart 不需要还原,后端的 hash 白名单而已。开发明文阶段,后端每条语句都有缓存明文和对应 hash 值的。 生产环境只是简单查个表。 | 
|      30chanchan      2021-04-30 04:29:02 +08:00 这不是我上家吗 哈哈 | 
|  |      31codingKingKong      2021-04-30 09:58:05 +08:00 看使用范围, 如果是内部应用, 所有人拥有所有表操作权限, 或者就是个面馆管理系统, 恰好老板会点 sql, 也不是不行 要是还需要控制权限呢, 就考虑查之前做一下鉴权 要是还需要审计呢, 就考虑一下再加上 log 要是还需要公开使用呢...考虑一下再加上敏感字段加密, sql 防注入...不过公网公开的这种接口, 我还没遇到也就是了 | 
|  |      32passerbytiny      2021-04-30 10:01:10 +08:00 via Android @3dwelcome 用名单管理 sql,我敢保证想出这点子的人不是干活——包括但不限于编码、测试、评审——的。玩呢,这干活时间那不是翻倍,是翻几番。 | 
|  |      33passerbytiny      2021-04-30 10:04:40 +08:00 via Android 为啥还有公司前端使用 SQL 拼接参数?简单来说,懒。深入一点可能是:甲方,或者更可能是乙方老板,压根就没打算做能用的东西。 | 
|      34lajunnow888      2021-04-30 14:24:41 +08:00 一句话,又不是不能用 | 
|      36ZhaoHuiLiu      2021-05-01 01:10:08 +08:00 都是拿钱做事,安全这东西,得负责人懂程序,不然大家都是玩玩。。。 |