php - file_get_content 是否可以进行注入攻击?
问题描述
class TemplateController
{
public function get(string $template): string
{
return file_get_contents(_DIST . '/resources/templates/' . $template . '.html');
}
}
我使用 $_GET 或地址栏的直接参数从 SPA 应用程序导入模板。这会导致问题吗?
我在输入周围使用引号来运行推荐以访问无法访问的文件等。
解决方案
有人可以将值传递给$template
使用的变量../
或/
导航出您在参数中设置的目录。
从理论上讲,它们可以导航到更易受攻击的目录并访问您不希望它们访问的文件。我想说,最好的方法是验证包含../
or/
如果您知道文件名永远不会包含任何.
or字符的输入字符串,您可以对包含任何or字符/
的任何字符串抛出验证错误。.
/
最重要的是,遵循有关在生产服务器上设置用户和权限的最佳实践将有助于保护您。该线程提供了一些有用的帮助: 如何为 Laravel 设置文件权限?
除此之外,我想不出任何其他漏洞......还有其他人吗?
推荐阅读
- selenium - 如何使用 Geb 验证错误消息
- python - 对于嵌套列表和列表的循环操作
- c# - 使用第一个 Lambda 表达式的结果组合两个 Lambda 表达式
- c++ - 在大型应用程序的 main 上使用 try catch
- php - 使用 Laravel 在控制器中使用不同的功能更改变量数据
- android-espresso - 测试用例无法使用 espresso pressBackUnconditionally() 将应用程序带到后台
- java - 如何根据用户的猜测替换字符串中的特定字符
- javascript - 使用模式匹配生成 JavaScript 语言服务已被禁用
- javascript - 我们将如何维护在fabric js中添加到画布的对象列表
- java - Selenium:如何判断 RemoteWebDriver.findElements(By) 是否可以抛出 StaleElementReferenceException?