首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何过滤上传或发布到php webserver的文件的扩展名?

过滤上传或发布到 PHP Web 服务器的文件的扩展名可以通过以下步骤实现:

  1. 获取上传文件的原始文件名:在 PHP 中,可以使用$_FILES全局变量来获取上传文件的相关信息,包括文件名、临时文件路径等。
  2. 提取文件的扩展名:使用内置的PHP函数pathinfo()可以方便地提取文件路径的各个部分,包括文件名、目录路径和扩展名。
  3. 设置允许的文件扩展名:定义一个数组或列表,包含允许上传的文件扩展名。
  4. 检查文件扩展名是否合法:使用in_array()函数来判断提取到的文件扩展名是否在允许的扩展名列表中。如果不在列表中,表示该文件的扩展名不符合要求,可以进行相应的处理,例如拒绝上传或给出警告。

以下是一个示例代码,演示如何过滤上传文件的扩展名:

代码语言:txt
复制
$allowedExtensions = array("jpg", "png", "gif"); // 允许上传的文件扩展名
$uploadedFile = $_FILES['file']; // 假设上传文件的表单字段名为file

$originalFileName = $uploadedFile['name']; // 获取上传文件的原始文件名
$fileExtension = pathinfo($originalFileName, PATHINFO_EXTENSION); // 提取文件的扩展名

// 检查文件扩展名是否合法
if (!in_array($fileExtension, $allowedExtensions)) {
    echo "不允许上传该类型的文件";
    // 其他处理逻辑,例如记录日志或拒绝上传
} else {
    // 文件扩展名合法,可以继续处理上传文件
    move_uploaded_file($uploadedFile['tmp_name'], "uploads/" . $originalFileName);
    echo "文件上传成功";
    // 其他处理逻辑
}

上述示例中,$allowedExtensions数组定义了允许上传的文件扩展名,可以根据需求进行修改和扩展。如果上传的文件扩展名不在允许列表中,会输出"不允许上传该类型的文件"的提示。如果文件扩展名合法,会将文件移动到指定目录,并输出"文件上传成功"的提示。

对于发布到 PHP Web 服务器的文件扩展名过滤,也可以采用类似的方法,根据具体的需求进行文件扩展名的判断和处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

闲话文件上传漏洞

一些web应用程序中允许上传图片,文本或者其他资源指定位置,文件上传漏洞就是利用这些可以上传地方将恶意代码植入服务器中,再通过url去访问以执行代码 造成文件上传漏洞原因是 对于上传文件后缀名...(扩展名)没有做较为严格限制 对于上传文件MIMETYPE 没有做检查 权限上没有对于上传文件文件权限,(尤其是对于shebang类型文件) 对于web server对于上传文件或者指定目录行为没有做限制...和 a.php[空格] 这样文件名存储后会被windows去掉点和空格,从而使得加上这两个东西可以突破过滤,成功上传,并且被当作php代码来执行 4.nginx空字节漏洞 xxx.jpg%00.php...这样文件名会被解析为php代码运行 5.apache解析漏洞,上传如a.php.rar a.php.gif 类型文件名,可以避免对于php文件过滤机制,但是由于apache在解析文件时候是从右向左读...导致文件上传漏洞根本原因在于服务把用户上传本应是数据内容当作了代码,一般来说,用户上传内容都会被存储特定一个文件夹下。

1.8K70

IIS发布PHP网站字体404解决办法

最近在使用 IIS 发布 PHP 网站时,我遇到了一个前端问题,即字体库文件 404 错误。...具体而言,我在 web.config 文件 标签下添加了一系列关于字体文件扩展名和对应 MIME 类型配置。...这些配置告诉了 IIS 在接收到特定类型字体文件请求时应该如何处理,确保了浏览器能够正确加载这些字体资源。以下是详细解决步骤:问题描述在IIS发布PHP网站时,前端出现了字体库文件 404 错误。...在 标签下添加以下参数,以告诉 IIS 如何正确处理字体文件类型: <!...通过以上步骤,您可以成功解决 IIS 发布 PHP 网站字体文件 404 错误问题。这个解决方法不仅适用于字体文件,还可以用于其他可能由于文件类型未被 IIS 正确识别而导致404错误。

11810

深度解析:文件上传漏洞绕过策略

什么是文件上传漏洞 上传文件时,如果服务器代码未对客户端上传文件进行严格验证和过滤,就容易造成可以上传任意文件情况,包括上传脚本文件(asp、aspx、php、jsp等格式文件) 主要危害 上传网站后门文件...3、构造本地上传表单:创建一个新HTML表单,绕过原有的前端验证页面,直接提交文件服务器。 后端 黑名单绕过 Web系统可能会采用黑名单方式进行过滤。...空格绕过 文件上传功能过滤不完善,没有考虑空格情况,将文件【shell.php(空格)】认为是以(空格)结尾特殊文件,允许上传,当文件成功上传到windows系统下时,因为Windows系统特性会被作为空处理...同样双写也适用于绕过XSS漏洞 4、大小写绕过: 上传File.PhP等大小写混合文件名,如果服务器在过滤时没有进行大小写统一处理,则可能绕过过滤。...这种方法需要服务器在处理文件时未进行充分渲染过滤 1、文件头检测 文件头检测通过读取上传文件前几个字节(通常是文件前几个字节,也称为“魔术数字”文件签名”),并与已知文件类型签名进行比较,

6010

upload-labs大闯关

php phpinfo(); 前端alert一个弹窗,只能上传图片,可知是在客户端JavaScript进行前端验证文件扩展名过滤 要绕过前端过滤,只需要将shell.php后缀名改为jpg,然后上传...查看上传文件,webshell执行成功 pass-3 解题思路:对文件扩展名进行判定,可以使用php文件其他扩展名进行绕过。...可知这里是通过文件后缀名来过滤用户上传文件 不能上传asp、aspx、php、jsp文件。...例如,.php7 表示此文件需要在 PHP 7 更高版本中运行;4、inc:这是一种用于包含 PHP 代码文件扩展名,但是由于此扩展名与其他类型文件混淆,因此不建议使用它。...需要需要开启php_exif模块,在php.ini编辑如下。如果PHP版本低于5.2.0,那么 php_exif 扩展模块是不可用。需要升级5.2.0更高版本。

40440

常规web渗透测试漏洞描述及修复建议

任意文件上传 漏洞描述 文件上传漏洞通常由于网页代码中文件上传路径变量过滤不严webserver相关解析漏洞未修复而造成,如果文件上传功能实现代码没有严格限制用户上传文件后缀以及文件类型,攻击者可通过...修复建议 1、对上传文件类型进行限制,并且不能只做前端限制,而要前端和后端一起限制,后端可以进行扩展名检测,重命名文件,MIME类型检测以及限制上传文件大小,或是将上传文件放在安全路径下,尽量放于...7、文件扩展名服务端白名单校验。 8、文件内容服务端校验。 9、上传文件重命名。 10、隐藏上传文件路径。...修复建议 过滤 \r 、\n 之类换行符,避免输入数据污染其他 HTTP 消息头。...修复建议 1、目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商主页下载!

2.9K40

常规36个WEB渗透测试漏洞描述及修复方法--很详细

(8)、任意文件上传   漏洞描述   文件上传漏洞通常由于网页代码中文件上传路径变量过滤不严webserver相关解析漏洞未修复而造成,如果文件上传功能实现代码没有严格限制用户上传文件后缀以及文件类型...修复建议   1)、对上传文件类型进行限制,并且不能只做前端限制,而要前端和后端一起限制,后端可以进行扩展名检测,重命名文件,MIME类型检测以及限制上传文件大小,或是将上传文件放在安全路径下,...7)、文件扩展名服务端白名单校验。   8)、文件内容服务端校验。   9)、上传文件重命名。   10)、隐藏上传文件路径。  ...修复建议   过滤 \r 、\n 之类换行符,避免输入数据污染其他 HTTP 消息头。  ...修复建议   1、目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商主页下载!

1.8K10

弱鸡代码审计之旅

至于如何上传一个自己模板,后面会介绍一个受限上传漏洞。 此处还印证了一个自己不知道点: ?...至于自定义文件怎么传上去,接着看下去: 这个程序在后台可以设置文件上传白名单,本以为可以直接添加扩展名,达到任意文件上传目的,但通过代码审计发现代码中还是对 .php扩展名进行黑名单限制: ?...上面的过程忽略了关于文件上传功能点审计,但是审计过程并没有发现可以任意文件上传,因为通过黑名单方式,还是过滤php扩展名,不过 php5,php4 这样就不在黑名单之类了,其实也可以利用一波...第 890 行规定了文件存储位置只能在 upload 文件夹下,因为之前存在过滤,无法目录穿越。第 891 行 893 行规定存储文件名,与远程文件相同。...在第 899 行读取了可以获取远程文件扩展名,然后通过对比当前扩展名白名单判断是否允许写入文件,因此需要通过低权限管理员修改可上传扩展名白名单。

81720

文件上传漏洞一些总结

这时攻击者可以上传一个与网站脚本语言相对应恶意代码动态脚本,例如(jsp、asp、php、aspx文件后缀)服务器上,从而攻击者访问这些恶意脚本对包含恶意代码动态解析最终达到执行恶意代码效果,进一步影响服务器安全...0x02 漏洞成因 未过滤Web前段过滤被绕过 文件检测被绕过 中间件解析 不完善黑名单扩展名 文件路径截断 HTTP不安全方法(PUT协议) 0x03 漏洞成因分析及案例 1、 未过滤或者web前端过滤被绕过...不存在,则PHP会递归向前解析,将xxx.txt当作php脚本来解析 4、不完善黑名单扩展名 因为程序员在开发文件上传时加入了不允许上传类型黑名单,但是黑名单内容并不完善,这时候我们可以利用一些其他扩展名绕过黑名单限制.../cmd.asp (2)去年发布tomcat漏洞 http://blog.csdn.net/u011499747/article/details/78108240 0x04 其他上传利用 1、结合文件包含...4、操作系统解析 由于windows会将文件后缀中空格以及点进行过滤,如果遇到是黑名单校验,如限制不允许上传PHP文件,而系统又是windows系统,那么我们可以上传xx.php ,或者xx.php

3K61

文件上传限制绕过技巧

一些web应用程序中允许上传图片,文本或者其他资源指定位置,文件上传漏洞就是利用这些可以上传地方将恶意代码植入服务器中,再通过url去访问以执行代码。...但在一些安全性较高web应用中,往往会有各种上传限制和过滤,导致我们无法上传特定文件。...本文将就此展开讨论,通过本文学习你将了解Web应用中文件上传处理和验证发送流程,以及我们该如何绕过这些验证。 客户端验证 客户端验证是一种发生在输入被实际发送至服务器之前进行验证。...文件名绕过 我们可以通过上传一些平时不怎么用容易被人忽视文件扩展名,来绕过这种类型验证。 绕过黑白名单策略: 黑名单绕过 通过上传不受欢迎php扩展来绕过黑名单。...例如:pht,phpt,phtml,php3,php4,php5,php6 白名单绕过 通过某种类型技巧来绕过白名单,例如添加空字节注入(shell.php%00.gif),使用双重扩展来上传文件

3.7K20

轻量级PHP文件在线文件管理器

是一个简单,快速和小型文件管理器,只有单个 php 文件。...它也是一个 Web 代码编辑器(它更像一个安全 webshell)。它可以在 Linux,Windows Mac 平台上在线本地运行。唯一要求是提供 PHP 5.5+。...特点 1、开源安全,轻便且极其简单 2、对移动段友好触摸设备视图 3、基本功能包括创建,删除,修改,查看,下载,复制和移动文件 4、Ajax 上传,能够拖放,从 URL 上传,多个文件上传文件扩展名过滤...2、用于 zip 和解压缩操作 Zip 扩展。 3、强烈建议使用 Fileinfo,iconv 和 mbstring 扩展名如何使用 下载最新版本 ZIP。...点击下载 只需将 tinyfilemanager.php 复制网站空间 – 这就是全部:)您还可以将文件名从“tinyfilemanager.php”更改为其他内容。

4.2K41

《安全测试指南》——配置管理测试【学习笔记】

· 所有用户能默认读取.NET 框架 machine.config和 root web.config文件,不要把敏感信息存储这些文件中。除非只有管理员能查看。       ...· 使用单独身份来发布applicationHost.config 共享,不要使用此用户身份在web服务器去配置共享配置文件访问权限。       ...(OTG-CONFIG-003)   确定web服务器如何处理包含不同扩展名对应请求,也许能帮助你理解web 服务器对于不同类型文件访问行为模式。      ...文件上传     c. 灰盒测试 工具:Nessus,Nikto。   ...d、通过服务器漏洞和错误配置获取信息     e、使用公开资源获取信息(搜索引擎归档文件)     f、文件过滤绕过(基于正则黑名单过滤)     灰盒测试:周期性地在后台执行任务来检查带有文件扩展名文件

1.2K30

Web漏洞 | 文件上传漏洞

upload-libs 文件上传漏洞是指攻击者上传了一个可执行文件服务器并执行。...后端脚本检测文件扩展名,数据提交到后端,后端函数对上传文件后缀名进行检测,比如黑名单检测不允许上传 .php 、.asp 后缀格式文件;白名单检测只允许上传 .jpg 格式文件 #后端php检测...生产环境中过滤是很严格 上传文件过滤绕过 · 对于第一种前端脚本检测过滤上传时候上传 jpg 后缀文件,然后用butpsuite进行抓包修改为.php即可绕过。...· 对于第三种过滤,可以使用burpsuite进行抓包修改 Content-Type 类型 · 对于第四种过滤,可以将一句话木马写入正常图片中:copy /b 1.jpg+1.php 2.jpg...然后在利用burpsuite修改后缀为 .php ,或者利用文件包含漏洞或者文件解析漏洞,将其解析成 php脚本即可 · 还有其他过滤,比如多文件上传时,有时服务器只对第一个上传文件进行了检查,这时通过上传多个文件并将恶意文件掺杂进其中也可绕过服务器过滤

1.5K10

实战 | 文件上传漏洞之最全代码检测绕过总结

程序开发中不严格不安全逻辑问题会导致文件上传漏洞,程序开发所使用编程语言以及版本、所用操作系统,以及不同应用场景也可能导致文件上传漏洞,所以文件上传漏洞表现形式与其成因息息相关。...产生原因 一些web应用程序中允许上传图片,文本或者其他资源指定位置,文件上传漏洞就是利用这些可以上传地方将恶意代码植入服务器中,再通过 URL 去 访问以执行代码。...:application /app/ -R 审计源代码,发现该靶场做了如下过滤: 1.使用正则表达式过滤了包含ph与htaccess扩展名文件2.过滤文件内容包含<?...htaccess扩展名文件上传.user.ini与图片马,利用.user.ini进行文件包含2.针对过滤文件内容包含<?...所以Windows系统可以解析.Php、.PHp、.PHP、.pHp、.pHP、.phP扩展名文件。若网站后端过滤并未统一大小写(将文件扩展名转为小写表示),则会造成绕过。

11.8K42

浅谈常见文件上传检测方式与绕过方法

写这篇文章主要是想对常见文件上传检测和绕过进行总结,同时练习文件上传php代码编写。...> 众所周知使用黑名单是非常不安全,很多网站会使用扩展名黑名单来限制上传文件类型,有些甚至在判断时都不用strtolower()来处理,因此造成漏洞 绕过方法: 使用一些特殊扩展名来绕过(如php可以使用...,以此来绕过上传过滤 总结 常见文件上传检测和绕过方式基本是以上几种。...在实战CTF比赛中往往是几种类型结合,因此绕过也需要几种方式结合。...如果是黑名单的话,就要尝试各种特殊文件名(phpPhpPHP、pht、php5、phtml),或者在扩展名后添加空格、::$DATA、.等字符,再或者是尝试上传.htaccess 如果是白名单,就要看是否可以使用

1.8K30
领券