Intereting Posts
Почему мой сайт wp всегда перенаправляется на старый путь к веб-сайту?? настраиваемый сортируемый столбец Зарегистрировать пользователей без подтверждения Отображение страницы профиля зарегистрированного пользователя Как перенести веб-сайт такого размера (Архив: 24 ГБ, БД: 256 МБ) Использование субдомена для загрузки медиа / изображений и т. Д. В 2 разных блогах Изменить тип списка с номеров на верхний регистр в одном / нескольких вариантах – WP-Pro Quiz orderby в WP_QUERY – используйте заказ с панели инструментов Сохранять срок заказа на должность в неиерархической таксономии Какова структура одностраничного макета? Пользовательский тип почтового архива, организованный по категориям Вне цикла Название категории со ссылкой Удалить все сообщения, кроме отмеченного изображения Как я могу сделать свой WordPress общедоступным? В любом случае, указав высоту и ширину аватара?

Используйте user_activation_key для других целей

Мне нужно знать, безопасно ли использовать user_activation_key (из WP_User ) для других целей, таких как проверка электронной почты (функциональность, которую я буду создавать, которая сначала отправит подтверждение по электронной почте, прежде чем активировать созданную учетную запись)?

Итак, вот как все будет работать. Пользователь зарегистрируется, используя мою собственную регистрационную форму, которая будет доступна только на лицевой стороне. После успешной регистрации пользователь будет уведомлен по электронной почте, что учетная запись была создана по ссылке активации, созданной при регистрации, с использованием следующего соглашения:

http://www.example.com/verify/?key=SAMPLEACTIVATIONKEY4321

Считаете ли вы, что это будет безопасно?

Считаете ли вы, что это будет безопасно?

Может быть. Два вопроса.

Вы также должны убедиться, что ключ не догадается. Нет инкрементных чисел. Вы можете использовать что-то вроде wp_generate_password чтобы получить некоторые персонажи из wp_generate_password . Используйте случайную «соль» плюс электронную почту пользователя и время регистрации или uniqid и у вас есть неплохие шансы на обеспечение уникальности (см. Ниже) и создание недопустимого ключа.

 $user_email = some_function_to_get_user_email(); $salt = wp_generate_password(20); // 20 character "random" string $key = sha1($salt . $user_email . uniqid(time(), true)); 

Вам также необходимо обеспечить уникальность ключа: не должно быть никаких столкновений.

Не существует ограничений на столбец user_activation_key в базе данных, который гарантирует уникальность, поэтому это зависит от вашего приложения (например, WordPress и PHP-стороны вещей), чтобы убедиться в этом. Другими словами, до или после генерации ключа убедитесь, что он еще не существует в базе данных. Простой, непроверенный пример:

 <?php $key = some_function_that_generates_a_key(); $res = $wpdb->get_col($wpdb->prepare("SELECT EXISTS(SELECT 1 FROM {$wpdb->users} WHERE user_activation_key = %s)", $key)); if ($res) { // the key exists, try again! } else { // good to go. } 

Если вам нужен руководство, попробуйте посмотреть, как WordPress выполняет сброс паролей. Процесс тот же: создать недопустимый ключ, убедиться, что он уникален, вставить в базу данных с соответствующим пользователем, а затем отправить им электронное письмо со ссылкой для сброса пароля.

Нет, это не безопасно, потому что кто-то это использует. но если вы можете указать свой идентификатор электронной почты, он будет ссылаться на конкретный ключ активации или номер, тогда он безопасен