在了解了SQL注入之后,我想知道在Laravel中创建应用程序的安全性如何,并且如何测试您的安全性是否符合当今标准?
在了解了SQL注入之后,我想知道在Laravel中创建应用程序的安全性如何,并且如何测试您的安全性是否符合当今标准?
我开发了一些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免受我所运行的所有攻击的侵害。