php - Processmaker 3.* 路径遍历问题
问题描述
我将 Processmaker 3.1.3 运行到 RHEL-7 服务器中。但是最近我发现服务器容易受到路径遍历攻击。整个应用程序是通过文件运行App.php
进入$App_Dir/workflow/public_html
目录处理url重定向等操作。目前,我正在使用这段代码来防止App.php
位于$App_Dir/workflow/public_html
.
<?php
$url = $_SERVER['REQUEST_URI'];
$key = "../";
if (strpos($url, $key) == true) {
die("Forbiden");
}
?>
但我认为这不是一个完美的解决方案。应用程序可能随时卡住。有什么建议/解决方案吗?
TIA
解决方案
这还不够,因为 URL 可以以多种格式编码为“../”。您需要强制执行输入验证以解决您的问题。
- 您应该使用将与实际路径 ( https://www.php.net/manual/en/function.realpath.php ) 一起使用的函数来获取文件的路径。
- 之后,您应该根据您的业务规则验证结果路径。允许的路径列表应该以白名单方法(您应该列出所需的所有目录)而不是黑名单方法(您在代码中显示的方法)完成。
推荐阅读
- python - 如何使用 Scrapy 定位数据属性
- xml - 转换器是否可以忽略 XML 标记错误?
- mongodb - MongoDb 使用 ref 查询其他集合
- html - 该部分的背景图像到特定高度
- selenium-webdriver - IE11 Save As Popup 处理问题 WebDriver/Autoit/Robot
- python-3.x - 将无限列表解析为一个列表
- php - 缺少作者;谷歌网站管理员工具中缺少更新
- c# - 从属性中获取属性的名称
- c# - DataGridViewComboBoxColumn 中的选定项目始终检索第一个值
- android - Uri 和 WebView 类以不同方式解析包含权限(主机或用户信息)中的反斜杠的 URL