Laravel 5.1有多安全?

7

在了解了SQL注入之后,我想知道在Laravel中创建应用程序的安全性如何,并且如何测试您的安全性是否符合当今标准?

1个回答

23

我开发了一些Laravel应用程序,发现它们在我的眼中相当安全。

我运行了各种渗透测试、OWASP ZAP扫描器、sqlsus和5个以上的工具,包括bbqsql等用于数据库渗透测试,nmap用于端口扫描,然后将ZAP切换到攻击模式以执行各种XSS和CSRF攻击,并没有发现来自Laravel本身的漏洞——只有一些来自我的服务器本身的问题,我已经修补了这些问题。

需要指出的是,没有应用程序是100%安全的,这在很大程度上取决于您的做事方式。

但是,Laravel通过以下方式在出厂时提供了相当不错的保护:

  • SQL注入:如果您使用Eloquent查询,则可以保持安全。但是,如果您使用DB :: raw()查询,则会使您容易受到注入攻击。

  • CSRF:Laravel通过CSRF令牌来处理这个问题,在每个 POST 请求上检查它们,因此请确保使用它们,这基本上可以保护您免受某人更改请求性质的影响,即从 POST 转换为 GET

  • XSS:首先对用户输入进行消毒。使用blade语法{!! !!} 不会转义变量,它在HTML代码中解析为<?= e($foo)?>,而{{ }}则会转义数据。

这是关于Laravel安全性的一个相当简短的概述。一旦您开始开放文件上传等内容,情况就会变得有点棘手,此外,在PHP中执行不安全的操作也可能会导致问题。

本文在这里,可能会是更深入了解以上内容的有趣阅读。

简言之,我发现通过使用Eloquent并在必要时消毒输入,以及正确使用blade语法和 CSRF 令牌,可以使Laravel免受我所运行的所有攻击的侵害。


你能详细说明一下“只是从……中修补了一些东西”吗? - davejal
这些问题与我的Apache安装和服务器配置有关。我通过更新Apache和更改一些服务器设置来解决它们。虽然它们是小问题,但仍然很难被利用,但谨慎起见还是要做好安全措施。 - James
你对{!! !!}这个东西确定吗? - jartaud
1
@jartaud - 是的。https://laravel.com/docs/5.1/blade#displaying-data - James
1
{"<b>Hello</b>"} = <b>Hello</b> {!!"<b>Hello</b>"!!} = Hello(加粗) - jartaud
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接