Php 如果只是对用户输入进行散列并将其存储为密码,是否有任何理由逃避用户输入?

Php 如果只是对用户输入进行散列并将其存储为密码,是否有任何理由逃避用户输入?,php,Php,如果只是对用户输入进行散列并将其存储为密码,是否有任何理由逃避用户输入?它永远不会显示在任何地方或输出给用户。在散列/取消散列过程中或在其他任何地方,是否存在代码注入的固有危险?有两种情况下,我们可能希望逃避输入: 当我们把它放在SQL语句中时 当我们输出它时 正如你告诉我们的,第二种情况永远不会发生,如果是这样,我们通常在输出它之前,而不是在将它放入数据库之前,对它进行逃避,所以你很好 第一种情况是预防。如果按照建议使用PDO,并且使用prepare()方法,那么就可以了,因为PDO负责保护字

如果只是对用户输入进行散列并将其存储为密码,是否有任何理由逃避用户输入?它永远不会显示在任何地方或输出给用户。在散列/取消散列过程中或在其他任何地方,是否存在代码注入的固有危险?

有两种情况下,我们可能希望逃避输入:

  • 当我们把它放在SQL语句中时
  • 当我们输出它时
  • 正如你告诉我们的,第二种情况永远不会发生,如果是这样,我们通常在输出它之前,而不是在将它放入数据库之前,对它进行逃避,所以你很好


    第一种情况是预防。如果按照建议使用PDO,并且使用
    prepare()
    方法,那么就可以了,因为PDO负责保护字符串,使其不会影响数据库(基本上是转义的)。

    这取决于散列及其输出内容,以及任何输出是否可能包含sql元字符。e、 真正的sha/md5原始散列只是二进制垃圾,可以自然地包含元字符。如果你在占位符中使用了正确的语句,那么你根本不必担心转义。如果你是,就没有必要转义任何东西。如果你在散列之前转义它,你可以更改它,这样用户键入的密码将不再匹配谢谢大家!我只是想确保我没有忽略任何东西,因为我对PHP太陌生了。