浏览器打开任意可执行exe文件方法

思路:通过注册表注册自定义URL协议执行bat脚本,将文件路径作为参数传入

环境:win10

前置问题与条件

问题1:可以从浏览器直接打开可执行文件吗?

答:不能。其实可以通过 ActiveXObject 实现软件直接打开,但是它是不安全的,并且现在被大多数现代浏览器禁止,只能在 ie 使用。而通过注册表自定义URL协议,通过将文件名、操作等作为参数加入URL并由浏览器访问,可以触发协议执行bat脚本执行相应操作。

问题2:如何获取文件的路径?可以从浏览器上通过 <input type="file"> 直接获取吗?

答:问题1我们知道无法在浏览器直接可执行exe文件。从外部打开的话,就需要有文件的路径。但是同样的,现代浏览器禁止从 <input type="file"> 中得到文件的路径信息,将 file.path 定义为 undefined 或者 C:\fakepath\<文件名>,虽然ie浏览器可以,但是需要修改安全设置,也不是很靠谱。无法从浏览器直接获取,就只能指定一个文件夹存放exe的快捷方式了,这个方法需要第一次执行前将需要的可执行文件的快捷方式集中到一个指定文件夹中,虽然有点麻烦,但是总归是获取文件路径的一个办法。

注册自定义URL协议

新建 reg 文件:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\EMTool3]
@="URL:EMTool3 Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\EMTool3\DefaultIcon]
@="EMTool3.exe,1"

[HKEY_CLASSES_ROOT\EMTool3\shell]

[HKEY_CLASSES_ROOT\EMTool3\shell\open]

[HKEY_CLASSES_ROOT\EMTool3\shell\open\command]
@="cmd /c set arg1=%1 & \"C:\\Data1\\ExpManageTool\\handle_file.bat\" %%arg1%%"

EMTool3 为协议名称,C:\\Data1\\ExpManageTool\\handle_file.bat 为执行的bat脚本的位置。

双击reg文件,即可执行注册该URL协议。

eb2042739fc8136a91b49d1118a150e

编写bat脚本

@echo off 

Setlocal enableDelayedExpansion
echo url: [%arg1%]
set m=%arg1%
rem 将url编码改为正常格式
set m=%m:EMTool3://=%
set m=%m:separator=&%
set m=!m:%%5C=/!
rem 取第一个字符
set mode=%m:~0,1%
rem 去除第一个字符得到路径
set m=%m:~1%

echo mode: [%mode%]
echo path: [%m%]

if "%mode%"=="1" (
	echo open exe [%m%]
	goto openExe
	echo done
)
pause

:openExe
rem 实际运行程序的地址在这里配置 %m% 是参数
echo exec: %m%
start "" %m%
rem Setlocal enableDelayedExpansion
rem pause
goto :eof

这里将协议后的第一个字符作为参数,字符 1 表示打开该可执行文件,有需要可以自己在脚本上添加其他功能。

bat编写完成后,放在reg中的指定文件夹下即可。

测试使用

测试URL协议

在浏览器地址输入 <协议名>://1<快捷方式绝对地址> ,1为我定义的打开可执行文件动作的参数,然后回车。

d70a247ecd5fc9c7b3b255866124a76

点击打开。

615af712e8d2b01db2cefff4d92efba

成功打开应用。

9ff8e5ba52fdc890d8fdfdd8611e75c

在前端中使用

在前端中,我们可以在 <input type="file>"> 打开一个文件后获取文件名,然后加上指定文件夹前缀,组成路径,然后使用 windows.open() 函数在新标签页打开该URL。我这里使用的是vue2+element-UI。

<input
    :id="scope.row.cName"
    type="file"
    hidden
    @change="fileChange(scope.row.cName)"
>
    <el-button
    icon="el-icon-folder-opened"
    @click="selectExeFile(scope.row.cName)"
    />
</input>
fileChange(id) {
    const file = document.getElementById(id).files[0]
    let fileName = file.name
    if (fileName.endsWith('.exe')) {
    	fileName = fileName.substring(0, fileName.indexOf('.exe'))
    }
    this.exeUrl = 'EMTool3://1C:\\Data1\\ExpManageTool\\exeList\\' + fileName + '.lnk' // URL构造
    console.log(this.exeUrl)
    window.open(this.exeUrl, '_blank') // 新标签页打开URL
}
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
欢迎使用SYBASE数据库浏览器1.0。她独特的数据库界面显示,体贴的人性化设计定能令您眼前一亮。四大独门绝技:主/从表同步显示更新、 数据块拷贝粘贴、表数据查找替换、任意缩放的打印预览,让您笑傲同侪,独步江湖,复杂的数据库操作从此游刃有余。 一、工具特点: 1 数据库中表及表结构定义、PB扩展属性、Select语法、表数据在同一界面显示,操作简单方便; 2 表及列选择可通过键盘输入快速定位;且列选择定义自动保存,在下次该表打开时仅显示相关定义列; 3 ★自动生成SQL语句,并允许用户修改执行SQL查询,对查询显示的结果可直接修改并保存! 4 ★在表打开时可方便选择需显示或隐藏的列,表数据及时刷新; 5 ★如果某表主键存在外键关联,被其他表引用,可通过右键菜单同时打开所有从表,对相关主键中的数据可 进行主/从表同步修改,彻底摆脱外键约束! 6 ★可自定义主/从表关联。对于物理上没有主/外键关联的表,可在配置文件中进行设置,使其以主/从窗口 方式显示; 7 ★对表中显示的数据进行查找及替换; 8 ★支持表中数据的块拷贝、粘贴!当然数据类型应相同或可自动转换,否则转换结果可能会比较有趣。:-) 9 组合排序及数据过滤,直接点击列标题进行单个字段排序; 10 功能强大的打印预览功能。 本工具使用时需运行库PBDWE60.DLL,PBVM60.dll支持,请到http://pbfind.51.net/dbrowse.htm下载.
扫描无线网络,通过wifi连接电脑,免数据线连接电脑,让手机作为电脑的延伸 对手机和电脑文件执行常规操作(复制、剪切、新建文件夹等) 对文件进行加密和解密。简道.文件柜中可以查看加密后的文件、视频、图像、音频等文件。加密后的文件在简道.文件柜之外不能打开 提供自带的图片浏览器,可浏览加密和未加密图片,提供自动顺序播放和随机播放图片的功能。提供自带的视频播放器,可播放加密和未加密视频。 提供【最近】、【文件柜】和【收藏】功能。“最近”可以记录用户最近打开过的文件,“文件柜”可以对自己的文件进行分类整理。“收藏”可以收藏自己感兴趣的以及需要频繁查看的内容。 使用简道.文件柜需要密码登录。密码可以任意输入,每个输入的密码都有专属于自己的“最近”、“文件柜”、“收藏”。使用密码B登录看不到使用密码A登录时所记录的或者操作的内容,反之亦然。 在使用本软件过程中(如正在观看视频),如锁屏后再开锁,会弹出登录窗口。如果输入的密码和锁屏前输入的密码一致,则可以继续查看文档、图片或者视频。如果输入的密码和锁屏前输入的不一致,则中断锁屏前的操作(如观看文档、视频和图片等),软件展现新密码所对应的界面,这样可有效避免被人有意或者无意查看到敏感内容。
DL 元素 | dl 对象 DT 元素 | dt 对象 DHTML 对象 document 对象 -------------------------------------------------------------------------------- 代表给定浏览器窗口中的 HTML 文档。 成员表 下面的表格列出了 document 对象引出的成员。请单击左侧的标签来选择你想要查看的成员类型。 属性 SHOW: 属性 集合 事件 方法 对象 样式 属性 描述 activeElement 获取当父 document 拥有焦点时获得焦点的对象。 alinkColor 设置或获取元素中所有激活链接的颜色。 bgColor 不赞成。设置或获取表明对象后面的背景颜色的值。 charset 设置或获取用于解码对象的字符集。 cookie 设置或获取 cookie 的字符串值。 defaultCharset 从当前的区域语言中获取默认字符集。 designMode 设置或获取表明文档是否可被编辑的值。 dir 设置或获取表明对象的阅读顺序的值。 doctype 获取与当前文档关联的文档类型声明。 documentElement 获取对文档根结点的引用。 domain 设置或获取文档的安全域名。 expando 设置或获取表明是否可对象内创建任意变量的值。 fgColor 设置或获取文档的前景(文本)颜色。 fileCreatedDate 获取文件创建的日期。 fileModifiedDate 获取文件上次修改的日期。 fileSize 获取文件大小。 implementation 获取当前文档的 implementation 对象。 lastModified 获取页面上次修改的日期,若页面提供的话。 linkColor 设置或获取对象文档链接的颜色。 parentWindow 获取容器对象所在窗口的引用。 protocol 设置或获取 URL 的协议部分。 readyState 获取表明对象当前状态的值。 referrer 获取将用户引入当前页面的位置 URL。 uniqueID 获取为对象自动生成的唯一标识符。 URL 设置或获取当前文档的 URL。 URLUnencoded 获取文档的 URL,去除所有字符编码。 vlinkColor 设置或获取用户已访问过的链接颜色。 XMLDocument 获取对由对象引出的的 XML 文档对象模型(DOM)的引用。 XSLDocument 获取对 XSL 文档的顶层结点的引用。 属性 集合 集合 描述 all 返回对象所包含的元素集合的引用。 anchors 获取所有带有 name 和/或 id 属性的 a 对象的集合。此集合中的对象以 HTML 源顺序排列。 applets 获取文档中所有 applet 对象的集合。 childNodes 获取作为指定对象直接后代的 HTML 元素和 TextNode 对象的集合。 embeds 获取文档中所有 embed 对象的集合。 forms 获取以源顺序排列的文档中所有 form 对象的集合。 frames 获取给定文档定义或与给定窗口关联的文档定义的所有 window 对象的集合。 images 获取以源顺序排列的文档中所有 img 对象的集合。 links 获取文档中所有指定了 HREF 属性的 a 对象和所有 area 对象的集合。 namespaces 获取 namespace 对象的集合。 scripts 获取文档中所有 script 对象的集合。 styleSheets 获取代表与文档中每个 link 或 style 对象的实例相对应的样式表的 styleSheet 对象的集合。 事件 事件 描述 onactivate 当对象设置为活动元素时触发。 onbeforeactivate 对象要被设置为当前元素前立即触发。 onbeforecut 当选中区从文档中删除之前在源对象触发。 onbeforedeactivate 在 activeElement 从当前对象变为父文档其它对象之前立即触发。 onbeforeeditfocus 在包含于可编辑元素内的对象进入用户界面激活状态前或可编辑容器变成控件选中区前触发。 onbeforepaste 在选中区从系统剪贴板粘贴到文档前在目标对象上触发。 onclick 在用户用鼠标左键单击对象时触发。 oncontextmenu 在用户使用鼠标右键单击客户区打开上下文菜单时触发。 oncontrolselect 当用户将要对该对象制作一个控件选中区时触发。 oncut 当对象或选中区从文档中删除并添加到系统剪贴板上时在源元素上触发。 ondblclick 当用户双击对象时触发。 ondeactivate 当 activeElement 从当前对象变为父文档其它对象时触发。 ondrag 当进行拖曳操作时在源对象上持续触发。 ondragend 当用户在拖曳操作结束后释放鼠标时在源对象上触发。 ondragenter 当用户拖曳对象到一个合法拖曳目标时在目标元素上触发。 ondragleave 当用户在拖曳操作过程中将鼠标移出合法拖曳目标时在目标对象上触发。 ondragover 当用户拖曳对象划过合法拖曳目标时持续在目标元素上触发。 ondragstart 当用户开始拖曳文本选中区或选中对象时在源对象上触发。 ondrop 当鼠标按钮在拖曳操作过程中释放时在目标对象上触发。 onfocusin 当元素将要被设置为焦点之前触发。 onfocusout 在移动焦点到其它元素之后立即触发于当前拥有焦点的元素上触发。 onhelp 当用户在浏览器为当前窗口时按 F1 键时触发。 onkeydown 当用户按下键盘按键时触发。 onkeypress 当用户按下字面键时触发。 onkeyup 当用户释放键盘按键时触发。 onmousedown 当用户用任何鼠标按钮单击对象时触发。 onmousemove 当用户将鼠标划过对象时触发。 onmouseout 当用户将鼠标指针移出对象边界时触发。 onmouseover 当用户将鼠标指针移动到对象内时触发。 onmouseup 当用户在鼠标位于对象之上时释放鼠标按钮时触发。 onmousewheel 当鼠标滚轮按钮旋转时触发。 onmove 当对象移动时触发。 onmoveend 当对象停止移动时触发。 onmovestart 当对象开始移动时触发。 onpaste 当用户粘贴数据以便从系统剪贴板向文档传送数据时在目标对象上触发。 onpropertychange 当在对象上发生对象上发生属性更改时触发。 onreadystatechange 当对象状态变更时触发。 onresizeend 当用户更改完控件选中区中对象的尺寸时触发。 onresizestart 当用户开始更改控件选中区中对象的尺寸时触发。 onselectionchange 当文档的选中状态改变时触发。 onstop 当用户单击停止按钮或离开 Web 页面时触发。 方法 方法 描述 attachEvent 将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。 clear 目前尚未支持。 close 关闭输出流并强制将数据发送到显示。 createAttribute 以指定名称创建 attribute 对象。 createComment 以指定数据创建 comment 对象。 createDocumentFragment 创建一个新文档。 createElement 为指定标签创建一个元素的实例。 createEventObject 生成当使用 fireEvent 方法时用于传递事件相关信息的 event 对象。 createStyleSheet 为文档创建样式表。 createTextNode 从指定值中创建文本字符串。 detachEvent 从事件中取消指定函数的绑定,这样当事件触发时函数就不会收到通知了。 elementFromPoint 返回指定 x 和 y 坐标的元素。 execCommand 在当前文档、当前选中区或给定范围上执行命令。 focus 使得元素得到焦点并执行由 onfocus 事件指定的代码。 getElementById 获取对 ID 标签属性为指定值的第一个对象的引用。 getElementsByName 根据 NAME 标签属性的值获取对象的集合。 getElementsByTagName 获取基于指定元素名称的对象集合。 hasFocus 获取表明对象目前是否拥有焦点的值。 mergeAttributes 复制所有读/写标签属性到指定元素。 open 此方法以两种方式工作。该方法打开一个文档用于收集 write 和 writeln 方法的输出。在这种情况下,只使用前两个参数 url 和 name。若指定了附加参数,此方法打开一个窗口,这与 window 对象的 window.open 方法相同。 queryCommandEnabled 返回表明指定命令是否可于给定文档当前状态下使用 execCommand 命令成功执行的 Boolean 值。 queryCommandIndeterm 返回表明指定命令是否处于模糊状态的 Boolean 值。 queryCommandState 返回表明命令当前状态的 Boolean 值。 queryCommandSupported 返回表明当前命令是否在当前区域上支持的 Boolean 值。 queryCommandValue 返回文档、范围或当前选中区对于给定命令的当前值。 recalc 重新计算当前文档中的全部动态属性。 releaseCapture 释放当前文档中对象的鼠标捕捉。 setActive 设置对象为当前对象而不将对象置为焦点。 write 在指定窗口的文档中写入一个或多个 HTML 表达式。 writeln 在指定窗口的文档中写入一个或多个 HTML 表达式,后面追加一个换行符。 对象 元素 对象 描述 BODY body 指定文档主体的开始和结束。 implementation 包含了关于对象支持的模块信息。 location 包含关于当前 URL 的信息。 selection 代表了当前激活选中区,即高亮文本块,和/或文当中用户可执行某些操作的其它元素。 TITLE title 包含文档的标题。 样式 样式属性 描述 compatMode 设置或获取表明此对象是否应用标准兼容模式的值。 注释 此对象在 Microsoft® Internet Explorer 3.0 的脚本中可用。 使用 document 对象可以对 HTML 文档进行检查、修改或添加内容,并处理该文档内部的事件。在 Web 页面上,document 对象可通过 window 对象的 document 属性引用,或者直接引用。 document 对象在主文档的任意时间均可用,但是对于目前正在轻便动态 HTML(DHTML) 行为中使用的 HTML 组件(HTC)来说却不可用。这是因为轻便的行为仅当在 HTC 文件中不使用 document 对象时才可被定义。结果将使得轻便的行为比常规行为运行更加快速和有效率。但是,轻便的 DHTML 行为可以与常规的 DHTML 行为一样的方法访问主文档的 document 对象。 ondocumentready 事件将通知 DHTML 行为包含该行为的主 Web 页面的 document 对象可用。只要 ondocumentready 被触发,行为就可以开始处理主 document 属性。 行为中的脚本可以在 HTC 或主文档中引用 document 对象。如果要在 HTC 文件中编码脚本,应使用 element.document 来引用主文档的 document 对象。 示例 下面的例子使用了 document 对象检查文档标题并在消息框中显示该标题(如果非空)。 if (document.title!="") alert("标题为 " + document.title) 下面的例子演示了在浏览器的状态栏上显示鼠标当前位置的事件句柄函数,所得位置相对于文档的左上角。 SHOWExample <HTML> <HEAD><TITLE>报告鼠标移动</TITLE> <SCRIPT LANGUAGE="JScript"> function reportMove() { window.status = "X=" + window.event.x + " Y=" + window.event.y; } </SCRIPT> <BODY onmousemove="reportMove()"> <H1>欢迎!</H1> </BODY> </HTML> 标准信息 没有应用于此对象的公共标准。 应用到 [ 对象名称 ] 平台 版本 Win32: Unix: Win16: WinCE: Mac: 版本数据当鼠标指向链接或链接获得焦点时在此列出。 CUSTOM, window 将鼠标光标移动到应用到清单中的元素即可显示关于列出平台的可用信息。
灵者编辑器这是一款轻量级、多标签的文本编辑器,除了支持常规的纯文本编辑功能外,还支持文档密钥存储、正则查找替换、文档格式转换、一键排版处理等等,另还有自动打字、批量加解密外部文档、内附正则调试器、即时执行所选文本等特色功能,是代替系统记事本的绝佳工具。   灵者编辑器详细信息: 多标签页:允许同时打开多个文档进行编辑,可以通过菜单【新建-打开】命令(或Ctrl O快捷键)、系统资源管理器的右键菜单【发送到】里的【灵者编辑】项目、直接拖放等方式打开多个文档。 正则功能:使用正则进行替换文本,基于正则的强大功能,使要求复杂的替换工作变得轻松许多安全存储:您可以将重要文档进行加密保护,如此便可确保文档的真实内容只有您自己才可查阅。 格式转换:提供多达 31 个项目的格式转换,如字母大小写互转、全半角互转、繁简体互转、大陆的GBK编码和台湾的Big5编码互转、汉字转为拼音、URL编解码(支持UTF-8)、Base64编解码(邮件标准)、RTF丰富文本(码)到纯文本、获取数据摘要(md5、md4、crc32、md2、sha1)、十六进制和字串的互转、字符和字符代码的互转等等一键排版:支持行处理如去除空行、插入空行、间隔空行、打乱行序,支持行首缩进、删除空格等等另外还有: ● 自动打字,可以把文档逐个字显示出来,类似于人工打字的效果。 ● 批量加解密外部文档,可以同时对任意任意格式的文件进行加密和解密,确保数据安全。 ● 强大完善的正则调试环境,提供正则搜索和替换以及语法学习和教程。 ● 即时对所选文本调用系统定义执行(F5键),如: 所选为网址,即打开浏览器访问该网址。 所选为本地文件文件夹路径,则调用系统资源管理器打开查看。 所选为纯命令如“RegEdit”,则启动系统注册表编辑器。 ● 悬浮窗多功能拖放,实现个性化粘贴。
傲游云浏览器Android版是针对Android系统精心打造的浏览器, 同时也是全球首款拥有云标签、云推送、云下载、云收藏功能的多标签网页浏览器。炫酷的界面,创新的手势操作、阅读模式、应用中心等强大功能,给用户带来畅快的新时代移动浏览体验。 全平台云服务 云推送 - 支持文字、图片、链接、标签在Windows,iOS,Mac间进行数据传输 云分享 - 可将任意网页内容(图片、文字、链接等)通过傲游云浏览器与亲友进行分享 云下载 - 实现用户数据随时随地上传云端,并支持各类下载文件格式 云标签 - 随时同步并打开Windows,iOS,Mac上的标签内容 云同步 - 让账户数据在多平台上瞬间同步 炫酷全屏 全新体验独特的扇形菜单,快捷点划更顺畅 多窗口便利操控,不同页面轻松切换 最大化网页可视面积,自动适配调整网页大小,展现最佳效果 应用中心 手机酷站,海量新闻资讯任你选 Web app方式呈现,结构清晰,即点即用 操作便捷,一键完成 快捷手势 独特手势,快速实现新建、关闭、切换标签等操作,让掌中浏览更便捷 自定义手势,执行更多不同操作 智能悦读 智能预读 -- 提前加载下一页,无需等待,让阅读更顺畅 夜间模式 -- 自定义调节屏幕亮度,使界面柔和,贴心保护眼睛 阅读模式 -- 隐藏无关内容,任意调整文字大小,专注阅读防止干扰 省流模式 浏览网页速度更快更省流量 轻松切换WAP页面打开方式,速度和体验两不误。 更新日志:v4.2.4.2000: [新增] 加入对4.4系统“身临其境”模式的支持 优化国内版本热词抓取逻辑,海外版本加入热词 [优化] 主菜单中恢复全屏模式开关 性能优化,修复bug,提升稳定性
对于 KindEditor 的任意文件上传漏洞,可以采取以下步骤进行防护: 1. 更新到最新版本:及时更新 KindEditor 到最新版本,以确保修复了已知的漏洞。 2. 文件类型白名单:在服务器端进行文件类型白名单限制,只允许上传特定的安全文件类型,并禁止上传可执行文件、脚本文件等危险文件类型。 3. 文件大小限制:限制上传文件的大小,控制上传文件的大小范围,以防止恶意用户上传过大的文件导致服务器资源耗尽。 4. 文件后缀检查:检查文件后缀是否与实际文件类型一致,避免恶意用户通过修改文件后缀绕过文件类型限制。 5. 文件内容检查:对上传的文件进行内容检查,使用杀毒软件或者自定义规则对上传的文件进行扫描,确保上传的文件没有包含恶意代码。 6. 临时文件处理:将上传的文件保存在非 Web 可访问目录下,并限制访问权限,防止用户直接访问上传的文件。 7. 强制下载:在返回上传成功的链接时,强制浏览器将其当做下载文件处理,而不是直接在浏览器打开。 8. 日志监控:监控系统日志,及时发现异常行为,并及时采取相应的防护措施。 请注意,以上措施只是一些基本的防护措施,具体的防护策略需要根据实际需求和系统环境来确定。同时,建议定期对系统进行安全审计和漏洞扫描,及时修补已知漏洞。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值