gpt4 book ai didi

python - 在 Python PyQt 桌面应用程序中安全地验证和授权用户

转载 作者:太空狗 更新时间:2023-10-29 19:28:24 28 4
gpt4 key购买 nike

我开发的应用程序规定该软件应防止未经授权的访问。为了实现这一点,我使用了基于用户和密码的身份验证以及两个可用角色 - 标准用户和管理员。

这完全是用 Python 实现的,使用 SQLAlchemy 与数据库交互,使用 PyQt 作为用户界面。

输入的密码使用 brcypt 进行哈希处理,然后与数据库中相应用户名的哈希值进行比较(Web 服务中使用的标准身份验证技术)。

身份验证成功后,一个名为 self.authenticatedUser 的变量包含 User 类的 SQLAlchemy 实例。

此实现的结果是任何人都可以编辑登录方法以简单地直接查询数据库以查找用户名为 admin 的 User 类型的对象,并分配返回的 User< 的 SQLAlchemy 实例self.authenticatedUser 并且黑客有权访问系统。

由于我分发的是用 python 编写的软件,黑客(或任何类型的程序员)禁用身份验证机制只需几分钟。此外,我不能在此处使用 Web 服务通过获取登录 token 进行身份验证或授权,因为该软件将在具有 air gap 的环境中使用。 .

有没有具体的方法可以更安全地实现这一点?

  1. 使用本地 MySQL 数据库
  2. 使用安全(相对难以逆向工程可能是合适的)机制。

最佳答案

一切都只是对代码进行逆向工程有多难的问题,所以这里有一些“保护”它的技术。

  • 将您的应用程序预编译为字节码(但有一些工具可以像 uncompyle6 一样将其反编译)
  • 对您的代码使用一些混淆器,使其难以阅读(如 pyminifier )
  • 加密您的应用程序(例如 pyconcrete)
  • 使用用户密码即时加密应用程序本身的重要部分。有了密码,黑客可以重新创建未加密的应用程序,但没有密码,这是不可能的。

关于python - 在 Python PyQt 桌面应用程序中安全地验证和授权用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46726545/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com