FastDFS安全注意事项

Stella981
• 阅读 882

    对于互联网应用,FastDFS的标准使用姿势:通过FastDFS API进行文件上传等更新操作,storage server上通过FastDFS nginx扩展模块使用HTTP方式下载文件。FastDFS的文件名由storage server通过算法生成,生成的文件名中包含时间戳、文件大小、文件内容CRC32校验码、随机数等,因此FastDFS生成的文件名是完全离散的,客户端无法野蛮遍历或穷举。由此可见,storage server上部署的HTTP服务完全可以直接暴露到公网,提供给客户端浏览器访问。

    安全起见,强烈建议FastDFS集群部署在内网,不要对外暴露tracker(22122端口) 和 storage(23000端口)服务。在跨机房访问等场景下,需要暴露FastDFS集群到公网,请做好安全设置和防护。首先推荐采用防火墙,对22122和23000端口访问采用白名单。其次可以使用FastDFS内置基于IP地址的白名单,在tracker.conf 和 storage.conf中配置allow_hosts。

    allow_hosts 配置格式说明如下:

     1. allow_hosts 可以在配置文件中出现多次,通常设置允许访问的IP地址,也可以设置主机名(域名)。每行allow_hosts设置的IP地址或主机都会被纳入白名单;

     2. * (必须是单独的一个星号)表示允许所有来源IP,例如:

       allow_hosts = *

     3. 可以使用CIDR格式的IP段,比如:192.168.5.64/26;

    4. 支持用方括号括起来的范围设置,一个配置项中只能出现一次范围设置,例如:10.0.1.[0-254] 或者 host[01-08,20-25].domain.com。

摘录tracker.conf (或 storage.conf)中的一段配置示例如下:

allow_hosts = 10.0.1.[1-15,20]

allow_hosts = host[01-08,20-25].domain.com

allow_hosts = 192.168.5.64/26

    FastDFS出于简洁和高效考虑,没有存储文件索引等元数据,也不会对文件提供权限设置和访问控制等功能,相关功能需要应用(调用方)自己实现。

本文分享自微信公众号 - FastDFS分享与交流(fastdfs100)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
FastDFS使用中的几个常见问题
1\.FastDFS适用的场景以及不适用的场景  FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储图片、音频、视频、文档等文件。对于互联网应用,简洁高效的FastDFS和其他分布式文件系统相比,优势非常明显。具体情况大家可以查阅相关介绍文档,如:FastDFS架构设计文档等等。  出于简洁考虑,FastDFS没
Stella981 Stella981
2年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Easter79 Easter79
2年前
SpringBoot2.0集成FastDFS
SpringBoot2.0集成FastDFS前两篇整体上介绍了通过Nginx和FastDFS的整合来实现文件服务器。但是,在实际开发中对图片或文件的操作都是通过应用程序来完成的,因此,本篇将介绍SpringBoot整合FastDFS客户端来实现对图片/文件服务器的访问。如果有
Stella981 Stella981
2年前
SpringBoot2.0集成FastDFS
SpringBoot2.0集成FastDFS前两篇整体上介绍了通过Nginx和FastDFS的整合来实现文件服务器。但是,在实际开发中对图片或文件的操作都是通过应用程序来完成的,因此,本篇将介绍SpringBoot整合FastDFS客户端来实现对图片/文件服务器的访问。如果有
Stella981 Stella981
2年前
FastDFS
1.FastDFS是什么?FastDFS是分布式文件系统。使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。2.工作原理FastDFS架构包括Trackerserver和Storageserver。客户端请求Trackerserver进行文件上传、下载,通过Trackerser
Stella981 Stella981
2年前
FastDFS加Redis实现自定义文件名存储海量文件
FastDFS(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fcode.google.com%2Fp%2Ffastdfs%2F)非常适合存储大量的小文件,遗憾的是本身不支持自定义文件名,文件名是存储成功以后根据存储位置生成的一个file\_id。很多应用场景不得不使用自定义文件名,在不
京东云开发者 京东云开发者
7个月前
分布式系统的主键生成方案对比 | 京东云技术团队
UUID​UUID(通用唯一识别码)是由32个十六进制数组成的无序字符串,通过一定的算法计算出来。为了保证其唯一性,UUID规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法。