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

时间:2014-08-01 09:59:54

标签: php wordpress

我在WordPress网站上的自定义注册表单中捕获用户名,电子邮件和密码。我正在使用sanitize_user()清理用户名,sanitize_email()清理电子邮件地址。

例如:

$username = sanitize_user( $username );
$email = sanitize_email( $email );

我应该如何清理用户输入的密码?我能想到的只是sanitize_text_field( $pass ),但我确信这不是正确的做法。

价:

3 个答案:

答案 0 :(得分:0)

消毒不一定能保护您免受注射。为了防止这种情况,你需要使用准备好的语句 - 或者在WordPress的情况下,使用$wpdb class

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

如果您正在使用wp_insert_user()创建一个WP用户,那么无论如何您都不需要对其进行消毒,该功能将为您完成所有这些操作。

答案 1 :(得分:0)

如前所述,您可以使用length函数。可能会导致某些带有特殊字符等的疯狂密码出现某些问题。

但这应该没关系。

答案 2 :(得分:0)

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


wp_insert_user()user_pass 默认:

不应消毒。


wp_insert_user()user_login 默认:


wp_insert_user()user_nicename 默认:


wp_insert_user()user_email 默认:

  • 没有明显的消毒。
  • 通过 empty() 过滤 user_email
  • 通过 strcasecmpuser_email 与旧的进行比较。
  • 通过 email_exists()user_email 与旧的进行比较。

wp_insert_user()user_urldisplay_namenicknamefirst_namelast_namelast_name、{{ 1}},默认:

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

来源