我正在研究用于保护本机应用程序登录的表单,并找到了https://auth0.com/docs/flows/concepts/auth-code-pkce。
嗯,我知道在本机应用程序中使用代码流是不安全的,因为用户可以反编译应用程序并获取客户端密码。例如,有了客户秘密,用户可以随时以邮递员的身份呼叫授权服务器。
我看不出添加PKCE(代码验证程序和代码挑战)如何更好。以攻击者的身份,我可以生成一个PKCE对,并模拟与App相同的事物,因为我拥有客户机密,对于我来说PKCE可以给攻击者更多的工作。
我可以随机创建一个代码质询和一个代码验证程序,将代码质询发送到授权服务器,然后使用我的代码验证程序获取请求令牌。
答案 0 :(得分:0)
通常,主要保护措施是仅在您拥有的URL上返回授权响应。对于网络用户界面,这将是基于域的网址,例如:
虽然可能很难在移动应用程序中使用声明的https方案,但由于缺乏供应商/浏览器支持,几乎没有人使用它。
对于自定义URL方案,希望是环境(通过App / Play商店批准)可以防止恶意第三方在没有注册时证明自己来自“我的公司”的情况下注册这样的URL:
您是对的,尽管我没有听说过任何现实的漏洞利用,但这里仍有潜在的差距。