文件上传过程中 Firefox 中的 mozFullPath 是否存在安全风险?

2024-01-30

我正在开发一个小照片应用程序,用户选择一个本地文件并将其推送到画布中window.URL.createObjectURL(file)- 非常基本的东西。在测试过程中,我短暂地将文件数组的内容转储到控制台 - 只是为了确保我得到了我想要的东西。

我在 Debian 7 上使用 Firefox 31.0(不是 Iceweasel)和 Chrome 34.0.1847.116(不是 Chromium)

我这样调用数组:

               var file = evnt.target.files[0];
               if (file) {
                     console.log('file');
                     // other stuff
               }

console.log 在 Google Chrome 浏览器中如下所示:

File {
  name: "image.png"
  size: 55464
  type: "image/png"
  webkitRelativePath: ""
}

在 Mozilla Firefox 浏览器中就像这样:

File { 
  size: 55464, 
  type: "image/png",  
  name: "image.png", 
  path: "",
  lastModifiedDate: Date 2014-09-09T13:30:30.000Z,  
  mozFullPath: "/home/server/Desktop/image.png" 
}

我可以要求:

console.log(evnt.target.files[0]['type')

并正确接收"image/png"作为回应,但是当我请求时:

console.log(evnt.target.files[0]['mozFullPath']);

我刚刚得到的回复是:""

为什么这些信息会通过evnt.target.files[0]数组,但是当我直接调用它时不可见?

有关我的文件系统结构的信息是否仅显示在我的特权控制台上,还是可以通过浏览器上的中间人攻击而泄露?

EDIT

在较旧的 Firefox 浏览器中,这可以提升权限:

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");

但现在不再这样了。无论如何,在公共 Linux 终端/其他人的计算机上使用 Firefox 时这是一个问题,因为它确实会泄漏文件系统信息,例如目录结构和系统用户名。与其他漏洞一起,这对我来说似乎是一个危险的威胁......或者我只是反应过度?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文件上传过程中 Firefox 中的 mozFullPath 是否存在安全风险? 的相关文章

  • 如何使用有角度的材料创建卡片网格?

    我正在尝试使用 ng repeat 创建每行三张卡片的网格 我有一个普通的 javascript 对象数组附加到范围 下面的代码将为每张卡创建一个新行 div div
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 为什么 window 与 Internet Explorer 中的 window.self 不同?

    关于我如何遇到这个问题有一个复杂的背景故事 但为什么self属性不完全等于窗口本身 在 Safari 和 Firefox 及其朋友中 结果如我所料 gt window window self true gt window window se
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • 删除 IE9 边缘周围的 2px 灰色边框

    我正在尝试对这个网站进行编码 尝试关键字 并且我正在尝试找出如何删除这个阴影2px灰色边框延伸到 IE9 窗口的内部 至少顶部 左侧和底部 我的边距设置为零 因此所有页面元素都到达页面的最边缘 但使用 IE9 它们会停在这个灰色边框处 我没
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • JavaScript RegEx:不同的结果:使用字符串和使用正则表达式“文字”构建模式?

    使用 RegExp 文字与字符串之间有什么区别吗 http jsfiddle net yMMrk http jsfiddle net yMMrk String prototype lastIndexOf function pattern p
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 具有 100% 高度行和 Internet Explorer 9 的表格

    我有以下示例 div style height 150px background color AAAAFF div
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u

随机推荐

  • 如何在 Django 中的过滤器之前应用开窗函数

    我有这些模型 class Customer models Model class Job models Model customer models ForeignKey Customer payment status models Fore
  • 在 foreach 循环之外声明变量

    在 for 循环情况下 我可以在 for 语句之外声明索引 例如 代替 for int i 0 i lt 8 i 我可以 int i for i 0 i lt 8 i 现在与 foreach 循环相比 我必须在循环内声明变量 foreach
  • 如何一次从 docker repo 中提取所有 docker 容器镜像?

    我有一个私人 docker 存储库 其中存储了 10 个容器映像 我想将所有图像拉到一台机器上 有没有一种方法可以使用单个命令从存储库中提取所有图像 一些命令 例如 docker pull xx xx com reponame 在研究过程中
  • Rails4Friendly_id 独特的 Slug 格式

    我正在使用Friendly id gem 来攻击我的模型 由于当我输入相同的数据来检查时 slug 必须是唯一的 因此我会在 slug 中附加一个长哈希值 Explore explore Explore explore 7a8411ac 5
  • 例外:DataValidation 列表的总长度不能超过 255 个字符

    我正在尝试在 epplus 中动态创建公式字段 如果公式字段包含少于 255 个字符 则可以正确创建 如果超过255 然后它抛出一个异常例外 DataValidation 列表的总长度不能超过 255 个字符 任何人都可以帮我解决这个问题吗
  • 如何有效地将项目添加到 Chrome Storage API 中的数组中?

    据我了解 如果您希望在 Chrome Storage API 中存储一个数组并不断向其中添加项目 则需要如下所示 function addToHistory url chrome storage sync get history funct
  • 使用 PHP 强制下载然后重定向

    我知道这个问题以前已经被问过很多次了 但我找不到适合我需要的答案 我需要找到一种方法来强制下载文件 然后在下载开始后重定向到 感谢下载 页面 到目前为止我有
  • 这个 ASP.Net 和 Fiddler 示例有什么问题?

    我正在使用 Visual Studio 2012 RC 我使用默认路由并具有以下 Web API 控制器 public class FooController ApiController GET api foo public IEnumer
  • Nodejs http 超时或错误时重试

    我正在尝试在超时或错误时自动重试 HTTP 请求 目前我的代码如下所示 var req http get url doStuff on error retry setTimeout 10000 retry 但是 单个请求有时可能会同时触发
  • 如何对通知进行android单元测试?

    我有课handleFirebaseMessages 它包含以下功能onMessageReceived 该函数负责接收数据并创建通知 onMessageReceived 接收数据在RemoteMessages目的 我正在尝试为这个函数编写一个
  • 引起原因:java.sql.SQLException:不支持 JDBC4 Connection.isValid() 方法

    我的 play framework 项目在本地运行良好 但是当我尝试将其部署到 heroku 中时 出现以下错误 2015 07 05T06 24 10 456657 00 00 app web 1 at com google inject
  • 默认样式表、用户样式表和作者样式表之间有什么区别?

    In CSS http en wikipedia org wiki Cascading Style Sheets 有什么区别default user and author样式表 默认样式表由浏览器供应商提供 用户样式表由浏览器的用户提供 作
  • 将数据从 SQL Server 加载到 Excel 的最快方法

    我在 SQL Server 上有一个相对较大的表 大约 300 000 行 该数据用作数据池来验证用户在 Excel 电子表格中执行的操作 确保用户始终使用最新数据的一种方法是设置 VBA 以便在电子表格打开时自动从 SQL Server
  • .NET 可移植类库和 UDP 支持

    我正在为 Philips Hue Lights 编写一个 C 库 我正在尝试在 NET 可移植集中编写基本 API 包装器 这样我就可以在 Windows 8 RT WP 等各种平台上重复使用该库 API 本身完全通过 HTTP 使用 RE
  • Travis CI/Pro:CIDR/IP 范围?

    我们正在使用 Travis Pro 并对 Redshift 进行了一些测试 我们可以在 Redshift 中为其创建安全规则吗 Travis VM 是否有 CIDR IP 范围 显然我们不会为任何传入 IP 打开 Redshift 这在过去
  • 如何在 Rails 3 中使用 Ransack 范围?

    在我的小部件模型中 我有以下内容 scope accessible to lambda user if user has role admin self all else roles user roles role ids roles ea
  • 如何中断BufferedReader readLine

    我正在尝试在多个线程中逐行读取套接字的输入 我怎样才能打断readLine 这样我就可以优雅地停止它正在阻塞的线程 编辑 赏金 可以在不关闭套接字的情况下完成吗 不关闭套接字 困难的问题不是BufferedReader readLine 但
  • iOS / C:检测音素的算法

    我正在寻找一种算法来确定实时音频输入是否与 144 个给定 且完全不同的 音素对之一匹配 最好是完成这项工作的最低级别 我正在为 iPhone iPad 开发激进 实验性音乐培训软件 我的音乐系统包含 12 个辅音音素和 12 个元音音素
  • ipython笔记本终端不可用[重复]

    这个问题在这里已经有答案了 我安装了 anaconda 我得到了这个 蟒蛇2 7 9 我在 Windows 8 上运行 ipython 笔记本 但终端选项对我不可用 我该如何激活它 请 Windows 不支持 tty 终端 并且 termi
  • 文件上传过程中 Firefox 中的 mozFullPath 是否存在安全风险?

    我正在开发一个小照片应用程序 用户选择一个本地文件并将其推送到画布中window URL createObjectURL file 非常基本的东西 在测试过程中 我短暂地将文件数组的内容转储到控制台 只是为了确保我得到了我想要的东西 我在