我正在尝试通过确保数据对特定字段有效来清理输入的任何数据(例如,名称不能包含特殊字符/数字等。)但是,我不知道该怎么做说到密码字段。我甚至需要打扰任何消毒,因为密码只是简单的哈希?如果用户要通过密码文本框注入任何恶意内容,我是否应该检查是否存在任何可疑内容? AFAIK,一些用户可能(应该!)具有特殊字符,例如'< >',这通常会触发潜在的攻击警报。我应该保留密码字段未经过清理吗?限制密码输入对我来说是最后的手段,因为我觉得用户应该在密码中使用各种字符。
由于
答案 0 :(得分:3)
只要您在应用程序中对其进行哈希处理,就应该没问题。
考虑到你正在使用asp.net,有点偏离主题,但一个明显的例外是,如果你使用PHP和MySQL并做这样的事情:
UPDATE users SET password = PASSWORD('$pwd') WHERE userid = $uid
在这种情况下,您首先需要清理$ pwd。
答案 1 :(得分:3)
如果您担心SQL注入攻击,则应该开始使用参数化查询与数据库进行交互。由于确定密码的有效字符是一项业务规则,因此在我的客户不这样做的时候,我不会删除任何内容。
所有其他输入都应该进行清理,因为它们也可能会显示在您的页面输出上,并可能导致XSS攻击。