使用浏览器作为桌面 UI

2023-11-21

如何使用浏览器作为桌面应用程序的 UI?到目前为止我想出的方法是......

  1. 使用所有 HTML/Javascript。问题:无法访问文件系统或其他任何内容。
  2. 在使用应用程序时运行本地网络服务器。问题:用户完成后如何杀死它?我的用户的技术水平不足以使用 Ctrl+C。
  3. 在常规 GUI 中嵌入浏览器组件。问题:嵌入式浏览器组件充其量也往往会出现故障。对 Javascript/CSS 的支持永远不如真正的浏览器。
  4. ...?

理想的解决方案适用于任何技术。我知道有一些选择,例如编写 Firefox 扩展,但我希望在后端技术和浏览器独立性方面拥有完全的自由。


请注意,如果您选择运行本地网络服务器,则会带来安全风险。

在同一台计算机上运行的任何了解您的应用程序的网页都可以使用 Javascript 向您的服务器发送请求,并且您没有简单可靠的方法来了解请求的来源。 (不要相信referer header)

使用类似方法的 Google 桌面存在多个实际漏洞,允许任何网页读取磁盘上的任何文件。

有几种方法可以防止这种情况发生;我建议要求每个请求都有一个每台机器随机生成的身份验证密钥(并在某个时候过期),您可以将其放入实际页面的源中。 XHR 保护将阻止恶意网站读取身份验证密钥,从而使其无能为力。

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

使用浏览器作为桌面 UI 的相关文章

  • Android 背景 + 文本 + 按钮图标

    我想要一个图像设置为文本的背景 并在文本的左侧设置一个图标 在iPhone中非常简单 但不知道如何在Android上做到这一点 调整按钮的大小并保持图标 文本的位置和距离正确 iPhone 安卓我有这个 xml代码是
  • 如何使用 console.log 省略文件/行号

    如今 您可以在 Chrome 的控制台中编写非常好的东西 查看this https developer chrome com devtools docs tips and tricks关联 我也做了一个截图 正如您在屏幕截图中看到的那样 文
  • 如何识别当前打开的每个单独的浏览器窗口?

    如何使用 javascript 唯一地识别当前为所有主要浏览器打开的每个单独的浏览器窗口 让我解释一下我需要了解的内容 并考虑以下场景 我有 3 个当前打开的浏览器窗口 任何现代浏览器 即 Chrome Firefox 等 每个窗口都包含多
  • 如何让文字发光?

    我们可以将发光效果应用于任何文本 如下所示 Updated Please also tell me what things i need to create something like this 我需要为此使用特殊字体吗 如何使用以下命令
  • 在浏览器中测试wcf服务

    我无法在浏览器中调用基本的 wcf web 方法 即使使用
  • 如何知道 HTTP 服务器何时完成发送数据

    我正在开发一个面向浏览器 代理的项目 我需要下载网页 向 Web 服务器发送自定义 HTTP 请求后 我开始监听服务器响应 读取响应时 我检查响应标头中的 Content Length row 如果我得到其中之一 很容易确定服务器何时完成发
  • 如何使用现代.fxml和controller.java在javafx 2.x中制作自动完成组合框[重复]

    这个问题在这里已经有答案了 如何使用现代 fxml 和controller java 在 javafx 2 x 中制作一个类似的自动完成组合框 就像制作这个一样 http blog ngopal com np 2011 07 04 auto
  • 关闭 选择文件对话框和 onchange 事件之间存在大量延迟。浏览器有点冻结

    有时我会遇到浏览器本机选择文件对话框的非常奇怪的行为 我有一个
  • Java GUI,根据actionListener更改面板

    我在两个不同的面板中添加了两个按钮 如果单击第一个按钮 则需要转到下一个面板 其中包含第二个按钮 但是当我单击第一个按钮时 该按钮没有被替换 Java GUI import java awt event ActionEvent import
  • 如何在 Javascript 中打开新标签?

    我想在新选项卡中打开我网站的页面 我尝试使用 window open 函数 但似乎不再支持它 这些是我在本地尝试过的一些选项 url localhost 3000 my other page window open url blank OR
  • 我应该使用 QCoreApplication::processEvents() 还是 QApplication::processEvents()?

    我有一个从两者调用的方法QThreads和主线程 这个方法有时可能需要很长时间才能在循环中进行计算 所以我把QCoreApplication processEvents 这可以防止 GUI 冻结 在某个时刻我已经改变了QCoreApplic
  • 处理多个自动重定向的正确方法是什么?

    我有一个网站 基本上允许客户构建一个包含可配置项目的购物车 用户将选择一个项目 系统会提示他们选择他们想要的第一个选项 然后他们将被发送到第二个步骤 在那里他们选择第二个选项 等等 步骤数和选项数是可变的 因为它们是由客户定义的 通常该项目
  • 如何在浏览器的新选项卡上显示Base64图像?

    我有 Base64 编码图像作为响应 如何使用 js 在浏览器的新选项卡中显示该图像 任何人都可以提出解决方案 谢谢 success function base64Image 假设你要得到一张 GIF 图像 Display a base64
  • 切换“确定-取消”和“取消-确定”以强制用户交互?

    这是受到这个问题的启发确定 取消还是取消 确定 https stackoverflow com questions 50335 ok cancel or cancel ok 我记得在某处读到过有关在某些情况下切换 确定 取消 取消 确定 的
  • 从浏览器中删除cookie?

    有什么方法可以指示网络浏览器完全delete一个人的cookie是用PHP设置的吗 我不想expiry或者等待浏览器closed 对于删除 我的意思是实际上不再将其列在 cookie 列表中 尝试这样删除所有 cookie foreach
  • 有没有办法使用 JavaScript 发送 CoAP 命令?

    我只是想知道是否有一种方法可以在浏览器中发送 CoAP 查询 使用 JavaScript 但不能使用 node js Thanks 不幸的是 这不可能直接实现 出于安全原因 Web 浏览器不为 UDP 套接字提供任何 JavaScript
  • PySide / Python GUI 冻结

    我目前正在为 rvplayer 编写一个 GUI 它将使艺术家能够自动渲染带有板岩和老化信息的样片 GUI 使用 PySide 编写并使用 Python 2 7 编写脚本 我的问题是 在调用我的流程并更新我的QProgressBar使用 s
  • 如何在两个类之间共享数据

    Question 有没有一种方法可以让两个类同时相互继承 背景 我目前正在开发一个 Socket Server 项目 在这个项目中 我有两个课程 一个Server类 以及一个GUI班级 他们的目的是不言自明的 但是 我显然需要让两个班级相互
  • 如何使用 JavaScript 将当前页面设置为 about:blank?

    我遇到的情况是服务器可能在当前地址上不可用 因此我想检测到这一点并将页面重定向到 about blank 页面 我该如何使用 JavaScript 来做到这一点 window location href about blank
  • Perl Tk 模块有哪些缺点?

    与在 Perl 中创建 GUI 的其他解决方案相比 Tk 模块有哪些缺点 我最近浏览了 Perl 的各种 gui 模块 这是我的总结 免责声明 最终我发现现有模块都不能满足我的需求 所以我开始编写自己的 gui 工具包 Tk 工作起来很不错

随机推荐

  • 如何将字节切片 (&[u8]) 的缓冲区转换为整数?

    我正在从文件中读取原始数据 我想将其转换为整数 fn main let buf u8 0 0 0 1 let num slice to i8 buf println 1 num pub fn slice to i8 buf u8 gt i3
  • 覆盖删除运算符

    我想在我的班级中覆盖删除运算符 这就是我正在尝试做的事情 但没有成功 class Complex void operator new size t s void operator delete void ptr void Complex o
  • 为什么 JSON 字符串中 double 会转换为 int

    我刚刚编码将一个双值数组放入JsonObject 但是 当我打印它时 我所有的 double 值都会转换为 int 值 有人可以帮助我了解背后发生的事情吗 请让我知道放入原始数组的最佳方法JsonObject public class Js
  • 嵌套列表的 LINQ to Entities 投影

    假设这些物体 class MyClass int ID get set string Name get set List
  • 查询 MongoDB 以获得有序的不同值

    我正在使用 Morphia Java 驱动程序来查询包含以下形式集合的 MongoDB MyCollection TypeA TypeB 我想检索 TypeB 的所有不同值 我使用以下代码执行此操作 DBCollection myCol g
  • ASP.Net MVC 中的实时视频聊天 + 录制解决方案 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想在 ASP NET MVC 中开发一个应用程序 这是详细的场景 应用程序应提供 实时 视频聊天的设施 不应该有任何延迟 可接受的延迟低于 4 秒 但由于这是一次面试 超过 4 秒
  • 适用于 Android 的 Visual Studio 模拟器 - 模拟设备运行需要内部虚拟网络交换机

    Problem 我想用适用于 Android 的 Visual Studio 模拟器但每当我尝试启动它时 它都会失败 日志的最后部分是 27 9 2015 11 10 38 Informational Session Started 27
  • 使用 jQuery 获取多个文件选择的所有值[重复]

    这个问题在这里已经有答案了 可能的重复 使用 javascript 从多文件上传控件中检索文件名 收到
  • 为什么 execve() 的第一个参数必须是可执行文件的路径

    我了解 execve 和系列要求其参数数组的第一个参数与其第一个参数也指向的可执行文件相同 也就是说 在此 execve prog args env args 0 通常与 prog 相同 但我似乎无法找到有关原因的信息 我也理解可执行文件
  • 动态图标 PWA 清单

    我正在使用 angular5 制作一个白色标签 PWA 我想知道是否可以根据 URL 中的信息动态更改清单文件中的 png 图标 我想要为每个独特的组织使用不同的图标 like www mywebsite com organization1
  • 基础的定义必须先于派生合约的定义

    我有两个不同的文件 即 Project1 sol 和 Project2 sol Project2 sol 就像 import Project1 sol contract Project2 address newProject1Address
  • 使用 ggplot 绘制大量时间序列。是否可以加快速度?

    我正在处理数千个气象时间序列数据 可以从此处下载示例数据 https dl dropboxusercontent com s bxioonfzqa4np6y timeSeries txt 在我的 Linux Mint PC 64 位 8GB
  • 使用dispatch_async加速搜索?

    我正在尝试加快我的应用程序搜索速度 当有大量数据时它会出现滞后 所以我正在尝试拆分搜索谓词 on UI通过使用dispatch async not dispatch sync如果我使用它 没有什么不同 问题是当我使用dispatch asy
  • 重新连接后 Chrome net::ERR_HTTP2_PROTOCOL_ERROR 200

    我正在将节点服务器与处理服务器发送事件流的 Express 应用程序一起使用 这是通过启用了 http2 的 NginX 进行代理的 SSE 事件通过 React 应用程序中的 EventSource 来使用 我每 10 秒发送一条心跳消息
  • 记录类型的前向声明

    有没有像标题那样的东西 我正在尝试在转换过程中执行此操作API 结构 并遇到了一些我以前没有遇到过的事情 PFNReaderTranslatedDispatch function var msg TMsg BOOL stdcall PFNR
  • Google 应用引擎实体组

    据我从应用程序引擎教程中了解到 实体组仅出于事务目的而存在 仅在事务需要时才使用实体组 来自教程 位于同一实体组中的定义是具有相同的根 那么 具有超过 1 个层次结构级别有什么用呢 也就是说 为什么我要用 A gt B gt C A是根 B
  • 检查数组中的所有布尔值是否都为 true?

    假设我有这个布尔数组 bool something 4 false false false false 现在 有没有简单的方法可以检查该数组中的所有值是否同时为真 假 而不是这样做 if something 0 false somethin
  • 我必须删除它吗? [Qt]

    在下面的示例中 我是否必须从堆中删除对象 如果是 怎么办 include
  • 我如何准备要发布的 Jetpack compose 应用程序,@Preview 可组合项怎么样?

    我的 Jetpack compose 应用程序的源代码加载了 Preview 可组合项 我通过从源代码中删除所有这些 Preview 可组合项来准备发布我的应用程序 就像我们所做的那样 例如 使用日志方法 有什么办法可以自动化这个删除过程吗
  • 使用浏览器作为桌面 UI

    如何使用浏览器作为桌面应用程序的 UI 到目前为止我想出的方法是 使用所有 HTML Javascript 问题 无法访问文件系统或其他任何内容 在使用应用程序时运行本地网络服务器 问题 用户完成后如何杀死它 我的用户的技术水平不足以使用