【问题标题】:Is injection attack possible with file_get_content?file_get_content 是否可以进行注入攻击?
【发布时间】:2019-12-21 18:31:00
【问题描述】:
class TemplateController
{
    public function get(string $template): string
    {
        return file_get_contents(_DIST . '/resources/templates/' . $template . '.html');
    }
}

我使用 $_GET 或地址栏的直接参数从 SPA 应用程序导入模板。这会导致问题吗?

我在输入周围使用引号来运行命令以访问不可访问的文件等。

【问题讨论】:

    标签: php laravel file-get-contents code-injection


    【解决方案1】:

    可能有人将值传递给使用..//$template 变量以导航出您在参数中设置的目录。

    理论上,它们可以导航到更易受攻击的目录并访问您不希望它们访问的文件。 我会说,防止这种情况发生的最佳方法是验证包含..// 的输入字符串 如果您知道文件名中永远不会包含任何 ./ 字符,则可以对包含任何 ./ 字符的任何字符串抛出验证错误。

    最重要的是,遵循有关在生产服务器上设置用户和权限的最佳做法将有助于保护您。 该线程在那里提供了一些有用的帮助: How to set up file permissions for Laravel?

    除此之外,我想不出任何其他漏洞......还有其他人吗?

    【讨论】:

    • 更新了答案,其中包含一些有关服务器文件权限最佳实践的有用信息。非常值得确定你也做对了。
    猜你喜欢
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多