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

2021-04-29 10:34:12 +08:00
 Mr0C

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

6403 次点击
所在节点    程序员
36 条回复
Trim21
2021-04-29 12:46:20 +08:00
@yaphets666 grqphql 也有占位符和参数…
Mac
2021-04-29 12:47:32 +08:00
@PDX #5 人家跑局域网的
unco020511
2021-04-29 16:00:37 +08:00
领导:又不是不能用
3dwelcome
2021-04-29 16:20:08 +08:00
我以前也想过这问题,为什么前端写 SQL ?因为代码改起来方便,开发速度快啊。

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

这样既保证了开发效率,又保证了安全性。
lagoon
2021-04-29 16:21:45 +08:00
http,直接明文传输各种数据,都见怪不怪了。
djs
2021-04-29 17:14:29 +08:00
@mengdodo #9 graphql 吧,那个跟这不是一回事呀
KyonLi
2021-04-29 21:01:07 +08:00
对对对,就是前端求着后端自己来写 sql 的
evilStart
2021-04-29 22:54:13 +08:00
@3dwelcome hash 之后还咋还原??
3dwelcome
2021-04-29 23:29:45 +08:00
@evilStart 不需要还原,后端的 hash 白名单而已。开发明文阶段,后端每条语句都有缓存明文和对应 hash 值的。
生产环境只是简单查个表。
chanchan
2021-04-30 04:29:02 +08:00
这不是我上家吗 哈哈
codingKingKong
2021-04-30 09:58:05 +08:00
看使用范围, 如果是内部应用, 所有人拥有所有表操作权限, 或者就是个面馆管理系统, 恰好老板会点 sql, 也不是不行
要是还需要控制权限呢, 就考虑查之前做一下鉴权
要是还需要审计呢, 就考虑一下再加上 log
要是还需要公开使用呢...考虑一下再加上敏感字段加密, sql 防注入...不过公网公开的这种接口, 我还没遇到也就是了
passerbytiny
2021-04-30 10:01:10 +08:00
@3dwelcome 用名单管理 sql,我敢保证想出这点子的人不是干活——包括但不限于编码、测试、评审——的。玩呢,这干活时间那不是翻倍,是翻几番。
passerbytiny
2021-04-30 10:04:40 +08:00
为啥还有公司前端使用 SQL 拼接参数?简单来说,懒。深入一点可能是:甲方,或者更可能是乙方老板,压根就没打算做能用的东西。
lajunnow888
2021-04-30 14:24:41 +08:00
一句话,又不是不能用
slgz
2021-04-30 16:41:24 +08:00
@mengdodo #9 你说的应该是 graphql 这个吧
ZhaoHuiLiu
2021-05-01 01:10:08 +08:00
都是拿钱做事,安全这东西,得负责人懂程序,不然大家都是玩玩。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/774017

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX