Laravel 5.8 被曝安全漏洞(已修复)

转载自 Facebook 传送门

https://blog.laravel.com/unique-rule-sql-i...
https://github.com/laravel/framework/pull/...

简单来讲在台湾时间 2019/03/20 时 laravel 5.8 被安全测试人员报告说有安全漏洞,这个漏洞已经在最新的 commit 修正了。

reddit 战成一团,不过战错地方了,详情可以参考上面那个 pr 连接,taylorotwell 有亲自说明成因。

我下面会详细说明有错请指正:

这个漏洞的成因来自于:

https://learnku.com/docs/laravel/5.8/validation#ru...

乍看之下没啥问题,问题是出在于你想要自定义他的时候。

Rule::unique('users'->ignore$request->input'id'))

乍看之下也没啥问题,pdo binding value 会 escape。但请注意看文件说明:他可以自定义 table column ignore

laravel 会藉由,去区分 table column ignore,而 pdo 并不会去 escape column,所以你可以在 request 做 sql injection,比如像是 * from users;insert XXXX,3

laravel 会因为看到,以为你有自定义 column 把它放到 column 那边,这样就可以达到 sql injection。

本帖已被设为精华帖!
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 16

代码千万行,安全第一条,使用不规范,同事两行泪。

6年前 评论

兄弟 很神奇的一件事情 我看作者英文的描述看明白了 而你的翻译描述看的我 一脸懵逼 这种中英文混合双打 真的可怕!

6年前 评论

laravel 果然用的人多呀。

6年前 评论

前几天 Taylor 就发 Blog 来着,本来还想转到 Laravel-China 结果被抢先了呀,哈哈

6年前 评论

可以可以

6年前 评论

代码千万行,安全第一条,使用不规范,同事两行泪。

6年前 评论
Fringe

:flushed:用的人越多便更完美

6年前 评论
guanhui07

赞,laravel 挺好用

6年前 评论

很好奇什么样的情景会用到 ignore 用户输入的 ID

6年前 评论

@ddingchen 这样的场景很常见呀,应该是在编辑数据的时候,判断某个字段 unique 要忽略当前 id

6年前 评论

兄弟 很神奇的一件事情 我看作者英文的描述看明白了 而你的翻译描述看的我 一脸懵逼 这种中英文混合双打 真的可怕!

6年前 评论

@alalala 台湾人写的,搬过来繁简转换了一下,我也看了两遍才看懂。

6年前 评论
wonbin

感觉这篇文章翻译的不咋地 :joy:

6年前 评论

@wonbin 抱歉哈,因为原文表述有点绕,不知道自己理解的对不对,不敢乱改原文,所以简单繁简转换一下就搬过来了,最准确的描述是看最上面两篇英文,毕竟这篇文章也只是作者对这个漏洞的个人理解。

6年前 评论
wonbin

@Payne 嗯嗯 客气客气 , :thumbsup: :thumbsup:

6年前 评论

果然中英双打看不明白了

6年前 评论

我也想知道什麼樣的情況下會使用到~~~~

6年前 评论