Learning AtlasIT Support → Cybersecurity
คลังบทอ่าน08.3 / พื้นฐานการทำงานของเว็บบทถัดไป
สารบัญบทอ่าน / Web Foundations / 08.3
02 · เข้าใจเครือข่ายและเว็บ · บท 08.3

Browser State and Delivery

สถานะและการส่งเนื้อหาเว็บ

คำขอเว็บแต่ละครั้งต้องมีวิธีจัดการสถานะและความเร็ว เข้าใจว่าข้อมูลเก็บตรงไหนและใครตรวจมัน

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

session ผูกคำขอหลายครั้งให้เป็นบริบทเดียว

request แต่ละครั้งไม่ได้รู้เองว่าผู้ใช้คนเดิม login ไว้หรือยัง ระบบจึงสร้างบริบทการใช้งาน เช่น session ฝั่ง server และให้ browser ถือ ID ใน cookie จากนั้นทุก request ที่ต้องป้องกันต้องตรวจบริบทกับสิทธิ์ของทรัพยากรอีกครั้ง Cookie เป็นกลไกเก็บส่งข้อมูล Session เป็นแนวคิดบริบท จึงไม่ใช่คำเดียวกัน

ข้อความหรือขั้นที่เกิดตามลำดับsession ผูกคำขอหลายครั้งให้เป็นบริบทเดียว
  1. Login

    ผู้ใช้ส่งหลักฐานผ่านช่องทางที่ปกป้อง Server ตรวจและสร้าง session ตามวิธีของระบบ

  2. Set-Cookie

    Server ให้ browser เก็บ session ID พร้อมคุณสมบัติ domain path Secure HttpOnly และ SameSite ตามการออกแบบ

  3. Next request

    Browser แนบ cookie ตามกฎ Server หา session และตรวจว่าคำขอนี้ทำได้หรือไม่

  4. Cache decision

    เนื้อหาสาธารณะอาจแคชได้ ข้อมูลบัญชีต้องมีนโยบายที่ไม่ส่งสำเนาคนหนึ่งให้อีกคน

  5. Expiry / logout

    ระบบหมดอายุหรือยุติบริบทตามวิธีที่ใช้ Token แบบต่างกันมีวิธีเพิกถอนต่างกัน

Browser ถือ ID ส่วน server เก็บบริบท session
Browser มี cookie session ID server ใช้ ID ค้น session เก็บสิทธิ์แล้วตรวจ resourceBrowser: ID=a7ServerSession storeResource accessCheck identity + session + authorization

Cookie ส่งตามกฎ domain path และ flags Session ID ไม่ควรบรรจุความลับของผู้ใช้ทั้งหมด การได้ ID ไม่ได้ให้สิทธิ์อ่าน resource ทุกชิ้น

Secure จำกัดการส่ง cookie ผ่านช่องทางที่ปลอดภัย HttpOnly ลดการอ่านด้วย script SameSite จำกัดบางการส่งข้ามไซต์ แต่ไม่แทนการออกแบบป้องกัน CSRF ทั้งหมด และ browser cache เป็นคนละชั้น ETag ใช้ตรวจรุ่นของเนื้อหา ไม่ใช่หลักฐานยืนยันตัวตน

01 / 03

คุกกี้และเซสชันCookies and Sessions · 08.3.1

Cookie เป็นข้อมูลที่ browser ส่งตามขอบเขตที่กำหนด Session เป็นวิธีผูกคำขอกับสถานะการใช้งาน

Cookie เป็นข้อมูลที่เบราว์เซอร์เก็บและส่งให้โฮสต์ตามกฎ domain, path และคุณสมบัติของมัน Session คือบริบทการใช้งานที่ระบบติดตาม มักใช้ cookie เก็บ session ID แล้วเก็บข้อมูลจริงไว้ฝั่งเซิร์ฟเวอร์

เทียบหน้าที่เพื่อไม่สับสน
•Cookie

ค่าที่เบราว์เซอร์แนบ

•Session ID

ตัวอ้างอิงการใช้งาน

•Server session

ข้อมูลและสิทธิ์ที่ผูกกับ ID

หลัง login เซิร์ฟเวอร์ส่ง session cookie คำขอถัดไปแนบ ID เพื่อหา session HttpOnly ลดการอ่าน cookie ด้วยสคริปต์ Secure จำกัดการส่งผ่านช่องทางปลอดภัย และ SameSite ควบคุมบางการส่งข้ามไซต์ แต่ยังต้องป้องกัน CSRF ตามแบบระบบ

Cookie Flags and Server Checks (คุณสมบัติ cookie กับการตรวจฝั่งระบบ)

HttpOnly ลดการอ่าน cookie ผ่าน JavaScript แต่ script อันตรายในเว็บยังอาจเรียกคำขอโดย browser แนบ cookie ให้ตามกฎ Secure จำกัดการส่งผ่านช่องทางที่ปลอดภัยตามระบบ SameSite ควบคุมบางการส่งข้ามไซต์ จึงต้องดูทั้ง session design และมาตรการ CSRF ตามรูปแบบแอป

Expiry ฝั่ง browser กับอายุ session ฝั่ง server เป็นคนละการควบคุม Logout ต้องยุติบริบทตามวิธีที่ออกแบบไว้ Session ID ที่ขโมยมาอาจถูกใช้จนหมดอายุหรือเพิกถอนตามระบบ เปลี่ยนรหัสผ่านไม่ได้ยืนยันว่า session เก่าทุกชุดหยุดทันทีในทุกแอป

ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด

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

เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม

02 / 03

แคชและเครือข่ายกระจายเนื้อหาCaching and CDNs · 08.3.2

Cache ใช้สำเนาเพื่อลดการดึงซ้ำ CDN กระจายการส่งเนื้อหาใกล้ผู้ใช้

Cache เก็บสำเนาเพื่อลดการโหลดซ้ำ กระจายสำเนาหรือช่วยส่งเนื้อหาจากตำแหน่งใกล้ผู้ใช้ Cache-Control กำหนดนโยบาย ส่วน ETag ใช้เปรียบเทียบรุ่นเพื่อขอเฉพาะเมื่อเปลี่ยน

เทียบหน้าที่เพื่อไม่สับสน
•Browser cache

สำเนาที่เครื่องผู้ใช้

•CDN cache

สำเนาบริเวณขอบเครือข่าย

•Origin

บริการต้นทางของเนื้อหา

ไฟล์ภาพเก็บได้นานหากชื่อไฟล์เปลี่ยนตามรุ่น แต่หน้าข้อมูลบัญชีต้องกำหนดการเก็บอย่างระมัดระวัง หากเว็บยังแสดงของเก่าให้แยก browser cache, cache และต้นทางก่อนสรุปว่าอัปเดตไฟล์ไม่สำเร็จ

ที่มาของหัวข้อนี้ · คำอธิบายต่อยอด

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

เป็นส่วนต่อยอดที่เขียนเพื่อเชื่อมความเข้าใจ ไม่มีชื่อ Video/Reading เฉพาะที่ยืนยันจาก inventory เดิม

03 / 03

ลำดับการเข้าสู่ระบบAuthentication Flow · 08.3.3

การเข้าสู่ระบบตรวจข้อมูลยืนยันตัวตน แล้วใช้ session หรือ token กับคำขอถัดไป

Authentication ตรวจว่าเป็นใคร Authorization ตรวจว่าทำอะไรได้ การ login ส่งหลักฐานผ่านช่องทางปลอดภัย ระบบตรวจแล้วสร้าง session หรือ token จากนั้นแต่ละ request ต้องตรวจหลักฐานและสิทธิ์อีกครั้งตามที่จำเป็น

อ่านภาพตามลำดับการทำงาน
01Prove identity

ตรวจบัญชีและปัจจัยยืนยัน

02Issue session

สร้างบริบทการใช้งาน

03Authorize request

ตรวจสิทธิ์ของการกระทำ

ผู้ใช้ login ผ่านแล้วไม่ได้หมายถึงดูข้อมูลผู้ใช้อื่นได้ การ logout ต้องยุติบริบทที่ออกแบบไว้ และการหมดอายุหรือเพิกถอนช่วยจำกัดเวลาที่ token ที่ถูกขโมยใช้ได้

ที่มาของหัวข้อนี้ · 2 รายการ

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

เชื่อมความเข้าใจ

นำศัพท์มาเชื่อมกับงาน

ตัวอย่างให้เห็นภาพ

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

สิ่งที่บทนี้เชื่อมไว้

คำขอเว็บแต่ละครั้งต้องมีวิธีจัดการสถานะและความเร็ว เข้าใจว่าข้อมูลเก็บตรงไหนและใครตรวจมัน

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

บันทึกในเบราว์เซอร์นี้
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน

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

MDN · Web development ↗