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。
推荐文章: