Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何清理WordPress中的用户密码信息?_Php_Wordpress - Fatal编程技术网

Php 如何清理WordPress中的用户密码信息?

Php 如何清理WordPress中的用户密码信息?,php,wordpress,Php,Wordpress,我正在我的WordPress网站上的自定义注册表中捕获用户名、电子邮件和密码。我正在使用sanitize\u user()和sanitize\u email()清理电子邮件地址来清理用户名 例如: $username = sanitize_user( $username ); $email = sanitize_email( $email ); 我应该如何清理用户输入的密码?我能想到的就是清理文本字段($pass),但我肯定这不是正确的方法 参考: 消毒不一定能防止注射。为了避免这种情况

我正在我的WordPress网站上的自定义注册表中捕获用户名、电子邮件和密码。我正在使用
sanitize\u user()
sanitize\u email()
清理电子邮件地址来清理用户名

例如:

$username = sanitize_user( $username );
$email = sanitize_email( $email );
我应该如何清理用户输入的密码?我能想到的就是清理文本字段($pass),但我肯定这不是正确的方法

参考:


    • 消毒不一定能防止注射。为了避免这种情况,您需要使用预先准备好的语句——或者在WordPress的情况下,使用

      清理只会删除无效字符,在上面给出的情况下,它会删除用户名中不允许的字符,或有效电子邮件地址中不允许的字符。密码允许许多不同的字符类型,因为这是它们“强大”的原因,所以你不想删除它们


      如果您使用创建WP用户,则无需对其进行任何清理,该函数将为您解决所有问题。

      如前所述,您可以使用
      清理文本字段()
      函数。它可能会导致一些带有特殊字符的疯狂密码等问题

      但是应该没问题。

      消毒和过滤器关闭状态(2021年)WordPress
      5.7

      用户通行证默认情况下:

      • 散列
        user\u pass
        via
      不应进行消毒


      用户登录默认情况下:

      • 通过对用户登录进行清理
      • 通过过滤
        用户登录名
      • 通过过滤
        用户登录名
        。(最多60个字符)
      • user\u登录
        via与用户进行比较
      • user\u登录
        via与非法用户登录进行比较

      用户名默认情况下:

      • 通过清理
        user\u nicename
      • 过滤
        user\u nicename
        via。(最多50个字符)
      • 通过清理
        user\u nicename

      用户电子邮件默认情况下:

      • 没有明显的消毒。
      • 过滤
        user\u电子邮件
        via
      • user\u email
        via与旧邮件进行比较
      • user\u email
        via与旧邮件进行比较

      用户名
      显示姓名
      昵称
      说明
      ,默认情况下:

      • 没有明显的消毒。
      • 没有明显的过滤器。
      • 没有明显的比较。

      来源
      • user.php
        @

      为什么要清理密码?如果我创建一个使用强密码的帐户,我不希望网站削弱它,因为我假设你清理了所有东西,以防有人试图向数据库中注入令人讨厌的东西?密码由
      wp\u insert\u user()
      散列。够了吗?散列就够了。。。生成的散列创建一个字符串,该字符串只包含可插入数据库的有效字符(无引号等),并且不包含可添加到数据库中的任何字符出于兴趣,
      wp\u insert\u user()
      如何进行清理?您可以在中看到它。它使用
      sanitize\u user()
      作为用户名和密码。正如@markbarker在上面所说的,对密码进行哈希处理就足够了。当然,WP正确地处理了数据库插入,所以没有注入的机会——我相信这是您最初关心的问题。我注意到了core中的
      sanitize\u user()
      WP\u hash\u password()
      。我没有注意到任何与清理电子邮件地址有关的事情。我错过了吗?或者用户的电子邮件是否未初始化插入数据库?在注册和登录过程中限制密码字段的字符数仍然是一个好主意。通过wp\u insert\u user查看,您似乎仍然需要对诸如first\u name、last\u name、user\u email、display\u name、,根据您提交的字段,您不需要清理WordPress的密码字段,因为wp\U insert\U user或wp\U update\U user将散列数据,这将清理数据。您可以使用
      sanitize_text_field
      ,但这会使一些密码失败,并将大约%20个值转换为HTML实体,如空格或字符等。