mysql - laravel 5.1 有多安全?

标签 mysql security sql-injection laravel-5.1

<分区>

阅读 SQL 注入(inject)后,我想知道在 Laravel 中创建应用程序的安全性如何以及如何测试您的安全性是否符合当今的标准?

最佳答案

我开发了一些 Laravel 应用程序,发现它们在我看来非常安全。

我运行了各种渗透测试、OWASP ZAP 扫描器、sqlsus 和 5+ 工具,包括 bbqsql 和用于 DB 笔测试的类似东西,用于端口扫描的 nmap,然后将 ZAP 切换到攻击模式以执行各种 XSS 和 CSRF,但没有发现来自 Laravel 本身的漏洞 - 只是我修补了我的服务器本身的一些东西。

重要的是要说没有任何应用程序是 100% 安全的,因为这在很大程度上取决于您的操作方式。

但是,Laravel 开箱即用地保护你免受以下伤害,确实做得很好:

  • SQL 注入(inject):如果您使用 Eloquent 查询,这些将确保您的安全。但是,如果您使用 DB::raw() 查询,您将容易受到攻击,因为这些查询会使您容易受到注入(inject)。

  • CSRF:Laravel 使用 CSRF token 处理此问题,它会检查每个 POST 请求,因此请确保您使用它们,从本质上讲,这可以防止有人更改请求的性质,即从 POSTGET

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

这是对 Laravel 安全性的一个非常简短的概述。一旦您开始使用文件上传等打开自己的大门,它可能会有点棘手,另外还会在 PHP 中做不安全的事情。

这篇文章 here 可能是一篇有趣的读物,可以更深入地了解上面的内容。

简而言之,我发现 Laravel 通过使用 Eloquent 并在需要时清理输入,以及正确使用 blade 语法和 CSRF 来抵御我曾经运行过的所有攻击 token 。

关于mysql - laravel 5.1 有多安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33314601/

相关文章:

mysql - 多对多关系的SQL查询

security - 两方加密如何工作?

php - 在我的网络服务器上发现恶意 PHP 文件,需要帮助清理并防止这种情况再次发生

c# - 参数的安全性如何以及完全保护数据库的最佳方法是什么

php - 将变量从 AJAX 传递到 PHP 以进行 MySQL 查询时出错

mysql - PHP NGINX PHP-FPM,是否需要/可能进行 fork ?

mysql - 你能看出以下SQL注入(inject)防御方案中的漏洞吗?

php - 用正则表达式防止SQL注入(inject)?

mysql - MySQL 是否将 WHERE x >= 0 AND x <= 0 优化为 WHERE x = 0?

java - SecurityManager 是一个完整的安全解决方案吗?