在我的金字塔应用程序中,能够以任何用户身份登录(对于测试/调试,而不是生产)是有用的。我的正常登录过程只是对散列密码进行简单的bcrypt检查。金字塔/ wsgi os.environ后门的安全隐患?
当复制用户提交错误报告,我发现它很有用,只是克隆SQLite数据库,并运行一个简单的脚本这将改变每个人的密码,以一个固定的字符串(只为本地测试)。现在我切换到postgresql这样做不太方便,我正在考虑为我的登录函数安装一个后门。
基本上我希望检查os.environ(从由阿帕奇通过mod_wsgi的加载debug.wsgi文件中设置),用于一个特定的变量“调试”。如果存在,我将允许使用任何密码(对于任何用户)进行登录,绕过密码检查。
这有什么安全隐患?据我了解,当apache加载时,wsgi文件会被发送一次,因此如果production.wsgi文件没有设置该特定变量,攻击者(或无能的用户)可能会欺骗它?
您应该将其命名为'ALLOW_LOGIN_WITH_EMPTY_PASSWORD',然后当它处于活动状态时不允许使用正确的密码登录......虽然我不确定这是如何实现的,因为无论如何您都需要克隆数据库,并且一旦您那么,设置密码就像使用SQLite一样简单。 (并且应该在您获得副本之前通过自动过程完成 - 除去任何其他敏感信息 - ) – Ryan
谢谢,但这并没有直接解决安全问题。 –
好吧,它通过建议更具体的命名来解决您的“无能的用户”情况。 “攻击者”一开始就没有任何意义。 – Ryan