file_get_content 是否可以进行注入攻击?
Is injection attack possible with file_get_content?
class TemplateController
{
public function get(string $template): string
{
return file_get_contents(_DIST . '/resources/templates/' . $template . '.html');
}
}
我使用 $_GET 或地址栏的直接参数从 SPA 应用程序导入模板。这会导致问题吗?
我在 运行 commend 的输入周围使用引号来访问无法访问的文件等
有人可能会向 $template
变量传递一个值,该变量使用 ../
或 /
导航出您在参数中设置的目录。
理论上,他们可以导航到更易受攻击的目录并访问您不希望他们访问的文件。
我想说,防止这种情况发生的最佳方法是针对包含 ../
或 /
的输入字符串进行验证
如果您知道文件名中永远不会包含任何 .
或 /
字符,您可以对包含任何 .
或 /
字符的任何字符串抛出验证错误。
最重要的是,遵循有关在生产服务器上设置用户和权限的最佳做法将有助于保护您。
该线程在那里提供了一些有用的帮助:
除此之外我想不出任何其他漏洞...还有其他人吗?
class TemplateController
{
public function get(string $template): string
{
return file_get_contents(_DIST . '/resources/templates/' . $template . '.html');
}
}
我使用 $_GET 或地址栏的直接参数从 SPA 应用程序导入模板。这会导致问题吗?
我在 运行 commend 的输入周围使用引号来访问无法访问的文件等
有人可能会向 $template
变量传递一个值,该变量使用 ../
或 /
导航出您在参数中设置的目录。
理论上,他们可以导航到更易受攻击的目录并访问您不希望他们访问的文件。
我想说,防止这种情况发生的最佳方法是针对包含 ../
或 /
的输入字符串进行验证
如果您知道文件名中永远不会包含任何 .
或 /
字符,您可以对包含任何 .
或 /
字符的任何字符串抛出验证错误。
最重要的是,遵循有关在生产服务器上设置用户和权限的最佳做法将有助于保护您。
该线程在那里提供了一些有用的帮助:
除此之外我想不出任何其他漏洞...还有其他人吗?