这种2FA方法是否安全



我遵循这里解释的相同方法。

我正在使用PHPGanga_GoogleAuthenticator,如下所示:

$ga = new PHPGangsta_GoogleAuthenticator();
$qrCodeUrl = $ga->getQRCodeGoogleUrl(urlencode('trading.com/'.$user->email), $user->two_fa_secret);

如果用户的电子邮件地址=someguy@mysite.com,则应用程序将显示";trading.com/someguy@mysite.com&";。第二个参数是用于生成代码的实际秘密。

让我困扰的是,它生成了以下内容:

<img src="https://api.qrserver.com/v1/create-qr-code/?data=otpauth%3A%2F%2Ftotp%2Ftrading.com%252Fsomeguy%2540mysite.com%3Fsecret%3D4UYJ************&amp;size=200x200&amp;ecc=M" alt="Loading....">

实际应用程序的秘密是:XOB*************,所以它不会在URL中暴露实际的秘密。但是这个网址可以不被恶意使用吗?

我想知道:

  1. 如果我不应该使用URL下载二维码,而不是将其与PHPGansta库生成的URL一起显示
  2. 如果api.qrserver.com不是安全威胁,因为我的意思是,他们是谁?我正在向他们发送通过2fa身份验证所需的所有详细信息。因此,api.qrserver.com的漏洞对我来说将是非常糟糕的。或者api.qrserver.com=谷歌,因此可以吗
是的,你没有错。。。这似乎是个糟糕的主意。

这样一来,即使URL中没有出现文字秘密,QR码也足以生成有效的2FA码。

是的,你正在把这个代码发送给第三方。我强烈建议不要这样做。

此外,您正在使用一个名为PHPGangta的库,该库自2016年以来一直没有更新。所有这些都不能建立信任。

最新更新