คำถามติดแท็ก stateless

9
ทำไมถึงกล่าวว่า“ HTTP เป็นโปรโตคอลไร้สัญชาติ”?
HTTP มีคุกกี้ HTTP คุกกี้ช่วยให้เซิร์ฟเวอร์ติดตามสถานะผู้ใช้จำนวนการเชื่อมต่อการเชื่อมต่อล่าสุด ฯลฯ HTTP มีการเชื่อมต่อแบบต่อเนื่อง (Keep-Alive) ซึ่งสามารถส่งคำขอได้หลายรายการจากการเชื่อมต่อ TCP เดียวกัน
170 http  stateless 

2
CSRF Token จำเป็นเมื่อใช้ Stateless (= Sessionless) Authentication?
จำเป็นหรือไม่ที่จะต้องใช้การป้องกัน CSRF เมื่อแอปพลิเคชันต้องอาศัยการพิสูจน์ตัวตนแบบไร้สัญชาติ (โดยใช้บางอย่างเช่น HMAC) ตัวอย่าง: เรามีแอพหน้าเดียว (มิฉะนั้นเราต้องต่อท้ายโทเค็นในแต่ละลิงค์: <a href="...?token=xyz">...</a>. POST /authผู้ใช้จะตรวจสอบตัวเองใช้ ในการตรวจสอบสิทธิ์สำเร็จเซิร์ฟเวอร์จะส่งคืนโทเค็นบางส่วน โทเค็นจะถูกจัดเก็บผ่าน JavaScript ในตัวแปรบางตัวภายในแอพหน้าเดียว โทเค็นนี้จะใช้ในการ จำกัด การเข้าถึง URL /adminที่ชอบ โทเค็นจะถูกส่งภายใน HTTP Headers เสมอ ไม่มีเซสชัน Http และไม่มีคุกกี้ เท่าที่ฉันเข้าใจมี (?!) ไม่ควรใช้การโจมตีข้ามไซต์เนื่องจากเบราว์เซอร์จะไม่เก็บโทเค็นและด้วยเหตุนี้จึงไม่สามารถส่งไปยังเซิร์ฟเวอร์โดยอัตโนมัติได้ (นั่นคือสิ่งที่จะเกิดขึ้นเมื่อใช้คุกกี้ / เซสชั่น) ฉันพลาดอะไรไปรึเปล่า?

2
จะทำการตรวจสอบสิทธิ์แบบไม่ระบุสถานะ (ไม่มีเซสชัน) และไม่ใช้คุกกี้ได้อย่างไร
Bob ใช้เว็บแอปพลิเคชันเพื่อบรรลุบางสิ่งบางอย่าง และ: เบราว์เซอร์ของเขาคือในอาหารจึงไม่สนับสนุนคุกกี้ เว็บแอปพลิเคชันเป็นที่นิยมซึ่งเกี่ยวข้องกับผู้ใช้จำนวนมากในช่วงเวลาหนึ่ง - ต้องปรับขนาดให้ดี ตราบใดที่การเก็บรักษาเซสชันจะจำกัด จำนวนการเชื่อมต่อพร้อมกันและแน่นอนว่าจะนำมาซึ่งการลงโทษด้านประสิทธิภาพที่ไม่สำคัญเราอาจต้องการให้มีระบบที่ไม่ใช้เซสชัน :) หมายเหตุสำคัญบางประการ: เรามีความปลอดภัยในการขนส่ง ( HTTPSและเพื่อนที่ดีที่สุด) หลังม่านที่ได้รับมอบหมายโปรแกรมประยุกต์บนเว็บจำนวนมากของการดำเนินงานเพื่อให้บริการภายนอกในปัจจุบันนามของผู้ใช้ (ระบบเหล่านั้นทำรู้จักบ๊อบเป็นหนึ่งของผู้ใช้) - ที่นี้หมายถึงว่าเราจะต้องส่งต่อให้ข้อมูลประจำตัวของบ๊อบ ตอนนี้เราจะตรวจสอบความถูกต้องของ Bob (ในแต่ละคำขอ) ได้อย่างไร? วิธีใดเป็นวิธีที่เหมาะสมในการนำสิ่งดังกล่าวไปปฏิบัติ การเล่นเทนนิสด้วยข้อมูลประจำตัวผ่านช่องที่ซ่อนอยู่ในรูปแบบ HTML ... ลูกบอลมีข้อมูลประจำตัว ( ชื่อผู้ใช้และรหัสผ่าน ) และไม้ทั้งสองคือเบราว์เซอร์และเว็บแอปพลิเคชันตามลำดับ กล่าวอีกนัยหนึ่งเราอาจขนส่งข้อมูลไปมาผ่านช่องแบบฟอร์มแทนที่จะใช้คุกกี้ ตามคำขอของเว็บแต่ละครั้งเบราว์เซอร์จะโพสต์ข้อมูลรับรอง แม้ว่าในกรณีของแอปพลิเคชันหน้าเดียวอาจดูเหมือนการเล่นสควอชกับกำแพงยางแทนที่จะเล่นเทนนิสเนื่องจากเว็บฟอร์มที่มีข้อมูลรับรองอาจคงอยู่ตลอดอายุการใช้งานของหน้าเว็บ (และเซิร์ฟเวอร์จะได้รับการกำหนดค่าไม่ให้เสนอข้อมูลรับรองกลับ) การจัดเก็บชื่อผู้ใช้และรหัสผ่านในบริบทของหน้า - ตัวแปร JavaScript เป็นต้นต้องมีหน้าเดียวที่นี่ IMHO การตรวจสอบความถูกต้องโดยใช้โทเค็นเข้ารหัส ในกรณีนี้การดำเนินการเข้าสู่ระบบจะส่งผลให้มีการสร้างโทเค็นความปลอดภัยที่เข้ารหัส (ชื่อผู้ใช้ + รหัสผ่าน + อย่างอื่น) โทเค็นนี้จะถูกส่งกลับไปยังไคลเอนต์และคำขอที่จะเกิดขึ้นจะมาพร้อมกับโทเค็น สิ่งนี้สมเหตุสมผลไหม …

8
ไร้สัญชาติ VS ไร้สัญชาติ
ฉันสนใจบทความที่มีข้อมูลที่เป็นรูปธรรมเกี่ยวกับการออกแบบที่ไร้สัญชาติและไร้สัญชาติในการเขียนโปรแกรม ฉันสนใจเพราะต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ แต่ไม่พบบทความดีๆเกี่ยวกับเรื่องนี้เลย ฉันได้อ่านบทความหลายสิบบทความบนเว็บที่พูดคุยเกี่ยวกับเรื่องนี้อย่างคลุมเครือหรือพวกเขากำลังพูดถึงเว็บเซิร์ฟเวอร์และเซสชัน - ซึ่งเป็น 'การแข่งขันแบบ stateful vs stateless แต่ฉันสนใจในการออกแบบแอตทริบิวต์แบบไร้สัญชาติและแบบ stateful ในการเขียนโค้ด . ตัวอย่าง: ฉันเคยได้ยินมาว่าคลาส BL ไร้สัญชาติโดยการออกแบบคลาสเอนทิตี (หรืออย่างน้อยนั่นคือสิ่งที่ฉันเรียกพวกเขาเช่น Person (id, name, .. )) เป็นสถานะ ฯลฯ ฉันคิดว่าสิ่งสำคัญที่ต้องรู้เพราะฉันเชื่อว่าถ้าฉันเข้าใจมันฉันจะเขียนโค้ดได้ดีขึ้น (เช่นความละเอียดในใจ) อย่างไรก็ตามสั้น ๆ จริงๆนี่คือสิ่งที่ฉันรู้ว่า 'การแข่งขันแบบ stateful vs stateless: Stateful (เช่น WinForms): จัดเก็บข้อมูลเพื่อใช้งานต่อไป แต่จำกัดความสามารถในการปรับขนาดของแอปพลิเคชันเนื่องจากถูก จำกัด โดยขีด จำกัด ของ CPU หรือหน่วยความจำ ไม่มีสถานะ (เช่นเดียวกับ ASP.NET - …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.