ฉันควรเก็บที่อยู่อีเมลไว้เป็นข้อความธรรมดาในฐานข้อมูลหรือไม่


14

เป็นที่ชัดเจนสำหรับทุกคน ( ฉันหวังว่า ) การจัดเก็บรหัสผ่านโดยที่อย่างน้อยก็ไม่ต้องขาย / ใส่รหัสพวกเขาเป็นความคิดที่แย่มาก

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

คำถามนี้ไม่เกี่ยวกับปัญหาเฉพาะทางกฎหมาย (ถึงแม้ว่าจะได้รับ แต่เกี่ยวข้องกับประเทศ) หรือเกี่ยวกับการเข้ารหัสฐานข้อมูลเอง


คิดว่าควรเก็บ PII ทั้งหมด (ข้อมูลส่วนบุคคลที่สามารถระบุตัวตนได้) อย่างปลอดภัย นั่นคือการเข้ารหัสข้อมูลที่แอปพลิเคชันควรต้องการ (เช่นส่งอีเมลยืนยัน) และข้อมูลแฮ / เกลือที่ใช้สำหรับการตรวจสอบสิทธิ์ (เช่นรหัสผ่าน) นอกจากนี้แน่นอนการรักษาความปลอดภัยฐานข้อมูลเป็นสิ่งจำเป็นในกรณีนี้
Ilan Huberman

คุณสามารถตั้งค่าแอปพลิเคชันแยกต่างหากซึ่งเก็บเฉพาะอีเมล + รหัสผ่าน (+ ข้อมูลส่วนตัวอื่น ๆ ) ตัวอย่างเช่น คุณสามารถใช้สิ่งนั้นเพื่อส่งอีเมลโดยเรียกมันตัวอย่างเช่นกับส่วนที่เหลือภายใน api: localEmailServer / sendInvite / 123โดยที่ 123 = รหัสผู้ใช้ คุณสามารถทำเช่นเดียวกันสำหรับการเข้าสู่ระบบโพสต์ไปยังlocalEmailServer / เข้าสู่ระบบซึ่งสามารถกลับจริงหรือเท็จ วิธีนี้ทำให้แอปพลิเคชันของคุณถูกแฮ็ก แต่ก็ยังไม่มีที่อยู่อีเมล หากคุณ จำกัด จำนวนการร้องขอให้บริการนี้จะได้รับการคุ้มครองมากขึ้นเพราะคุณไม่เสี่ยงต่อสิ่งต่าง ๆ เช่น SQL injections ในส่วนนี้
Luc Franken

คำตอบ:


9

การจัดเก็บแฮชเค็มของที่อยู่อีเมลอาจเป็นตัวเลือกหากคุณเก็บบันทึกเหล่านั้นไว้เพื่อยืนยันบัญชี / รับรองความถูกต้อง

ในกรณีอื่น ๆ ดูเหมือนว่าการเข้ารหัสอีเมลจะทำให้งานรักษาฐานข้อมูลได้ยากขึ้นในขณะที่ได้รับผลตอบแทนเพียงเล็กน้อย

การรักษาความปลอดภัยการเข้าถึงฐานข้อมูลนั้นอาจเป็นทางเลือกที่ดีกว่า: โดยปกติจะมีข้อมูลอื่น ๆ มากมายในฐานข้อมูลที่คุณไม่ต้องการรวบรวม


คำถามที่คล้ายกันใน Stackoverflow: มันคุ้มค่าในการเข้ารหัสที่อยู่อีเมลในฐานข้อมูลหรือไม่


ไม่เห็นคำถามนั้น! สำหรับบันทึกมันเป็นคำถามเก่า แต่ฉันเชื่อว่าตอนนี้มันควรจะเป็นโปรแกรมเมอร์
Pierre Arlaud

3
@PierreArlaud: ที่จริงแล้วทุกอย่างจะดีกว่าในเรื่องความปลอดภัยของข้อมูลเพราะมันไม่มีอะไรเกี่ยวข้องกับการเขียนโปรแกรม
Blrfl

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

2

ฉันคิดว่าคุณพูดไปหมดแล้ว

สิ่งเดียวที่ฉันคิดได้คือไม่ใช้ตัวกรองแฮชแบบทางเดียวเช่น SHA1 เพื่อเก็บที่อยู่อีเมล ใช้การเข้ารหัสคีย์สาธารณะบางรายการ (ย้อนกลับได้) ในแอปพลิเคชันของคุณและตรวจสอบให้แน่ใจว่าคีย์ส่วนตัวของคุณอยู่ใกล้กับฐานข้อมูลเพื่อไม่ให้ "ขโมย" เข้าด้วยกัน

ด้วยวิธีนี้คุณยังสามารถยกเลิกการเข้ารหัสที่อยู่อีเมลเพื่อส่งอีเมลได้


6
และ? และ? ใจจดใจจ่อจะฆ่าฉัน :)
ปิแอร์ Arlaud

และอะไร? อะไรที่น่าสงสัย? เข้ารหัส (ถอดรหัส) ในแอปของคุณก่อนที่จะจัดเก็บในฐานข้อมูลหมายความว่าไม่ต้องกังวลถ้าฐานข้อมูลถูกขโมยแฮ็ค ฯลฯ แต่เมื่อคุณต้องการส่งอีเมลคุณสามารถถอดรหัสที่อยู่อีเมลจากฐานข้อมูลไม่ใช่สิ่งที่คุณต้องการ ? ฉันพลาดอะไรไปรึเปล่า?
Mawg กล่าวว่าคืนสถานะโมนิก้า

2
เพียงแสดงความคิดเห็นกับตัวละครตัวสุดท้ายของคำตอบของคุณ: D
Pierre Arlaud

ฉันพยายามค้นหาสิ่งที่คำตอบของคุณบอกว่า manlio ไม่ได้ โดยพื้นฐานแล้วแนวคิดก็คือจะต้องมีการแฮชย้อนกลับได้ของอีเมลเช่นแฮชแบบเค็ม หรือบางทีคุณมีบางสิ่งที่แตกต่างไปจากเดิมอย่างสิ้นเชิงในใจ?
Pierre Arlaud

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