แนวทางปฏิบัติที่ดีที่สุดสำหรับการรับรองความถูกต้องของเว็บที่ใช้คุกกี้คืออะไร


11

ฉันทำงานเกี่ยวกับโปรเจคเล็ก ๆ ที่ใช้ CGI และ Python (ความสามารถในการขยายตัวไม่ใช่ปัญหาและจำเป็นต้องเป็นระบบที่ง่ายมาก)

ฉันคิดว่าจะใช้การรับรองความถูกต้องโดยใช้คุกกี้และสงสัยว่ามีวิธีปฏิบัติที่ดีที่สุดที่กำหนดไว้หรือไม่

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

คำตอบ:


12

กรณีที่ดีที่สุด: ID เดียวที่เกี่ยวข้องกับข้อมูลอื่น ๆ ทั้งหมดที่คุณต้องการซึ่งจะถูกเก็บไว้ในฐานข้อมูล

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

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

สุดท้ายที่สำคัญที่สุดและมากที่สุด, ปกป้องผู้ใช้ของคุณกับ XSS และ CSRF โจมตี

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

ดาวน์โหลดสคริปต์และให้บริการจากเซิร์ฟเวอร์ของคุณเองหรือใช้ CDN ที่เชื่อถือได้ดีเช่น Google หรือ Yahoo

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

เฟรมเวิร์กเว็บส่วนใหญ่ตอนนี้มีเทคนิคง่าย ๆ สำหรับการรวมโทเค็นนั้น


3
  • ใช้secureและhttpOnlyธง
  • เข้ารหัสข้อมูลคุกกี้เซสชันและเข้ารหัสข้อมูลที่เข้ารหัสด้วย MAC ตรวจสอบลายเซ็นที่เซิร์ฟเวอร์ทุกครั้งก่อนที่จะรบกวนการถอดรหัสข้อมูลคุกกี้เซสชัน (Rails ทำสิ่งนี้ตามค่าเริ่มต้น)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.