我是asp.net核心身份框架的新手。许多教程,文章和指南似乎以同样的方式处理IdentityError
。它们将错误的描述暴露给用户,即他们将错误的描述添加到ModelState
。
它已被打入我的脑袋,向用户揭露错误是一个可怕的想法,因为它赋予了攻击者权力。
所以我想,它必须取决于描述中可用的信息类型。例如,如果错误是“您的密码太弱”或“您需要输入有效的电子邮件地址”。这种类型的信息对用户有价值,应该可以显示。然而,“数据源花了太长时间才能响应”已经是太多的信息并且提供的价值很小。我宁愿抓住那种类型的错误,并用一些通用的500错误替换它。
所以我的问题是:向用户显示原始身份错误是否安全?如果不是,我如何过滤我应该和不应该向用户显示的内容?
我试着查看MSDN docs以了解我可以收到的所有可能代码。但这些文档提供的信息非常少。
我特意与之合作
var userCreationResult = await userManager.CreateAsync(newUser, password);
但它适用于任何可能出现IdentityError
的情况。