วิธีที่ดีที่สุดสำหรับการใช้งาน 'ลืมรหัสผ่าน'? [ปิด]


154

ฉันกำลังมองหาวิธีที่ดีที่สุดในการใช้งานคุณสมบัติ "ลืมรหัสผ่าน"

ฉันออกมาพร้อมกับ 2 แนวคิด:

  1. เมื่อผู้ใช้คลิกที่ลืมรหัสผ่านผู้ใช้จะต้องป้อนชื่อผู้ใช้อีเมลและวันเดือนปีเกิดหรือนามสกุล จากนั้นอีเมลที่มีรหัสผ่านชั่วคราวจะถูกส่งไปยังบัญชีอีเมลผู้ใช้ ผู้ใช้ใช้รหัสผ่านชั่วคราวเพื่อเข้าสู่ระบบและรีเซ็ตรหัสผ่านของเขา

  2. คล้ายกัน แต่อีเมลจะมีลิงค์สำหรับให้ผู้ใช้รีเซ็ตรหัสผ่านของเขา

หรือใครก็ตามสามารถแนะนำฉันได้ดีกว่าและปลอดภัยกว่า? ฉันกำลังคิดที่จะส่งรหัสผ่านชั่วคราวหรือลิงก์บังคับให้ผู้ใช้รีเซ็ตรหัสผ่านภายใน 24 ชั่วโมงมิฉะนั้นรหัสผ่านหรือลิงก์ชั่วคราวจะไม่สามารถใช้งานได้ ทำอย่างไร


ฉันติดแท็กโพสต์ใหม่เนื่องจากสิ่งนี้เกินกว่า JSF - คุณอาจได้รับคำตอบมากกว่านี้
McDowell

6
@ เมื่อใดก็ตามที่มีคลื่น "ขอลบคำถามที่ปิดนี้เพราะ XYZ" ใน meta เดือนนี้ ฉันแค่อยากจะบอกว่าคำถามนี้ไม่ควรถูกลบเว้นแต่จะพิสูจน์ได้ว่าการแก้ปัญหานั้นมีข้อบกพร่องและการดำรงอยู่ของมันทำให้เจ็บปวดมากกว่าที่จะช่วยในกรณีของการรักษาความปลอดภัย
Félix Gagnon-Grenier

1
OWASP "cheat sheet" สำหรับกลยุทธ์การกู้คืนรหัสผ่านที่ลืม: owasp.org/index.php/…
daiscog

ลิงค์ที่แนะนำโดย @megaflop เสียไปแล้วเศร้านี่คือลิงค์ใหม่: cheatsheetseries.owasp.org/cheatsheets/…
Marco Bolis

คำตอบ:


187

อัปเดต: แก้ไขเมื่อพฤษภาคม 2556 เพื่อแนวทางที่ดีกว่า

  1. ผู้ใช้ป้อนชื่อผู้ใช้และกด "ลืมรหัสผ่าน" ฉันยังแนะนำตัวเลือกในการป้อนที่อยู่อีเมลแทนชื่อผู้ใช้เพราะบางครั้งชื่อผู้ใช้ก็ถูกลืมเช่นกัน
  2. ระบบมีตารางpassword_change_requestsกับคอลัมน์ID, และTime UserIDเมื่อผู้ใช้ใหม่กดปุ่มบันทึกจะถูกสร้างขึ้นในตาราง Timeคอลัมน์มีเวลาเมื่อผู้ใช้กดปุ่ม "ลืมรหัสผ่าน" IDเป็นสตริง สตริงสุ่มยาวถูกสร้างขึ้น (เช่น GUID) จากนั้นแฮชเหมือนรหัสผ่าน (ซึ่งเป็นหัวข้อที่แยกต่างหากในและของตัวเอง) แฮชนี้จะถูกใช้เป็น 'ID' ในตาราง
  3. ระบบจะส่งอีเมลไปยังผู้ใช้ที่มีลิงค์อยู่ในนั้น ลิงค์นี้ยังมีสตริง ID ดั้งเดิม (ก่อนการแฮช) http://www.mysite.com/forgotpassword.jsp?ID=01234567890ABCDEFการเชื่อมโยงจะเป็นอะไรเช่นนี้ หน้า Forgotpassword.jsp ควรจะสามารถดึงพารามิเตอร์ ID ได้ ขออภัยฉันไม่รู้ Java ดังนั้นฉันจึงไม่เจาะจงมากขึ้น
  4. เมื่อผู้ใช้คลิกลิงก์ในอีเมลผู้ใช้จะถูกย้ายไปยังหน้าของคุณ หน้าจะดึงข้อมูลIDจาก URL แฮชอีกครั้งและตรวจสอบกับตาราง หากบันทึกดังกล่าวจะมีและไม่เกินพูดตลอด 24 ชั่วโมงเก่าผู้ใช้จะนำเสนอกับพรอมต์ให้ป้อนรหัสผ่านใหม่
  5. ผู้ใช้ป้อนรหัสผ่านใหม่, ตกลง, ตกลงและทุกคนใช้ชีวิตอย่างมีความสุขตลอดไป ... จนกระทั่งในครั้งต่อไป!

1
วิธีที่เหมาะสมที่สุดในการดำเนินการนี้คือ - ส่งโทเค็นรีเซ็ตรหัสผ่านชั่วคราวเป็นอีเมลในข้อความธรรมดาให้กับผู้ใช้ (แต่ไม่เคยเก็บไว้เป็นข้อความธรรมดาในฐานข้อมูล) - หลังจากผู้ใช้ป้อนอุณหภูมินี้ทันทีบังคับให้เขา ป้อนรหัสผ่านใหม่อีกครั้ง - สำหรับหวาดระแวงให้แน่ใจว่าเซิร์ฟเวอร์ smtp ของคุณมี ssl ดังนั้นอีเมลของคุณที่มีข้อมูลที่ละเอียดอ่อนจะไม่ถูกสอดแนม สำหรับกรณีส่วนใหญ่วิธีนี้ค่อนข้างปลอดภัย หากกรณีของคุณต้องการความปลอดภัยเพิ่มเติมคุณอาจไม่ควรมีผู้ใช้ที่ลืมรหัสผ่าน: S
Kaushik Gopal

6
เหตุใดจึงต้องสร้างสตริงสุ่ม / guid ให้แฮชและใช้แฮช Guid ไม่เพียงพอหรือไม่
Jeroen K

15
@jeroenk - ดังนั้นถ้ามีคนขโมย DB ของคุณเขาไม่สามารถปลอมลิงค์ "รีเซ็ตรหัสผ่าน" และเปลี่ยนรหัสผ่านของใครบางคน
Vilx-

4
นี่เป็นวิธีการอธิบายการรีเซ็ตรหัสผ่านcrackstation.net/hashing-security.htm#faq
TruthOf42

1
@ David - Ach ฉันต้องการแก้ไขโพสต์ แต่หัวข้อถูกล็อค :( ตกลงให้ลองอีกครั้ง: ตารางของคุณจะประกอบด้วยคอลัมน์: ID, UserID, Time, TokenHash.. คุณจะสร้างสองยาวสตริงสุ่มใส่สายแรก (ที่ "id") ในIDคอลัมน์; กัญชาที่สอง (ที่ "เข็ม" ) และใส่แฮชไว้ในTokenHashคอลัมน์สร้างลิงก์เช่นforogotPassword.jsp?id=asdasd&token=asdasdโทเค็นในลิงก์ไม่ได้ถูกแฮชสิ่งนี้เหมาะสมแล้วหรือไม่
23915 Vilx-

28

ทุกอย่างขึ้นอยู่กับเว็บไซต์ของคุณและระดับความปลอดภัยที่คุณพยายามจะทำ แต่ขั้นตอนพื้นฐานสำหรับแอปพลิเคชันเว็บจะเป็นดังนี้:

  1. ผู้ใช้นำทางไปยังหน้า 'ลืมรหัสผ่านของฉัน' และป้อนชื่อผู้ใช้หรืออีเมล (ไม่ว่าจะเป็นรหัสใด) เพื่อขอรีเซ็ตรหัสผ่าน

  2. ในขั้นตอนนี้คุณสามารถยืนยันคำขอโดยขอข้อมูลเพิ่มเติมเช่นคำตอบของคำถามเพื่อความปลอดภัยที่กำหนดไว้ล่วงหน้าหรือวันเดือนปีเกิดเป็นต้นระดับพิเศษนี้จะหยุดผู้ใช้ที่ได้รับอีเมลที่พวกเขาไม่ได้ร้องขอ

  3. ค้นหาบัญชีของผู้ใช้ บันทึกรหัสผ่านชั่วคราว (มักเป็น GUID) และบันทึกเวลากับบันทึกบัญชี ส่งอีเมลไปยังผู้ใช้ที่มีรหัสผ่านชั่วคราว

  4. ผู้ใช้คลิกที่ลิงค์ที่มีรหัสผ่านชั่วคราวและตัวระบุผู้ใช้ในอีเมลหรือนำทางไปยังหน้า 'ลืมรหัสผ่านของฉัน' และคัดลอกและวางรหัสผ่านชั่วคราวและตัวระบุของพวกเขา ผู้ใช้ป้อนรหัสผ่านใหม่และยืนยัน

  5. ค้นหาบันทึกของผู้ใช้และหากเวลาปัจจุบันอยู่ภายในระยะเวลาที่กำหนด (เช่น 1 ชั่วโมง) ของการประทับเวลาที่บันทึกไว้ในขั้นตอนที่ 2 จากนั้นแฮชและบันทึกรหัสผ่านใหม่ (เห็นได้ชัดว่าเฉพาะรหัสผ่านชั่วคราวเท่านั้น!) ลบ GUID ชั่วคราวและการประทับเวลา

ตัวการหลักคือผู้ใช้จะได้รับรหัสผ่านชั่วคราวที่ให้พวกเขาเปลี่ยนรหัสผ่าน รหัสผ่านที่เก็บไว้เดิม (ควรแฮช!) จะไม่เปลี่ยนเป็นรหัสผ่านชั่วคราวในกรณีที่ผู้ใช้จดจำรหัสผ่าน

รหัสผ่านดั้งเดิมจะไม่ปรากฏแก่ผู้ใช้เนื่องจากควรแฮชและไม่ทราบ

หมายเหตุกระบวนการนี้อาศัยความปลอดภัยทั้งหมดของบัญชีอีเมลของผู้ใช้ ขึ้นอยู่กับระดับความปลอดภัยที่คุณต้องการ ซึ่งเพียงพอสำหรับไซต์ / แอปส่วนใหญ่


24

ทรอยล่าทำให้จุดที่ดีบางอย่างในบทความของเขาทุกสิ่งที่คุณอยากรู้เกี่ยวกับการสร้างคุณลักษณะการรีเซ็ตรหัสผ่านที่ปลอดภัย ข้อความที่ตัดตอนมาที่เกี่ยวข้องมากที่สุดคือ:

[T] ต่อไปนี้เป็นวิธีการทั่วไปสองวิธี:

  1. สร้างรหัสผ่านใหม่บนเซิร์ฟเวอร์และส่งอีเมล
  2. ส่งอีเมล URL ที่ไม่ซ้ำซึ่งจะช่วยในการรีเซ็ต

แม้จะมีคำแนะนำมากมายในทางตรงกันข้ามประเด็นแรกไม่ใช่ที่เราต้องการ ปัญหาในการทำเช่นนี้ก็คือมันหมายถึงรหัสผ่านที่ถาวรซึ่งคุณสามารถกลับไปใช้และใช้งานได้ทุกเวลาตอนนี้ได้ถูกส่งผ่านช่องทางที่ไม่ปลอดภัยและอยู่ในกล่องจดหมายของคุณแล้ว

...

แต่มีปัญหาใหญ่อีกข้อหนึ่งกับวิธีแรกที่ทำให้การล็อคบัญชีที่เป็นอันตรายนั้นง่าย หากฉันรู้ที่อยู่อีเมลของใครบางคนที่เป็นเจ้าของบัญชีในเว็บไซต์จากนั้นฉันสามารถล็อคพวกเขาออกจากมันทุกครั้งที่ฉันโปรดเพียงแค่รีเซ็ตรหัสผ่าน; มันปฏิเสธการโจมตีบริการเสิร์ฟบนจานเงิน! นี่คือสาเหตุที่การรีเซ็ตเป็นสิ่งที่ควรเกิดขึ้นหลังจากตรวจสอบสิทธิ์ของผู้ร้องขอเรียบร้อยแล้ว

เมื่อเราพูดถึง URL รีเซ็ตเรากำลังพูดถึงที่อยู่เว็บไซต์ที่ไม่ซ้ำกับอินสแตนซ์เฉพาะของกระบวนการรีเซ็ต

...

สิ่งที่เราต้องการทำคือสร้างโทเค็นที่ไม่ซ้ำกันซึ่งสามารถส่งในอีเมลโดยเป็นส่วนหนึ่งของ URL รีเซ็ตจากนั้นจับคู่กลับไปที่ระเบียนบนเซิร์ฟเวอร์พร้อมกับบัญชีผู้ใช้ดังนั้นการยืนยันว่าเจ้าของบัญชีอีเมลนั้นเป็นผู้พยายามรีเซ็ต รหัสผ่าน ตัวอย่างเช่นโทเค็นอาจเป็น“ 3ce7854015cd38c862cb9e14a1ae552b” และถูกเก็บไว้ในตารางข้างๆ ID ของผู้ใช้ที่ทำการรีเซ็ตและเวลาที่โทเค็นถูกสร้างขึ้น (เพิ่มเติมในอีกสักครู่) เมื่ออีเมลถูกส่งออกจะมี URL เช่น“ รีเซ็ต /? id = 3ce7854015cd38c862cb9e14a1ae552b” และเมื่อผู้ใช้โหลดหน้านี้จะตรวจสอบโทเค็นและยืนยันรหัสประจำตัวของผู้ใช้ อาจมีการเปลี่ยนแปลง

...

อีกสิ่งหนึ่งที่เราต้องการทำกับ URL การตั้งค่าใหม่คือการ จำกัด เวลาโทเค็นเพื่อให้กระบวนการรีเซ็ตต้องเสร็จสิ้นภายในระยะเวลาที่กำหนดกล่าวภายในหนึ่งชั่วโมง

...

สุดท้ายเราต้องการให้แน่ใจว่านี่เป็นกระบวนการแบบครั้งเดียว เมื่อกระบวนการรีเซ็ตเสร็จสมบูรณ์โทเค็นควรถูกลบเพื่อให้ URL รีเซ็ตไม่ทำงานอีกต่อไป เช่นเดียวกับประเด็นก่อนหน้านี้เพื่อให้มั่นใจว่าผู้โจมตีมีหน้าต่างที่ จำกัด มากซึ่งพวกเขาสามารถใช้ URL ที่รีเซ็ตในทางที่ผิด นอกจากนี้ยังไม่จำเป็นต้องใช้โทเค็นอีกต่อไปหากกระบวนการรีเซ็ตเสร็จสมบูรณ์

เขาให้คะแนนที่ดีมากขึ้นเกี่ยวกับการหลีกเลี่ยงการรั่วไหลของข้อมูล CAPTCHA การตรวจสอบสิทธิ์แบบสองปัจจัยและแน่นอนแนวทางปฏิบัติขั้นพื้นฐานที่ดีที่สุดเช่นการแฮ็กรหัสผ่าน ฉันคิดว่าเป็นเรื่องสำคัญที่จะต้องทราบว่าฉันไม่เห็นด้วยกับทรอยเกี่ยวกับประโยชน์ของคำถามเพื่อความปลอดภัยโดยเลือกที่จะสงสัยการปฏิบัติของบรูซชไนเออร์ :

จุดคำถามเหล่านี้เหมือนกันคือ: รหัสผ่านสำรอง หากคุณลืมรหัสผ่านคำถามลับสามารถยืนยันตัวตนของคุณเพื่อให้คุณสามารถเลือกรหัสผ่านอื่นหรือให้ไซต์ส่งรหัสผ่านปัจจุบันของคุณถึงคุณ มันเป็นความคิดที่ดีจากมุมมองการบริการลูกค้า - ผู้ใช้มีโอกาสน้อยที่จะลืมชื่อสัตว์เลี้ยงตัวแรกของเขามากกว่ารหัสผ่านแบบสุ่ม - แต่น่ากลัวสำหรับความปลอดภัย คำตอบของคำถามลับนั้นคาดเดาได้ง่ายกว่ารหัสผ่านที่ดีมากและข้อมูลสาธารณะก็มีมากขึ้น


1
ลิงค์นั้นมีภาพ NSFW ที่ชัดเจนมีลิงค์สำหรับเปลี่ยนสิ่งนี้ แต่ผู้คนจำนวนมากสแกนหน้าก่อน ความคิดที่โง่!
nik0lai

ลิงก์ไปยังบทความของ Troy Hunt ได้เปลี่ยนไป ไปที่troyhunt.com/everything-you-ever-wanted-to-know
knarfancho

@knarfancho แก้ไขแล้วขอบคุณ!
Dave Liepmann

15

ฉันจะไปกับ:

  1. ถามผู้ใช้สำหรับอีเมลเช็คอีเมลถูกลงทะเบียน
  2. สร้าง GUID และส่งไปที่อีเมลนั้น
  3. อย่ารีเซ็ตรหัสผ่าน
  4. ผู้ใช้คลิกลิงก์จากนั้นต้องป้อนรหัสผ่านใหม่
  5. รีเซ็ตรหัสผ่านหลังจากผู้ใช้อยู่ในไซต์ของคุณและคลิกปุ่มรีเซ็ตหลังจากพิมพ์รหัสผ่านใหม่
  6. ทำให้ GUID นั้นเป็นที่ต้องการภายในระยะเวลาอันสั้นเพื่อให้ปลอดภัยยิ่งขึ้น

ฉันไม่ต้องการรับคำถามหรือไม่ แต่มันเกี่ยวข้องกับคำตอบของคุณ คุณสร้าง GUID อย่างไร
KingAndrew

2
-1 เพื่อไม่ใช้แฮชบางชนิดในลิงก์ที่คุณส่งถึงบุคคล
TruthOf42

11

เมื่อคุณส่งข้อมูลทางอีเมลข้อมูลนั้นจะไม่ปลอดภัย มีหลายวิธีเกินไปที่คนจะได้รับ มันจะเป็นการเล่นของเด็กสำหรับแฮ็กเกอร์ที่มีทักษะที่ต้องการขโมยข้อมูลของคุณ

หลีกเลี่ยงการส่งข้อมูลส่วนบุคคลเช่นรหัสผ่านและข้อมูลรายได้ทางอีเมลเพราะอาจทำให้คุณและองค์กรของคุณผิดหวังหากข้อมูลดังกล่าวถูกขโมยหรือถูกขโมย คิดถึงความปลอดภัยอย่างจริงจัง มันแค่เกิดเหตุการณ์หนึ่งที่อิฐทั้งหมดตกลงมา

ในฐานะที่เป็นสำหรับการเรียกใช้รหัสผ่านอย่างทั่วถึงอ่านลืมรหัสผ่านปฏิบัติที่ดีที่สุด

บรรทัดล่างคือแอปพลิเคชันที่ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดควรอนุญาตให้ผู้ใช้รีเซ็ตรหัสผ่านของตนเอง ควรใช้คำถามความปลอดภัยส่วนบุคคล แอปพลิเคชันไม่ควรส่งอีเมลรหัสผ่านที่แสดงหรือตั้งค่ารหัสผ่านชั่วคราวใด ๆ

แก้ไข: ลิงก์ที่อัปเดต



ฉันลองลิงค์สำหรับลืมรหัสผ่านวิธีปฏิบัติที่ดีที่สุดและมีข้อผิดพลาดเซิร์ฟเวอร์ 500 ข้อ คุณคิดว่าเซิร์ฟเวอร์ล่มหรือเพิ่งจะมีลิงค์อื่นที่จะติดตาม?
KingAndrew


ลิงค์ตายอีกครั้ง
Eric Cope

ที่นี่อีกครั้ง: fishnetsecurity.com/6labs/resource-library/white-paper/…
mustafa

7

ดังที่ได้กล่าวมาแล้วนั้นขึ้นอยู่กับระดับของความปลอดภัยที่ต้องการอย่างไรก็ตามหากคุณต้องการระดับที่สูงขึ้นโซลูชันใหม่ที่ฉันได้เห็น ได้แก่

  • แสดงรหัสผ่านชั่วคราวครึ่งหนึ่งเมื่อข้อมูลประจำตัวของผู้ใช้ได้รับการยืนยัน (คำถามเพื่อความปลอดภัยที่อยู่อีเมล ฯลฯ ) จากนั้นอีกครึ่งหนึ่งจะถูกส่งไปยังบัญชีอีเมล หากบัญชีอีเมลถูกโจมตีเป็นไปได้ยากที่คนคนเดียวกันจะทำการโจมตีกลางคนได้เช่นกัน (เห็นบนเกตเวย์รัฐบาลสหราชอาณาจักร)

  • ยืนยันตัวตนผ่านอีเมลและสื่ออื่น - ตัวอย่างเช่นรหัสที่ส่งทางข้อความไปยังมือถือที่ลงทะเบียน (เห็นบน eBay / PayPal)

สำหรับบางคนที่อยู่ระหว่างสุดขั้วทั้งสองนี้ในการใช้คำถามเพื่อความปลอดภัยอาจเป็นหนทางไปตามที่ DaveG กล่าวถึง


6

หากคุณรวมที่อยู่อีเมลพร้อมการลงทะเบียน ปุ่ม "ลืมรหัสผ่าน" จะส่งอีเมลไปยังที่อยู่อีเมลนั้น ช่วยให้มั่นใจได้ว่าข้อมูลจะถูกส่งไปยังอีเมลที่เชื่อถือได้

(ยกเว้นว่าฐานข้อมูลถูกแฮ็ก แต่ไม่มีอะไรปลอดภัย)


5

ต่อไปนี้เป็นลิงก์ที่ดีมากสามรายการที่ให้ข้อมูลเกี่ยวกับการรีเซ็ตรหัสผ่าน:

  1. http://jtauber.com/blog/2006/03/20/account_management_patterns/

  2. (อย่าให้ผู้ใช้ยืนยันโดยใช้ GET): http://www.artima.com/forums/flat.jsp?forum=106&thread=152805&start=15&msRange=15

  3. http://fishbowl.pastiche.org/archives/docs/PasswordRecovery.pdf

หวังว่าจะช่วย พวกเขาแน่ใจว่าช่วยฉันเข้าใจปัญหา


4

ฉันจะบังคับใช้ที่อยู่อีเมลที่ไม่ซ้ำกันในบัญชีต่างๆ

จากนั้นเป็นเรื่องง่าย ๆ ในการส่งลิงค์ไปยังเพจชั่วคราวที่อนุญาตให้บุคคลนั้นเปลี่ยนรหัสผ่าน (อนุญาต 24 ชั่วโมงหรือน้อยกว่า)

บัญชีอีเมลของผู้ใช้เป็นลิงค์ที่อ่อนแอที่สุดในสถานการณ์นี้


2

อย่าส่งอีเมลรหัสผ่านให้ผู้ใช้ แม้ว่ามันจะถูกสร้างขึ้นโดยอัตโนมัติ วิธีที่ดีที่สุด (แนะนำและใช้โดย SANS และอื่น ๆ ):

  1. ในหน้าลืมรหัสผ่านให้ถามอีเมล / รหัสผู้ใช้และรหัสผ่านใหม่จากผู้ใช้
  2. ส่งอีเมลลิงก์ไปยังอีเมลที่เก็บไว้สำหรับบัญชีนั้นพร้อมลิงก์เปิดใช้งาน
  3. เมื่อผู้ใช้คลิกที่ลิงค์นั้นให้เปิดใช้รหัสผ่านใหม่

หากเขาไม่ได้คลิกลิงก์ภายใน 24 ชั่วโมงหรือมากกว่านั้นให้ปิดการใช้งานลิงก์ (เพื่อไม่ให้เปลี่ยนรหัสผ่านอีกต่อไป)

อย่าเปลี่ยนรหัสผ่านโดยไม่ได้รับความยินยอมจากผู้ใช้ หมายความว่าอย่าส่งอีเมลรหัสผ่านใหม่เพียงเพราะมีคนคลิกที่ลิงค์ลืมรหัสผ่านและหาชื่อบัญชี


13
ฉันกังวลกับเทคนิคนี้ Attacker เข้าสู่อีเมลของคุณและรหัสผ่านใหม่ เจ้าของบัญชีได้รับอีเมลแปลอะไรผิดพลาดและคลิกที่ลิงก์ ผู้โจมตียืนโดยพยายามใช้รหัสผ่านใหม่ทุกนาทีเข้าถึงบัญชีจนกว่าเจ้าของบัญชีจะรู้ว่าเกิดอะไรขึ้นและในที่สุดก็ไปที่หน้า "ลืมรหัสผ่าน"
Odi - Xceed

ปัญหาอื่น! การระบุรหัสผ่านใหม่ในเวลารีเซ็ตรหัสผ่านไม่ใช่ตัวเลือกที่ดี ฉันอาจลืมรหัสผ่านใหม่อีกครั้งหากตรวจสอบอีเมลหลังเวลาทำการ!
Yazid Erman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.