Frontend Password change

时间:2016-03-13 作者:Akel

首先,我很抱歉,如果有重复的漫游在某处。。。在过去的一个小时里,我花了大部分时间寻找解决方案,但运气不好,但也许我只是在挑选关键词方面很差劲。

目前正在为客户端开发前端概要文件环境,提供的选项之一是设置和更改密码的能力。

我似乎找不到可靠答案的一件事是,我是否需要对该用户输入密码执行任何安全措施,或者wp\\u update\\u user()函数是否内置了该密码?

我最初认为我需要在传递给wp\\U update\\U user的user\\U pass的字符串上使用wp\\U hash\\U密码。。。当然,这是行不通的,因为它将散列版本作为密码存储到user\\u pass中,然后用户输入的任何内容都将变得无用:P

所以关于如何“正确”允许用户在不使用默认wordpress仪表板的情况下从前端设置和更新密码的安全提示?

提前感谢任何人提供的任何帮助。

快速预览仪表板密码部分的代码:

Portion of the php file that takes the user-input password and stores it

我通过AJAX从表单中获取密码,用$\\u POST获取密码,然后尝试将其放入数据库中。。。只是要确定它是否如此简单,或者是否有我需要考虑的安全措施?

$user_data = array(
    \'ID\'=>$user->ID,
    \'user_pass\'=>$password
);
wp_update_user($user_data);

form input on the frontend

<input type=\'password\' name=\'new_password\' placeholder=\'What would you like your password to be?\' id=\'[xxxx-hidden-for-project-anonymity]\' style=\'text-align: center; text-indent: 0;\'/>

UPDATE - More specific details, step-by-step planned password input

<验证电子邮件地址后,要求用户设置密码我有实现上述所有步骤的代码。我的问题是安全。当从表单到AJAX调用获取密码,然后从函数到数据库获取密码时,我需要实现哪些安全措施?

1 个回复
SO网友:Motaz M. El Shazly

我想你指的是两件不同的事。。

1) Verifying the request.您应该使用WP Nonces验证请求并保护其免受XSS攻击。这应该是所有形式的练习。您还可以通过集成reCAPTCHA.

2) Data Encryption 尝试哈希密码时。在这种情况下,您唯一的选择是使用SSL。使用它将保护客户端和服务器之间的所有数据传输,此外,它还超越了更新密码的单一过程。

相关推荐

Wp_set_password()不起作用!

我创建了一个简单的表单,让我的用户可以更改他们的密码。但有一个问题,我很困惑!我尝试了很多次来更改密码,但我的密码不会被更改wp_set_password() 我真的不知道原因。<?php /* Template Name: user-edit-password */ ?> <?php $user = wp_get_current_user(); $userID = $user->ID; $has_error = false;&#