程序使用 ORM 框架是不是基本就可以解决 SQL 注入了?

285 天前
 huahsiung

程序:web 程序

类型:PHP ,web 漏洞王(原因:写起来快,简单)

ORM 框架是使用的是 sql 预编译的。

然后是不是一般就不用过滤输入请求的 sql 参数了。直接把参数送入 ORM 中查询就行了。


不知道有没有没考虑到的。

一般来说,sql 预编译基本是 100%解决 sql 注入的。不知道有没有反面例子?

4141 次点击
所在节点    信息安全
17 条回复
0o0O0o0O0o
285 天前
反面例子搜 orm injection 就行
pocarisweat
285 天前
用不用 ORM 都可以避免 SQL 注入,预编译 API 也挺简单的
MrKrabs
285 天前
框架也会有 bug 嘛。。。
kkk9
285 天前
参数值类型强验证避免 80%,sql 预编译避免 19%,上个商业 waf 增加 0.99999999%😉
saveai
285 天前
@kkk9 有个开源的叫雷池咋样
https://github.com/chaitin/SafeLine
gam2046
285 天前
ORM 最后用的也是参数化查询,所以只要你不自己手拼 SQL ,用不用 ORM ,基本上都不存在注入的情况。
Rache1
285 天前
PHP 你用参数化也不麻烦啊,自己原因 SQL 拼接一把梭,那有啥办法,用了 ORM 也不能避免你拼接 SQL 一把梭啊
qq135449773
285 天前
你非要手动拼接 sql 不用参数化模板那套东西,换上帝也救不了你的 SQL 注入问题
pytth
285 天前
orm 解决的不是 sql 注入问题,更多的还是为了方便使用。
lyxxxh2
285 天前
可以这么说,orm 让那些人写不出漏洞
除非是:wherRaw selectRaw... 那些 raw 原生。
oppoic
285 天前
上云基本就没有了 sql 注入,到不了 orm 这层就被拦截了
wOuv7i4e7XxsSOR1
285 天前
不管是不是 ORM ,只要使用 prepare 就没问题
layxy
285 天前
使用 orm 给你提供了很多便利,这些便利可以极大的避免你因疏忽造成的 sql 注入,一般 orm 框架也提供你手写 sql,这种情况下你拼接 sql 就有可能有 sql 注入风险,所以尽量使用 orm 框架提供的能力和推荐的做法
4ra1n
285 天前
例如 ORDER BY ? 是不能预编译的,当某些情况 SQL 复杂或者其他原因,必须手写 SQL 时,恰好遇到这种无法预编译的语句,就可以注入了
shuimugan
285 天前
8355
285 天前
orm 也看实现方案的,如果是用 pdo 参数绑定方案执行的是可以规避的,比如 laravel 和 thinkphp 的 orm 。
CCddf
271 天前
二次注入

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

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

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

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

© 2021 V2EX