文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
11.10 文件管理
文件管理功能本身就是一个高危功能,可以直接对服务器中的文件进行操作,包括上传、下载、修改、删除,如果权限管理不当,可能导致被黑客直接利用该功能写入 webshell,实际上目前大多数上传 webshell 的方式确实是利用了文件操作功能,dedecms 后台的文件管理就是非常典型的一个例子,如图 11-21 所示。
图 11-21
一个文件管理功能为了保证安全,在满足业务需求的情况下,设计的时候应该遵循以下几个点:
1)禁止写入脚本可在服务器端执行的文件
。比如服务器能解析 PHP,那么在设计文件管理这个功能的时候,就需要限制不能操作 PHP 扩展名的文件和 PHP 标签的代码。为什么说连代码标签也要限制?因为前端页面的都套用了 HTML 模板,大多是直接包含了 HTML 文件,如果我们直接在模板文件中插入 PHP 代码,最终也能执行。
2)限制文件管理功能操作的目录
。通常需要被管理的文件只有模板文件以及图片文件,所以我们可以在文件管理功能上限制只能操作这两个目录,目录不能从客户端提交,直接在代码中设置好即可,如果实在需要进行目录跳转的话,一定要禁止提交../以及\..,避免越权操作其他目录。
3)限制文件管理功能访问权限
。之前我们已经说到文件管理功能本身就是一个非常敏感的功能,虽然是一个正常的功能,但是已经有一点后门的性质,所以对于这个功能的访问权限一定要进行严格的控制。
4)禁止上传特殊字符文件名的文件
。大多数应用都会对上传的文件进行展示,特别是对外开发的网盘类应用,这时候就要注意对上传的文件名进行检查,禁止文件名中有尖括号、单双引号等特殊字符,避免攻击者用文件名来进行 XSS 攻击。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论