如何处理脚本语言中的用户认证和错误修改?
-
21-09-2019 - |
题
我正在使用 Python/wxPython 构建一个集中式桌面应用程序。其中一项要求是用户身份验证,我正在尝试使用 LDAP 来实现(尽管这不是强制性的)。
该系统的用户将是制定预算的机械和电气工程师,最大的问题将是工业间谍活动。这是一个常见的问题,泄漏通常是通过非正式的方式从底层发生的,这可能会带来问题。该系统的设置方式使得每个用户都可以访问所有且仅其需要的信息,因此除了最高层的人之外没有人拥有整个项目的货币信息。
问题是,对于我能想到的实现身份验证系统的每一种方法,Python 的开放性让我想到至少一种绕过/从系统获取合理信息的方法,因为“编译”使用 py2exe
这是我能在 Windows 上最接近地混淆代码的方法。
我并不是真的想 隐藏 代码,而是使身份验证例程本身安全,使其访问代码并不意味着能够访问应用程序。我想添加的一件事是对访问例程进行某种代码签名,以便用户可以确定他没有运行修改后的客户端应用程序。
我认为避免这种情况的方法之一是制作 C
用于身份验证的模块,但我宁愿不必这样做。
当然,这个问题现在正在发生变化,而不仅仅是“有人能给我指明如何构建在 Python 上运行的安全身份验证系统的正确方向吗?这样的东西已经存在了吗?”,但是“如何强化脚本(Python)以防止错误修改?”
解决方案
如何恶意用户是谁?真。
究竟如何恶意?
如果你的用户是邪恶的反社会并不能以桌面解决方案被信任,然后点击不建立一个桌面解决方案。建一个网站。
如果您的用户是普通用户,他们会从色情网站上安装病毒,恶意软件和键盘记录器,他们试图(一)学习Python(二)学习之前,你的安全工作及(c)如何使一个螺丝环境了在打破它真诚的努力。
如果你确实有台式机的安全问题(即,公共安全,军事等),然后重新考虑使用桌面。
否则,放松,做正确的事情,而不必担心“脚本”。
因为人是懒惰的,并允许SQL注入C ++程序更易于破解。
其他提示
可能:
- 用户将其凭据输入桌面客户端。
- 客户端对服务器说:“嗨,我的名字是用户名,我的密码是密码”。
- 服务器检查这些。
- 服务器对客户端说:“嗨,用户名。这是您的秘密令牌:……”
- 随后,客户端使用秘密令牌和用户名来“签署”与服务器的通信。