我开发的应用程序规定软件应该防止未经授权的访问。为了实现这一点,我使用了基于用户和密码的身份验证,有两个可用的角色-标准用户和管理员。在
这完全是在Python中实现的,使用SQLAlchemy与数据库交互,PyQt用于用户界面。在
输入的密码使用brcypt进行哈希处理,然后与数据库中相应用户名的哈希值(web服务中使用的标准身份验证技术)进行比较。在
成功身份验证后,一个名为self.authenticatedUser
的变量保存一个类User
的SQLAlchemy实例。在
这种实现的结果是,任何人都可以编辑login方法,使用username admin直接查询数据库中的User
类型的对象,并将返回的User
的SQLAlchemy实例分配给self.authenticatedUser
,这样黑客就可以访问系统了。在
因为,我正在分发这个用python编写的软件,黑客(或任何程序员)要禁用身份验证机制只需几分钟。另外,我不能在这里使用web服务来通过获取登录令牌进行身份验证或授权,因为该软件将在具有air gap的环境中使用。在
有没有什么具体的方法可以更安全地实现这一点?在
每件事都只是一个代码逆向工程有多难的问题,所以这里有一些技术来“保护”它。在
即使存在气隙,也可以进行维修。但是,如果您不想这样做,您应该保护您的数据,就像您为每个用户提供了一个propper SQL客户机(如pgAdmin或sqlservermanagementstudio)。我建议您开始在数据库级别配置角色/用户。在
因为bcrypt不再被采用,而且您可以很容易地使用SHA2x,我认为您需要考虑使用SHA2x来保证安全性原因。其次,您可以使用JWT,因为它100%地与python一起工作。另外,还要深入了解2因素身份验证,这将是您的安全检查的另一个优点。在
相关问题 更多 >
编程相关推荐