这句话是什么意思:
验证参数值是否在其预期范围和类型内。不输出调试错误信息和异常
这是在我的申请的审核报告中。这里的参数是认证模块的用户名和密码
推理:应用程序已响应错误消息,指示可能暴露敏感信息的未定义状态。
当认证失败时,您不能向用户提供任何信息。
您不得:
总是返回“不正确的登录名或密码”。
另请注意:许多开发人员将密码存储在字符串中,这是一个非常糟糕的主意,因为您无权访问字符串生命周期。这意味着密码仍然存在于 JVM 中的某个位置。更喜欢将它们存储在 char[] 中并尽快清除它。
这也意味着您不能打印任何允许在 JVM 中找到代表用户的对象的内容。
范围和类型:表明您应该检查字符串长度、允许的字符序列、数据类型(如果尚未完成),通常在身份验证期间,一个应该只指示用户名/密码可能是错误的,而不是指示哪个。任何其他信息,可能会提供对您的身份验证机制的洞察力,它如何针对特定输入类型失败并可能被滥用。