返回介绍

11.10 文件管理

发布于 2024-10-11 22:07:48 字数 916 浏览 0 评论 0 收藏 0

文件管理功能本身就是一个高危功能,可以直接对服务器中的文件进行操作,包括上传、下载、修改、删除,如果权限管理不当,可能导致被黑客直接利用该功能写入 webshell,实际上目前大多数上传 webshell 的方式确实是利用了文件操作功能,dedecms 后台的文件管理就是非常典型的一个例子,如图 11-21 所示。

图 11-21

一个文件管理功能为了保证安全,在满足业务需求的情况下,设计的时候应该遵循以下几个点:

1)禁止写入脚本可在服务器端执行的文件

。比如服务器能解析 PHP,那么在设计文件管理这个功能的时候,就需要限制不能操作 PHP 扩展名的文件和 PHP 标签的代码。为什么说连代码标签也要限制?因为前端页面的都套用了 HTML 模板,大多是直接包含了 HTML 文件,如果我们直接在模板文件中插入 PHP 代码,最终也能执行。

2)限制文件管理功能操作的目录

。通常需要被管理的文件只有模板文件以及图片文件,所以我们可以在文件管理功能上限制只能操作这两个目录,目录不能从客户端提交,直接在代码中设置好即可,如果实在需要进行目录跳转的话,一定要禁止提交../以及\..,避免越权操作其他目录。

3)限制文件管理功能访问权限

。之前我们已经说到文件管理功能本身就是一个非常敏感的功能,虽然是一个正常的功能,但是已经有一点后门的性质,所以对于这个功能的访问权限一定要进行严格的控制。

4)禁止上传特殊字符文件名的文件

。大多数应用都会对上传的文件进行展示,特别是对外开发的网盘类应用,这时候就要注意对上传的文件名进行检查,禁止文件名中有尖括号、单双引号等特殊字符,避免攻击者用文件名来进行 XSS 攻击。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文