pyramid/wsgi os.environ 后门的安全隐患?

Security implications of a pyramid/wsgi os.environ backdoor?

在我的金字塔应用程序中,能够以任何用户身份登录(对于 test/debug,而非生产环境)非常有用。我的正常登录过程只是对散列密码进行简单的 bcrypt 检查。

在复制用户提交的错误报告时,我发现仅克隆 sqlite 数据库和 运行 一个简单的脚本很有用,该脚本会将每个人的密码更改为固定字符串(仅用于本地测试)。现在我正在切换到不太方便的 postgresql,我正在考虑为我的登录功能安装一个后门。

基本上,我想检查 os.environ(从 debug.wsgi 文件中设置,该文件由 apache 通过 mod_wsgi 加载)是否有特定变量 'debug'。如果它存在,那么我将允许使用任何密码(对于任何用户)登录,绕过密码检查。

这对安全有何影响?据我了解,wsgi 文件在 apache 加载时获取一次,因此如果 production.wsgi 文件未设置该特定变量,攻击者(或不称职的用户)欺骗它的可能性有多大?

为了在环境中实例化具有该调试功能的服务器应用程序,攻击者必须交出您的网络服务器,很可能具有管理权限。

攻击者无法从外部进程修改加载到内存中的 运行 服务器的环境,至少没有调试功能和用于重写内存的有效负载。重新加载服务器或尝试在其中执行脚本会更容易。

我认为你走的路是安全的。如果您偏执,请确保隔离(删除)从构建到生产的后门。