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。

本帖已被设为精华帖!
本帖由 Summer 于 1年前 取消置顶
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 16

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

1年前 评论

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

1年前 评论

laravel 果然用的人多呀。

1年前 评论

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

1年前 评论
hxd

可以可以

1年前 评论

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

1年前 评论
Fringe

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

1年前 评论
guanhui07

赞 ,laravel挺好用

1年前 评论

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

1年前 评论

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

1年前 评论

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

1年前 评论

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

1年前 评论
wonbin

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

1年前 评论

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

1年前 评论
wonbin

@Payne 嗯嗯 客气客气 , :+1: :+1:

1年前 评论

果然中英双打看不明白了

1年前 评论

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

1年前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!