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 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 16

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

5年前 评论

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

5年前 评论

laravel 果然用的人多呀。

5年前 评论

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

5年前 评论

可以可以

5年前 评论

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

5年前 评论
Fringe

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

5年前 评论
guanhui07

赞 ,laravel挺好用

5年前 评论

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

5年前 评论

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

5年前 评论

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

5年前 评论

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

5年前 评论
wonbin

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

5年前 评论

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

5年前 评论
wonbin

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

5年前 评论

果然中英双打看不明白了

4年前 评论

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

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!