网站存储空间中的图片上传功能有什么作用吗?
优采云 发布时间: 2021-05-13 02:05网站存储空间中的图片上传功能有什么作用吗?
在Internet上共享时,肯定存在无法避免的操作,即“文件上传”。我们经常在微博,微信朋友圈等上发帖。文件上传中的图片上传功能在发送过程中使用。将本地图片,视频,音频和其他文件上载到程序服务器,以供其他用户浏览或下载。这导致网站每天都有大量数据流入,尽管海量数据带来了用户,但同时也带来了一些安全问题。
网站的开发人员经常在网站的存储空间中找到各种垃圾文件,例如xml,html,apk等。这些文件被注入广告中,或传播诸如*敏*感*词*视频之类的资源,这严重影响了业务运营。这些垃圾文件通过文件上传功能上传到网站存储空间。如果网站上载程序未检查或严格过滤用户提交的数据,则服务器可以轻松地上载修改后的数据。
文件上传是最容易被利用的数据安全性部分。为了减少恶意文件上传的中断,我们首先需要弄清其原理。
文件类型和文件扩展名的作用
计算机数据内容通常存储在硬盘等存储硬件上。由于硬盘本身的巨大空间(例如大型仓库),为了方便数据存储和管理,我们创建了文件的概念,即操作系统使用文件格式来封装存储在其中的一段数据。空间。
但是,随着Internet的发展,从纯文本文件的开始到当今图像,音频,视频等各种类型的多媒体文件,我们存储的文件越来越多,并且类型越来越丰富。 ,文件量越来越大,如果不区分这些文件,找到它们将非常麻烦。因此,文件格式(或文件类型)应运而生。每种类型的文件都可以一种或多种文件格式保存在计算机存储中。每种文件格式通常都有一个或多个可用于标识的扩展名,该扩展名可以帮助用户和应用程序标识文件格式。
例如,有一个名为README.txt的文件,.txt是此文件的扩展名,而txt适用于纯文本文件。这种类型的文件可能是说明文件,其内容为纯文本。
此外,扩展名还可以帮助操作系统确定如何读取文件。例如,文件score.doc,可以使用Word打开doc文件,然后Windows用户双击.doc文件后,Windows系统将根据文件扩展名“ doc”搜索自维护数据库表。并搜索“可以打开此扩展文件”程序(例如Word程序),然后系统将自动启动Word程序并通知Word加载文件。
从这里可以看出,当Windows系统打开文件时,只需要文件名中的扩展名即可找到相应的程序。因此,更改文件的扩展名也将更改系统中文件的默认打开方法。而且,如果文件本身的内容不符合程序对文件内容格式的期望,则在打开文件时会发生错误,或者会发生意外结果。
浏览器如何识别打开的文件
由于Internet工具功能的逐步改进,与在本地打开文件相比,使用浏览器打开文件的可能性逐渐增加。那么,浏览器如何确认所访问资源的文件类型?实际上,它是由响应头来判断的。
当用户输入URL时,资源所在的服务器将使用Content-Type响应标头响应,该标头的值是与文件相对应的类型(MIME类型)。如果浏览器支持此格式,则浏览器将尝试渲染并显示相应的文件。
与Windows系统相比,浏览器通常使用MIME类型而不是文件扩展名来处理URL。因此,在响应标头中添加正确的MIME类型非常重要。如果配置不正确,浏览器可能会扭曲文件的内容,并且下载的文件将被错误地处理,这将影响网站的正常运行。
如何上传恶意文件
在一开始,我们提到一些恶意资源将通过上传文件来上传。这些恶意资源的文件格式显然是一种正常格式,但是打开后,将会有特殊的访问效果,例如网页跳转。怎么做?
实际上,原理很简单,它是通过修改MIME类型进行的操作。例如,上面的test.jpg图片。尽管URL链接的资源后缀为jpg,但实际资源的文件类型为text / html,即网页类型。
此类网页的文件支持JS代码的嵌入,并且通过这些代码,打开文件的用户可以重定向到指定的网站。尽管此现象看起来与DNS劫持相似,但实际上是不同的。关于DNS劫持的问题,可以参考[Vernacular Popular Science]谈论DNS知识”。
似乎这种恶意文件是通过修改文件MIME来实现的,那么我们可以通过限制MIME和其他方法来减少此类恶意文件的上传和访问吗?是的,有很多方法,我们将以另一种云存储快照为例来逐一说明。
防止恶意文件上传方法
身份可追溯性-令牌上传
使用TOKEN上传时,TOKEN身份验证将使用终端上传的文件的标识信息来计算TOKEN,控制上传的有效期限,并确定上传目录或上传后缀。与所有用户在服务器上使用操作员的信息进行身份验证和上传的一般方式不同,云存储提供的TOKEN身份验证可以实现更细粒度的权限控制。
打开令牌功能后,我们可以为每个用户分配一个独立的徽标,以便根据徽标将用户上传的文件存储在单独的目录中。
X-Upyun-Uri-Prefix = /服务名/client_37ascii // 用户标识前缀,对应存储上的一个目录,如 /client_37ascii/
X-Upyun-Uri-Postfix = .jpg // 限定上传文件后缀
以这种方式上传的文件可以通过标识快速追溯,以找出谁上传了大量恶意文件并进行处理。
文档证明内容类型
第二种方法是限制文件名。我们可以限制上传文件的MIME类型,例如将上传的图像限制为Content-Type,这样即使上传了恶意文件,当浏览器访问该文件时,浏览器也会强制其根据图像格式进行解析。资源将无法解析,从而限制了对恶意文件的访问。
云存储的REST API和FORM API均支持Content-Type的强制设置。其中,FORM API支持多种限制方法:
对于特定用法,我们以Java SDK Form API上传为例:
//初始化uploader
FormUploader uploader = new FormUploader(BUCKET_NAME, OPERATOR_NAME, OPERATOR_PWD);
//初始化 policy 参数组 Map
final Map paramsMap = new HashMap();
//添加 SAVE_KEY 参数
paramsMap.put(Params.SAVE_KEY, savePath);
//添加文件上传限制
paramsMap.put(Params.CONTENT_TYPE, "image/jpg"); //强制文件MIME类型
paramsMap.put(Params.ALLOW_FILE_TYPE, "jpg,jpeg,png"); //强制文件扩展名
paramsMap.put(Params.CONTENT_LENGTH_RANGE, "102400,1024000"); //强制文件大小,单位字节
//执行上传
uploader.upload(paramsMap, file);
只要在上传设置中设置了以上任何一个参数,如果有上传请求,云存储将检测上传文件的内容,然后使用判断值与上传指定值匹配。如果匹配成功,则允许上传,但匹配失败。返回403状态代码。
访问拒绝边缘规则
上面提到的两种方法是在上传时排除恶意文件。我应该如何处理上传的文件?
对于已伪装成图片上传的恶意资源,我们可以通过边缘规则对其进行识别。通过向每个图片链接添加隐式云处理图片参数,恶意文件将无法正常显示,并出现405错误反馈。
除了图像限制外,如果在图像空间中发现了大量恶意APK,我们还可以通过边缘规则迅速禁止对它们的访问。
热门链接统计分析
如果有许多文件,并且有许多文件类型,则将花费很长时间进行故障排除,您需要立即检查是否有问题。您还可以查看Paiyun的日志分析功能。此功能每天对每种服务下访问域名的访问状态进行计数,并可以根据流行文件,流行客户端,流行参考文件,资源状态代码,文件大小和流行IP等维度对TOP 1000分析数据进行计数。
统计分析可以帮助您全面评估服务清单。如果发现某个资源或某个IP具有异常高的频率访问权限,则可以及时定位并进行故障排除。
信息安全性内容识别
如果您的网站流量非常大,并且上述方法不适合限制。您还可以查看两种内容识别工具Tianqing和Tiance。
这两个工具以AI智能安全检测为核心,并使用机器学习分类器算法“智能地”查看图片,视频和其他信息,逐渐从专业的“算法”和“模型”转变为“专业评估师” 。释放人力并大大提高处理效率,帮助公司降低投入成本。为客户提供内容安全预警,内容安全数据和内容安全审查服务,并提供完整的网络信息内容安全解决方案,
当前,一些互联网公司和政府部门提供了从引擎识别到人工审核的低延迟,高精度和可视化的一站式内容安全服务。