มันเพียงพอหรือไม่ที่จะรักษาความปลอดภัยหน้าสถานะคำสั่งซื้อโดยใช้ URL แบบสุ่ม?


11

หลังจากลูกค้า (นิติบุคคล) ซื้อสินค้าบางอย่างในร้านค้าออนไลน์ของเราเราส่งอีเมลพร้อมภาพรวมสิ่งที่เขาซื้อให้เขา

เราต้องการแจ้งให้ลูกค้าของเราทราบเกี่ยวกับการชำระเงินที่ได้รับการติดตามแพ็คเก็ตและอื่น ๆ ฉันจะแก้ปัญหานี้โดยการกำหนดรหัสสุ่มแบบสุ่มและเพิ่มลิงก์ไปยังจดหมายแต่ละฉบับ ลิงก์อาจเป็นดังนี้: http://shop.foo.bar/order/rwklvc46g9wt7kvy09f1

คุณจะใช้มาตรการเพิ่มเติมเพื่อปกป้องข้อมูลหรือไม่ หรือเลือกทางออกที่แตกต่างอย่างสิ้นเชิง?

ข้อดี:

  • ไม่มีการอัพเดทสถานะที่น่ารำคาญต่อจดหมาย (โดยเฉพาะอย่างยิ่งหากมีการอัพเดทบ่อยครั้ง)
  • แหล่งข้อมูลเดียว (ไม่ล้าสมัย)
  • ใช้ร่วมกันได้ (เช่นเจ้านายหรือเพื่อนร่วมงานของเขา)

ข้อเสีย:

  • ข้อมูลส่วนตัวที่เปิดเผยบนเว็บไซต์ที่สาธารณชนเข้าถึงได้ (เช่นหมายเลขโทรศัพท์รายละเอียดการชำระเงิน)

4
สวัสดีแดนยินดีต้อนรับสู่เว็บมาสเตอร์ คุณดูเหมือนจะสร้างผู้ใช้ที่เหมือนกันสองคน (?) และแก้ไขคำถามของคุณกับ"Dan" คนอื่น - เพราะสิ่งนี้อยู่ในคิวรอการอนุมัติ ผู้ใช้ที่ถามคำถามสามารถแก้ไขคำถามของตนเองได้อย่างอิสระและแสดงความคิดเห็นเกี่ยวกับคำตอบอื่น ๆ "แดน" คนอื่นไม่มีชื่อเสียงพอที่จะทำสิ่งใดสิ่งหนึ่ง - เพราะพวกเขาไม่ได้ถามคำถาม
MrWhite

คำตอบ:


8

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

โซลูชันระดับกลางคือตรวจสอบให้แน่ใจว่าหน้าสถานะไม่มีข้อมูลส่วนบุคคลเพียงข้อมูลทั่วไป ตัวอย่างเช่น 'ชำระเงินด้วย CC' แทน 'ชำระเงินด้วย VISA 1234567891' และ 'ส่งแล้ว' แทน 'ส่งถึง John Doe, 123 Blue Street' เป็นต้น


0

ฉันคิดว่าคุณควรปกป้องข้อมูลนั้นมากกว่า สำหรับความเรียบง่ายของระบบฉันยอมรับอย่างสูงว่า URL สาธารณะที่มีสตริงแบบสุ่มและไม่ซ้ำกันนั้นเพียงพอและสะดวกสบาย

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

เว็บไซต์ช้อปปิ้งส่วนใหญ่ที่ทำกับสถานการณ์ประเภทนี้จะขอข้อมูลประจำตัว (ล็อกอิน / รหัสผ่าน) หรือหมายเลขติดตามด้วยรหัสติดตามหรือสิ่งที่ผู้ใช้หรือฝ่ายที่เชื่อถือได้ของผู้ใช้เท่านั้นอาจมี


-1

ใช่มันพอเพียงตราบใด:

  1. คุณเพียงแค่ส่งลิงค์ทางอีเมลและอย่าส่งไปยัง Google แต่ตามคำถามของคุณสิ่งนี้คือสิ่งที่คุณทำดังนั้นจึงไม่มีทางที่ Google จะได้รู้จักลิงก์ดังนั้นมันจะไม่ถูกทำดัชนี / รวบรวมข้อมูล

  2. คุณสร้างรหัสที่ใช้ในลิงค์สุ่มและยาวพอเหมาะ หากไม่ใช่แบบสุ่ม แต่คุณใช้จำนวนเต็มแบบเพิ่มที่ง่ายเป็น ID หนึ่งในลูกค้าของคุณสามารถแยกแยะได้ง่ายๆโดยการป้อนตัวเลขแบบง่าย ๆ แบบเพิ่มหน่วยในลิงก์เขาสามารถอ่านคำสั่งซื้ออื่น ๆ ทั้งหมดได้ ถ้ามันสุ่ม แต่ไม่นานพอ (สมมติว่ามันทำจากตัวเลขเพียง 4 หลัก / ตัวอักษร) มันจะง่ายแม้กับพีซีที่บ้านเพื่อบังคับโจมตีคำสั่งของคุณฉันจะต้องลอง (26 + 10) ^ 4 = ชุดค่าผสมที่เป็นไปได้ 1,679,616 รายการ สมมติว่าฉันรันสคริปต์ที่ลองหนึ่งลิงก์ต่อวินาทีมันจะใช้เวลากับสคริปต์น้อยกว่า 20 วันเพื่อบังคับให้ลิงก์ทั้งหมดเป็นไปได้และอ่านคำสั่งซื้อทั้งหมดของคุณ

  3. สำคัญ: เพื่อความปลอดภัยที่เพิ่มขึ้นคุณควรลบลิงค์หลังจากผ่านไปหลายวัน (เช่นหลังจาก 1 เดือน) นี่คือเคล็ดลับที่จะทำให้มันปลอดภัย ด้วยวิธีนี้แม้ว่าบางคนพยายามที่จะดุร้ายบังคับให้ลิงก์ของคุณเขาจะต้องใช้พลังการคำนวณขนาดใหญ่มิฉะนั้นการโจมตีของเขาจะไม่เร็วพอที่จะลองชุดค่าผสมที่เป็นไปได้ทั้งหมดก่อนที่จะถูกลบ และแม้ว่าเขาจะมีพลังการคำนวณที่มหาศาลเขาก็แทบจะไม่สามารถทดสอบมากกว่าหนึ่งลิงก์ต่อวินาทีเพราะเซิร์ฟเวอร์ที่จัดการคำสั่งซื้อของคุณอาจเริ่มปฏิเสธการเชื่อมต่อของเขาหากเขาพยายามเชื่อมต่อซ้ำหลาย ๆ ครั้ง FYI: การลบลิงค์ไม่ได้หมายความว่าคุณต้องลบคำสั่งซื้อทั้งหมดใน DB คุณสามารถใช้คีย์หลักอื่นสำหรับตารางคำสั่ง (int autoincrement ง่าย ๆ ) และคุณสามารถใช้ฟิลด์ UNIQUE (ที่อนุญาตให้ NULL) เรียกว่า link_id ซึ่งเป็นที่คุณป้อนในลิงค์ หลังจากหนึ่งเดือนคุณเพียงแค่ต้องลบค่าของ link_id และตั้งค่าเป็น NULL ด้วยวิธีนี้คำสั่งซื้อจะยังคงอยู่ในตารางและสามารถดูได้จากแผงการดูแลระบบของคุณ แต่การเชื่อมโยงโดยตรงจะไม่ถูกต้องอีกต่อไปเพื่อดูหน้าการสั่งซื้อโดยตรง

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