网站内容管理系统 上传word(网站上传程序没有和文件扩展名有什么区别?怎么办?)

优采云 发布时间: 2021-11-23 20:23

  网站内容管理系统 上传word(网站上传程序没有和文件扩展名有什么区别?怎么办?)

  在网上分享的时候,肯定有一个不能回避的操作,那就是“文件上传”。我们经常在微博、微信朋友圈等发帖,发送过程中用到了文件上传中的图片上传功能。将本地图片、视频、音频等文件上传到节目服务器,供其他用户浏览或下载。这导致每天有大量数据涌入网站。海量数据在给用户带来的同时,也带来了一些安全问题。

  网站的开发者经常会在网站的存储空间中发现各种xml、html、apk等垃圾文件。这些文件被注入广告,或传播*敏*感*词*视频等资源,严重影响网站业务运营。这些垃圾文件通过文件上传功能上传到网站的存储空间。如果网站上传程序不对用户提交的数据进行检查或严格过滤,服务器可以轻松上传修改后的数据。

  文件上传是最容易被利用的数据安全部分。为了减少恶意文件上传的中断,我们首先要弄清楚它的原理。

  文件类型和文件扩展名的作用

  计算机数据内容一般存储在硬盘等存储硬件上。由于硬盘本身的空间巨大,就像一个大仓库,为了方便数据的存储和管理,我们创造了文件的概念,即操作系统使用文件格式来封装一段数据存储在空间。

  但是,随着互联网的发展,从最初的纯文本文件到今天的各种类型的多媒体文件,如图片、音频、视频等,我们存储的文件越来越多,种类也越来越丰富。体积越来越大。如果不区分这些文件,查找起来会极其麻烦。于是文件格式(或文件类型)应运而生。每种类型的文件都可以以一种或多种文件格式保存在计算机存储器中。每种文件格式通常都有一个或多个可用于识别的扩展名,扩展名可以帮助用户和应用程序识别文件格式。

  例如有一个文件名为README.txt,.txt是文件扩展名,txt适用于纯文本文件。这种类型的文件可以是具有纯文本文件内容的说明性文件。

  

  △ Windows下默认使用记事本打开txt文件

  此外,扩展名还可以帮助操作系统确定如何读取文件。例如文件score.doc,可以用Word打开doc文件,然后Windows用户双击.doc文件后,Windows系统会根据文件扩展名“doc”查找自维护数据库表并搜索“可以打开这个扩展文件”程序”,比如Word程序,之后系统会自动启动Word程序并通知Word加载这个文件。

  由此可以看出,Windows系统打开文件时,只需要文件名中的扩展名就可以找到对应的程序。因此,改变文件的扩展名也会改变文件在系统中的默认打开方式。并且如果文件本身的内容不符合程序对文件内容格式的期望,打开时就会出错,或者会出现意想不到的结果。

  浏览器如何识别打开的文件

  由于互联网工具的功能逐渐完善,相比本地打开文件,浏览器打开文件的概率也逐渐增加。那么,浏览器是如何确认被访问资源的文件类型的呢?其实是通过响应头来判断的。

  当用户输入 URL 时,资源所在的服务器会响应一个 Content-Type 响应头,其值为文件对应的类型(MIME 类型)。如果浏览器支持这种格式,浏览器会尝试渲染并显示相应的文件。

  与 Windows 系统相比,浏览器通常使用 MIME 类型而不是文件扩展名来处理 URL。因此,在响应头中添加正确的 MIME 类型非常重要。如果配置不正确,浏览器可能会扭曲文件内容,对下载的文件进行错误处理,影响网站的正常运行。

  恶意文件是如何上传的

  一开始我们提到了一些恶意资源会通过上传文件的方式上传。这些恶意资源的文件格式显然是正常格式,但打开后会出现网页跳转等特殊访问效果。这是怎么做的?

  

  其实原理很简单,就是修改MIME类型所做的操作。比如上面的test.jpg图片。虽然URL链接的资源后缀是jpg,但真正资源的文件类型是text/html,也就是网页类型。

  

  并且此类网页文件支持嵌入JS代码,打开文件的用户可以通过这些代码重定向到指定的网站。这种现象虽然看起来和DNS劫持很像,但实际上是不同的。关于DNS劫持问题,可以参考《【白话科普】谈DNS知识》了解更多。

  

  看来这种恶意文件是通过修改文件MIME来实现的,那么我们是否可以通过限制MIME等方式来减少此类恶意文件的上传和访问呢?是的,方法很多,我们再以云存储为例,一一讲解。

  防止恶意文件上传的手段

  身份溯源-TOKEN上传

  使用TOKEN上传时,TOKEN认证会使用终端上传文件的识别信息来计算TOKEN,控制上传有效期,固定上传目录或上传后缀。不同于一般的所有用户使用服务器上的运营商信息进行身份验证和上传的方式,云存储提供的TOKEN身份验证可以实现更细粒度的权限控制。

  

  开启TOKEN功能后,我们可以为每个用户分配一个独立的标识,这样用户上传的文件就会根据标识存放在一个单独的目录中。

  1 X-Upyun-Uri-Prefix = /服务名/client_37ascii // 用户标识前缀,对应存储上的一个目录,如 /client_37ascii/

2 X-Upyun-Uri-Postfix = .jpg // 限定上传文件后缀

  通过这种方式上传的文件可以通过识别快速追溯,找出谁上传了大量恶意文件并进行处理。

  文件证明内容类型

  第二种方法是限制文件名。我们可以限制上传文件的MIME类型,比如将上传的图片限制为Content-Type,这样即使上传了恶意文件,浏览器访问时,浏览器也会强制按照图片格式解析。资源将无法解析,从而限制对恶意文件的访问。

  云存储的 REST API 和 FORM API 都支持强制设置 Content-Type 类型。其中,FORM API 支持多种限制方式:

  

  具体用法我们以Java SDK Form API上传为例:

  1 //初始化uploader

2 FormUploader uploader = new FormUploader(BUCKET_NAME, OPERATOR_NAME, OPERATOR_PWD);

3 //初始化 policy 参数组 Map

4 final Map paramsMap = new HashMap();

5 //添加 SAVE_KEY 参数

6 paramsMap.put(Params.SAVE_KEY, savePath);

7 //添加文件上传限制

8 paramsMap.put(Params.CONTENT_TYPE, "image/jpg"); //强制文件MIME类型

9 paramsMap.put(Params.ALLOW_FILE_TYPE, "jpg,jpeg,png"); //强制文件扩展名

10 paramsMap.put(Params.CONTENT_LENGTH_RANGE, "102400,1024000"); //强制文件大小,单位字节

11 //执行上传

12 uploader.upload(paramsMap, file);

  只要在上传设置中设置了上述任何一个参数,如果有上传请求,云存储会检测上传文件的内容,然后使用判断值匹配上传指定值。如果匹配成功,则允许上传,如果匹配失败,则返回 403 状态。代码。

  

  用Content-Type上传的伪装图片无法再打开

  访问拒绝边缘规则

  上面提到的两种方法是在上传时排除恶意文件。已经上传的文件怎么办?

  对于伪装成图片上传的恶意资源,我们可以通过边缘规则进行识别。通过在每个图片链接中添加隐式云处理图片参数,恶意文件无法正常显示,出现405错误反馈。

  

  

  除了图片限制,如果在图片空间发现大量恶意APK,我们也可以通过边缘规则快速禁止访问。

  

  

  热门链接-统计分析

  如果文件多,文件类型多,排查时间长,需要立即排查问题。也可以看看亚拍云的日志分析功能。该功能统计每天各服务下访问域名的访问状态,可根据热门文件、热门客户端、热门参考文件、资源状态码、文件大小、热门IP等维度统计TOP 1000的分析数据.

  

  统计分析可以帮助您对服务进行全面盘点。如果您发现某个资源或某个IP的访问频率异常高,可以及时定位和排查。

  *敏*感*词*暴力内容识别

  如果你的网站流量很大,上面的方法不适合限制。还可以看看天擎和天策这两款内容识别工具。

  这两款工具以AI智能安防检测为核心,利用机器学习分类算法对图片、视频等信息进行“智能”审核,逐渐将“感知者”从职业转变为“算法”和“模型”。解放人力,大幅提升加工效率,帮助企业降低投入成本。为客户提供内容安全预警、内容安全数据、内容安全审查服务,提供完善的网络信息内容安全解决方案。

  目前已为多家互联网公司和政府部门提供了从引擎识别到人工审核的低延迟、高精度、可视化的一站式内容安全服务。

  一键开启智能识别,有需要不要错过。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线