当管理员手动更改用户密码时,他们需要在HTML输入中键入(或生成)密码,然后将其提交给PHP。
我如何确保用于安全密码的输入,这意味着特殊/ html字符,例如'>','#',' <'等。
以前,我用过:
<?php htmlspecialchars(strip_tags($password)) ?>
但这是将密码更改为其他内容,我猜测字符实体格式 - 由于通过bcrypt进行单向散列,我无法看到它改变了什么。
编辑:例如,当我检查上述代码的输出时,这是密码*62mA<Edq<Kfx)3y
,它将其输出到*62mA
由于
答案 0 :(得分:4)
没有一般目的&#34;使这些数据对每种情况都安全&#34;工具。您需要使用适当的情况转义。
不要使用strip_tags
等破坏性功能。
如果您想将其放入HTML文档中:执行使用htmlspecialchars
。
如果要将其放入SQL数据库:执行使用预准备语句。
如果您想将其添加到JavaScript中:执行使用json_encode
。
...等......等等。
处理数据的解析器将解码任何转义字符。
那说...... 不要存储密码。 执行 Hash passwords。 执行 Protect passwords。