如何将web应用程序的登录和密码数据传递给桌面应用程序而不产生任何安全风险
How to pass login and password data for a web app to a desktop application without causing any security risks
所以我想做以下事情:一个人在线注册并为桌面和web应用程序选择他们的登录名和密码(两个应用程序的登录名和密码相同)然后他们下载桌面应用程序(用c++编写,Qt是跨平台的)然后,登录名和密码自动传递到桌面应用程序,而不需要用户输入这些数据。登录名和密码用于与服务器进行身份验证。
每个版本的桌面应用程序需要单独编码的人的登录名和密码基于他们在网页上注册的事实。
所以这里有一个更简单的解释:1. 用户在网站上注册并选择loginpassword2. 用户在自己的计算机上下载桌面客户端3.用户运行桌面客户端(c++二进制),并从步骤
请求登录名/密码。我希望该软件第一次填写登录/密码自动在步骤3。这可能吗?如何做到不存在安全风险?
主要问题是,任何人都可以执行该程序并获得对用户帐户的访问权。我建议使用一次性登录进行第一次身份验证,并在第一次启动后,通过ssl连接获取用户/密码信息。之后,删除您的一次性登录令牌,并将其替换为实际登录。
我真的不知道你是否要求精确的代码示例或只是想有一个基本的概念…但无论如何,在应用程序中存储登录数据本身存在安全风险。
你看过HTTP认证吗?我不完全了解QT应用程序的下载过程,但是,如果您在web服务器上使用基本/摘要身份验证,那么传播身份验证令牌将是容易和安全的。基本采用64基编码,摘要采用MD5散列。很多库已经实现了这些步骤(Java世界中的Spring Security和Shiro)。
我看到了两种方法:
- 服务器可以为用户提供下载安装包的唯一链接。服务器补丁包使用唯一的一次性密码。因此客户端将能够第一次登录
- 浏览器收集用户计算机的一些信息。如IP、MAC、OS版本等。然后根据这些数据计算出计算机的数字符号。c++二进制文件也是如此。您可以使用该数字签名作为一次性密码。
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- Qt QML桌面应用程序自动化测试
- 需要有关使用 Visual Studio 17 将 QT 桌面应用程序打包为 AppX 格式的指导
- 我可以用C++/WinRT编写一个DLL,供windows桌面应用程序(而不是UWP)或Unity插件使用吗
- 在跨平台桌面/移动应用程序套件中使用 ZeroMQ 来解决架构问题
- Electron应用程序和Win32本机桌面应用程序之间的进程间通信
- QWebView 用于在桌面应用程序中运行 javascript (D3) - 当 HTML 更改时重新加载速度很慢
- 如何从桌面应用程序访问嵌入式ArangoDB
- 应用程序最小化时单击显示桌面/最小化全部
- 如何从 Windows 上的服务在未登录用户的桌面上启动应用程序
- 如何在桌面应用程序中使用WEBRTC进行语音聊天
- 如何防止从浏览器查看图像,但允许在桌面应用程序上
- 我想将使用 VTK、C++ 和 QT 开发的桌面应用程序移植到 Web 应用程序
- 如何为 QT Windows 应用程序设置不同的桌面快捷方式图标和任务栏图标不同
- 编写 Windows 桌面应用程序时,我应该在哪里跟踪我的窗口句柄?
- 在我关闭刚开始的孩子对话框并进入父母对话框之后,我的QT桌面应用程序不断崩溃
- 有没有一种方法可以测量桌面应用程序 UI 响应时间
- 在桌面应用程序中嵌入Elasticsearch
- 带有桌面应用程序的C 微服务
- Windows 10 UWP桌面桥应用程序(C ):调试构建中的VCLIBS依赖关系