วิธีสร้างหน้าเข้าสู่ระบบที่ปลอดภัย (https)

ฉันสงสัยว่าจะให้บริการหน้าเข้าสู่ระบบอย่างปลอดภัยได้อย่างไร ด้วยเหตุผลบางประการ ฉันไม่สามารถแสดงทุกหน้าด้วย https ได้ ดังนั้นฉันจึงต้องการทำสิ่งนี้: URL ของหน้าของฉันคือ http://www.example.com แต่การเข้าสู่ระบบและลงทะเบียนโดเมนย่อยคือ https://ssl.example.com

แน่นอนฉันมีใบรับรอง SSL ฉันแค่ไม่รู้ว่าจะสร้างกลไกการเข้าสู่ระบบนี้ได้อย่างไร

หน้าตัวอย่างที่ทำงานในลักษณะนั้นคือ ebay.com ตรวจสอบ url ในหน้าแรกและหน้าเข้าสู่ระบบ


person kubut    schedule 05.10.2015    source แหล่งที่มา
comment
เหตุใดคุณจึงไม่สามารถให้บริการทุกหน้าผ่าน https ได้ หากคุณมีใบรับรองสำหรับโดเมนหลัก ก็ควรจะใช้งานได้ดี   -  person Crecket    schedule 05.10.2015
comment
ฉันคิดว่าเขาไม่สามารถให้บริการทุกหน้าด้วย HTTPS ได้เพราะในกรณีนี้โฆษณาของเขาไม่ทำงานอีกต่อไป ^^. นี่เป็นปัญหา... แต่ไม่มีใครชอบบอกเรื่องนี้กับแขกของเขา   -  person Nibbels    schedule 05.10.2015
comment
ตรวจสอบคำตอบของคำถามนี้ คุณสามารถทำได้ในการกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณ ตัวอย่างเช่นใน .htaccess หากคุณใช้ Apache   -  person Alexander Obersht    schedule 05.10.2015


คำตอบ (2)


คำถามของคุณได้รับคำตอบแล้วที่นี่

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

แม้ว่าคุณจะสร้างการเข้าสู่ระบบที่ปลอดภัยด้วยเซิร์ฟเวอร์ B และผู้ใช้เรียกดูบนเซิร์ฟเวอร์ A ผ่านทาง OAuth สิ่งที่ผู้โจมตีต้องทำคือสกัดกั้นโทเค็น OAuth ของตนและปลอมตัวเป็นผู้ใช้ปลายทาง

เพียงใช้ HTTPS . หากเว็บโฮสติ้งของคุณขัดขวางไม่ให้คุณทำเช่นนั้น รับ VPS ราคาถูกและควบคุมเว็บไซต์ของคุณ หากเครือข่ายโฆษณาของคุณขัดขวางไม่ให้คุณทำเช่นนั้น ให้กดดันเครือข่ายโฆษณาเหล่านั้นให้รองรับ HTTPS Adsense ทำได้อยู่แล้ว

person Scott Arciszewski    schedule 05.10.2015

นี่ไม่ใช่เรื่องง่ายและไม่ได้มาตรฐานแต่เป็นไปได้ ปัญหาของคุณคือ จริงๆ แล้วคุณมี 2 เว็บไซต์ที่มีรหัสเซสชัน/คุกกี้ต่างกัน

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

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

สิ่งที่ฉันจะทำ: ฉันจะประดิษฐ์โทเค็นที่ฉันสร้างขึ้นบนแฮชบน session-id ข้อความบางส่วนและโครงสร้างบางอย่างที่มีวันที่หรือปีจริง หรือเพียงตัวเลขสุ่มบางส่วนเป็นโทเค็น คุณบันทึกโทเค็นนี้ลงในฐานข้อมูลของคุณและผู้ใช้ที่ไม่ใช่เซสชัน https จากนั้นส่งผู้ใช้ไปที่ไซต์ HTTPS พร้อมด้วยขั้นตอนการเข้าสู่ระบบของคุณ https://ssl.example.com/?token=234987239427839428347

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

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


นี่เป็นวิธีแก้ปัญหา เป็นไปได้แน่นอน แต่คุณอาจคิดถึงความตั้งใจเริ่มแรกที่จะทำสิ่งนั้น ไม่ใช่ HTTPS ไม่ใช่สิ่งที่ฉันจะแนะนำเป็นการส่วนตัว แต่ในฐานะผู้ดูแลเว็บ ฉันรู้เรื่องโฆษณาและสิ่งอื่นๆ ที่จะขัดขวางไม่ให้ฉันบังคับให้ผู้ใช้ท่องเว็บบน https เหตุใดฉันจึงให้ทางเลือกแก่พวกเขา และพวกเขาไม่สนใจ HTTPS จริงๆ แต่บางคนก็รักมัน

person Nibbels    schedule 05.10.2015
comment
นี่ไม่ใช่เรื่องง่ายและไม่ได้มาตรฐานแต่เป็นไปได้ ปัญหาของคุณคือ จริงๆ แล้วคุณมี 2 เว็บไซต์ที่มีรหัสเซสชัน/คุกกี้ต่างกัน แม้ว่าสิ่งนี้จะไม่ปลอดภัยก็ตาม การเข้าชม/จากเว็บไซต์แรกยังคงสามารถดักจับได้ - person Scott Arciszewski; 05.10.2015
comment
กระบวนการเข้าสู่ระบบนี้จะไม่ปลอดภัยอย่างไร วิธีนี้ทำงานเหมือนกับการรับรองความถูกต้องของ PayPal โดยที่ผู้ขายไม่สามารถดูข้อมูลรับรองการเข้าสู่ระบบของลูกค้าได้ บุคคลที่สามทั้งหมดที่เห็นที่นี่คือโทเค็นนี้ ซึ่งไร้ค่าและเฉพาะเซสชัน เนื่องจากทั้งหมดได้รับการตั้งค่าภายใน - person Nibbels; 05.10.2015
comment
หากคุณเห็นโทเค็น คุณสามารถปลอมตัวเป็นผู้ใช้ได้ นั่นช่างไร้ประโยชน์นัก - person Scott Arciszewski; 05.10.2015
comment
เพียงครั้งเดียวเท่านั้นที่คุณ/ผู้เยี่ยมชม/ขโมยสามารถดูโทเค็นได้ และนั่นคือเมื่อผู้ใช้ถูกส่งไปยังไซต์อื่น ที่นั่นคุณเปิดใช้งานและทำลายโทเค็นด้วยชื่อผู้ใช้และรหัสผ่านของบัญชีผู้ใช้ที่ถูกต้อง หลังจากที่ผู้ที่เพิ่งเข้าสู่ระบบด้วยตนเองใส่ข้อมูลประจำตัวของเขา โทเค็นนี้ไม่มีประโยชน์ และการสื่อสารที่เหลือจะเกิดขึ้นในฐานข้อมูลภายในบางแห่ง - person Nibbels; 05.10.2015
comment
ตรงกันข้ามกับการปรับใช้ HTTPS บนปลายทางของคุณ โซลูชันใดมีความซับซ้อนน้อยกว่า ชิ้นส่วนที่เคลื่อนไหวน้อยกว่า และพื้นผิวการโจมตีที่ลดลง สิ่งที่คุณระบุไว้จะปลอดภัยได้ก็ต่อเมื่อคุณทำลายวิธีการทำงานของอุปกรณ์ปลายทางที่ไม่ปลอดภัยอย่างรุนแรง - person Scott Arciszewski; 05.10.2015
comment
ใช่แล้ว เป็นที่ชัดเจนว่าการใช้ HTTPS จะดีที่สุด แต่ฉันคิดว่าวิธีแก้ปัญหาดังกล่าวจะเป็นทางเลือกที่ดีกว่าการถ่ายโอนรหัสผ่านด้วย POST แบบธรรมดา - person Nibbels; 05.10.2015