iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >文件上传(前端JS检测)详解
  • 412
分享到

文件上传(前端JS检测)详解

前端javascriptphp代码复审 2023-09-09 13:09:56 412人浏览 独家记忆
摘要

文件上传(前端js检测)详解 function checkFile() { var file = document.getElementsByName('upload_file')[0].val

文件上传(前端js检测)详解

function checkFile() {    var file = document.getElementsByName('upload_file')[0].value;    if (file == null || file == "") {        alert("请选择要上传的文件!");        return false;    }    //定义允许上传的文件类型    var allow_ext = ".jpg|.png|.gif";    //提取上传文件的类型    var ext_name = file.substring(file.lastIndexOf("."));    //判断上传文件类型是否允许上传    if (allow_ext.indexOf(ext_name + "|") == -1) {        var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;        alert(errMsg);        return false;    }}

代码分析:

上传PHP文件,发现前端提示不允许上传
在这里插入图片描述

查看源码中,发现JS中存在后缀名检测函数checkFile()
javascript 中var关键字为定义一个变量,而document 是文档内其他节点的访问入口,用来调用其他功能点函数来实现具体的功能。

checkFile()中第一行代码定义一个变量file,使用document.getElementsByName()获取上传文件的文件名,并保存到file文件中。

var file = document.getElementsByName('upload_file')[0].value;

allow_ext 变量用来保存允许上传文件的后缀名

 var allow_ext = ".jpg|.png|.gif";

lastIndex0f()函数获取.后面的位置的后缀名,然后使用substring()来提取.后的字符串,也就是后缀名,并保存到ext_name中。

最后就是拿到后缀名(exe_name)与允许上传的后缀名(allow_ext)通过index0f()进行比较,如果不同则不允许上传。

 if (allow_ext.indexOf(ext_name + "|") == -1) {        var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;        alert(errMsg);        return false;    }}

函数解析:

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

substring() 方法返回的子串包括 开始 处的字符,但不包括 结束 处的字符。

document.getElementsByTagName() \返回带有指定标签的对象的集合

lastIndexOf() \方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。

indexOf()

indexOf()方法可返回某个指定的字符串直在字符串中首次出现的位置。如果没有找到匹配的字符串在返回-1。注意:indexOf()方法区分大小写。

上传绕过:

JS前端检测相当于没有检测,我们通过上
传.jpg后缀文件,Burp抓包修改为.php文件即可绕过JS检测。
,Burp抓包修改为.php文件即可绕过JS检测。

在这里插入图片描述

来源地址:https://blog.csdn.net/qq_22132931/article/details/127442053

--结束END--

本文标题: 文件上传(前端JS检测)详解

本文链接: https://www.lsjlt.com/news/401507.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 文件上传(前端JS检测)详解
    文件上传(前端JS检测)详解 function checkFile() { var file = document.getElementsByName('upload_file')[0].val...
    99+
    2023-09-09
    前端 javascript php 代码复审
  • SpringBoot后端上传文件类型检测方式
    目录本文通过文件流头部判断文件类型1、添加配置文件checkFileHeader.properties2、编写读取properties文件类3、编写拦截器4、配置拦截文件文件上传大部...
    99+
    2024-04-02
  • TypeScript前端上传文件到MinIO示例详解
    目录什么是MinIO本地Docker部署测试服务器上传的APITypeScript实现1. XMLHttpRequest2. Fetch API3. Axios从后端获取临时上传链接...
    99+
    2022-11-13
    TypeScript前端上传到MinIO TypeScript前端文件上传
  • js前端上传文件缩略图技巧有哪些
    本篇内容介绍了“js前端上传文件缩略图技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!引言通常情况下,前端提交给服务器的数据格式为J...
    99+
    2023-07-05
  • web前端怎么上传文件
    这篇文章主要介绍“web前端怎么上传文件”,在日常操作中,相信很多人在web前端怎么上传文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”web前端怎么上传文件”的疑惑有所帮...
    99+
    2024-04-02
  • 前端如何上传图片文件
    效果图html代码js 效果图 效果: 这篇博客必须要后台调用你的js函数,如果后台不打算调用你的js函数可以放弃此篇博客了,或者自己将代码改良。如果后台接受该代码可以参考这篇文...
    99+
    2023-09-24
    前端 javascript php
  • JavaScript进阶之前端文件上传和下载示例详解
    目录文件下载1.通过a标签点击直接下载2.open或location.href3.Blob和Base64文件上传文件上传思路File文件上传单个文件-客户端上传文件-服务端多文件上传...
    99+
    2024-04-02
  • 前端大文件上传与下载(分片上传)的详细过程
    目录一、问题二、解决1.第一步选择文件2.校验文件是否符合规范3.文件切片上传4.分片上传注意点5.大文件下载总结一、问题 日常业务中难免出现前端需要向后端传输大型文件的情况,这时单...
    99+
    2022-11-13
    前端文件上传和下载 前端上传文件 前端大文件上传
  • 前端上传文件的示例分析
    这篇文章将为大家详细讲解有关前端上传文件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。零, 基础(知识点主要来源于w3school)(已经熟悉的人直接跳过这一章...
    99+
    2024-04-02
  • vue+springboot上传文件、图片、视频及回显到前端详解
    目录效果图设计逻辑数据库表前端vuehtmljs代码前端思路储存文件信息上传文件对象后端上传下载代码完整代码workinfo.vueSubmitHomeworkController总...
    99+
    2023-05-17
    vue springboot 文件上传 vue springboot 图片上传 vue上传文件到后端
  • PHP 文件上传前后端代码(笔记)
    本笔记中代码运行环境为Wampserver-3.2.9 前端上传文件代码 文件上传文件名: 如果需要保存大文件,需要在后端保存文件前,对php.ini配置文件进行修改 。 第一步、在wampserver文件bin目录中找到对应版本的apac...
    99+
    2023-08-31
    html php
  • js 实现文件上传样式详情
    目录1、概述2、创建对象的参数3、监听例子4、使用方法5、源代码1、概述 这个js包括按钮样式,列表样式、带有删除、添加、放大(使用的是自带的放大功能,提供有API来放入你的弹窗...
    99+
    2024-04-02
  • JS实现可恢复的文件上传示例详解
    目录正文不太实用的进度事件算法server.jsuploader.jsindex.html正文 使用 fetch 方法来上传文件相当容易。 连接断开后如何恢复上...
    99+
    2022-12-29
    JS恢复文件上传 JS文件恢复
  • 文件上传漏洞详解
    1.什么是文件上传漏洞 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本...
    99+
    2023-09-10
    安全 web安全
  • 致远OA文件上传漏洞(含批量检测POC)
    文章目录 文件上传wpsAssistServlet 任意文件上传漏洞描述漏洞影响网络测绘批量检测POC ajax.do 任意文件上传 CNVD-2021-01627漏洞漏洞描述漏洞影响漏...
    99+
    2023-09-01
    安全 致远OA Python
  • elementUI自定义上传文件功能实现(前端后端超详细过程)
    目录简介:1.简单介绍组件( upload)的属性(熟悉参数的直接略过)2.主要目的自定义上传文件2.1 组件代码2.2 data中的属性2.3 methods的方法3.与其他参数通...
    99+
    2022-11-16
    element ui 自定义上传 element上传文件 elementui 文件上传
  • 前端使用koa实现大文件分片上传
    目录引言前端拆分上传的文件流后端接收文件片段合并文件片段总结引言 一个文件资源服务器,很多时候需要保存的不只是图片,文本之类的体积相对较小的文件,有时候,也会需要保存音视频之类的大文...
    99+
    2024-04-02
  • web前端大文件上传与下载问题怎么解决
    这篇文章主要介绍了web前端大文件上传与下载问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇web前端大文件上传与下载问题怎么解决文章都会有所收获,下面我们一起来看看吧。一、问题日常业务中难免出现前端...
    99+
    2023-07-04
  • 原生JS实现文件上传
    本文实例为大家分享了JS实现文件上传的具体代码,供大家参考,具体内容如下 一、目的: 实现上传图片功能 二、效果: 三、思路: 用input标签自带的上传,先隐藏掉,给上传按钮添加...
    99+
    2024-04-02
  • 前端vue+express怎么实现文件的上传下载
    本篇内容主要讲解“前端vue+express怎么实现文件的上传下载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“前端vue+express怎么实现文件的上传下载”吧!新建server.jsyar...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作