Jadual Kandungan
回复内容:

关于邮箱找回密码

Jul 06, 2016 pm 01:52 PM
php

关于邮箱找回密码,大概是什么思路实现
谢谢

回复内容:

关于邮箱找回密码,大概是什么思路实现
谢谢

你这个问题很简短,但是涉及的范围很广。

这里面会涉及到很多安全问题,稍有不慎就会有不安全因素。

首先,给你教科书级别的OWASP找回密码设计指南:
https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet

然后给你三篇乌云的文章,用别人的前车之鉴做参考,看看自己有没有类似的不安全设计:

  1. 密码找回逻辑漏洞总结:
    http://drops.wooyun.org/web/5048

  2. 密码找回功能可能存在的问题
    http://drops.wooyun.org/papers/287

  3. 密码找回功能可能存在的问题(补充)
    http://drops.wooyun.org/web/3295

我先说下我的思路:
1.用户输入邮箱,去数据库查询 该邮箱是否存在
2.如果存在,立即生成一个路由连接,比如 www.a.com/lost/passpord/key/bac.html
3.key=>bac bac 是某种算出生成的唯一哈希值,放在redis 等缓存系统中,24小时,或者2小时
内有效,让将这个连接发送到该邮箱中,用户点击链接,执行找回密码
4.在找回密码的时候,第一步验证 redis缓存中是否存在该key 哈希值,再执行update重置密码即可.

一般找回密码都是有时效,所以时间是少不了的,然后需要修改的用户也必须包含在里面。
随便找个带密钥的可逆加密函数处理这两个信息生成一个token就可以了。

我的一个思路不需要用到redis和数据库,完完全全不需要独立存储用户找回密码的hash。

楼上有人说的办法在大型业务中,还得搞几台独立的redis服务器啊,有点烧钱。

我的思路是

  1. 先用`
    md5(用户邮箱,当前时间戳,私钥)+用户邮箱明文,当前时间戳明文

<code>点开这个链接之后先判断时间戳合当前时间之间是否超时。没超时则再次用```
md5(用户邮箱,当前时间戳,私钥)</code>
Salin selepas log masuk

整个过程由于私钥都在服务端脚本,因此只要它不被泄露,这个系统就是安全的 整个过程理论上没什么问题。

楼上都说的比较好 楼主可以总结一下

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles