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

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


7
การประชุมเป็นการละเมิด RESTfulness จริง ๆ หรือไม่?
การใช้เซสชันใน RESTful API เป็นการละเมิด RESTfulness หรือไม่ ฉันได้เห็นความคิดเห็นมากมายไปในทิศทางใดทิศทางหนึ่ง แต่ฉันไม่มั่นใจว่าช่วงการประชุมนั้นสงบเงียบ จากมุมมองของฉัน: ไม่รับรองความถูกต้องสำหรับ RESTfulness (ไม่เช่นนั้นจะมีการใช้งานเล็กน้อยในบริการ RESTful) การตรวจสอบความถูกต้องจะกระทำโดยการส่งโทเค็นการตรวจสอบความถูกต้องในคำขอโดยปกติจะเป็นส่วนหัว โทเค็นการรับรองความถูกต้องนี้จะต้องได้รับอย่างใดและอาจถูกเพิกถอนซึ่งในกรณีนี้จะต้องมีการต่ออายุ โทเค็นการตรวจสอบความถูกต้องจะต้องมีการตรวจสอบโดยเซิร์ฟเวอร์ (มิฉะนั้นจะไม่ได้รับการตรวจสอบ) ดังนั้นเซสชันจะละเมิดสิ่งนี้อย่างไร ฝั่งไคลเอ็นต์เซสชันจะรับรู้โดยใช้คุกกี้ คุกกี้เป็นเพียงส่วนหัว HTTP พิเศษ คุกกี้เซสชันสามารถรับและเพิกถอนได้ตลอดเวลา คุกกี้เซสชั่นสามารถมีชีวิตที่ไม่มีที่สิ้นสุดถ้าจำเป็น รหัสเซสชัน (โทเค็นการตรวจสอบความถูกต้อง) ได้รับการตรวจสอบความถูกต้องของฝั่งเซิร์ฟเวอร์ คุกกี้เซสชันนั้นเหมือนกับกลไกการตรวจสอบความถูกต้อง HTTP ส่วนหัวอื่น ๆ ยกเว้นว่าจะใช้Cookieส่วนหัวแทนAuthorizationส่วนหัวกรรมสิทธิ์อื่น ๆ หากไม่มีการเชื่อมต่อเซสชันกับฝั่งเซิร์ฟเวอร์ค่าคุกกี้เหตุใดจึงทำให้เกิดความแตกต่าง การใช้งานฝั่งเซิร์ฟเวอร์ไม่จำเป็นต้องเกี่ยวข้องกับไคลเอนต์ตราบใดที่เซิร์ฟเวอร์ทำงาน RESTful ดังนั้นคุกกี้ด้วยตัวเองไม่ควรทำ API RESTlessและเซสชันเป็นเพียงคุกกี้ให้กับลูกค้า สมมติฐานของฉันผิดหรือเปล่า? อะไรที่ทำให้เซสชันคุกกี้ไม่สงบ ?

26
ตรวจสอบว่าเซสชัน PHP เริ่มขึ้นแล้ว
ฉันมีไฟล์ PHP ที่บางครั้งเรียกจากหน้าเว็บที่เริ่มเซสชันและบางครั้งมาจากหน้าเว็บที่ไม่ได้เริ่มเซสชัน ดังนั้นเมื่อฉันมีsession_start()สคริปต์นี้บางครั้งฉันได้รับข้อความข้อผิดพลาดสำหรับ "เซสชั่นเริ่มแล้ว" สำหรับสิ่งที่ฉันได้ใส่บรรทัดเหล่านี้: if(!isset($_COOKIE["PHPSESSID"])) { session_start(); } แต่ครั้งนี้ฉันได้รับข้อความเตือนนี้: แจ้งให้ทราบล่วงหน้า: ตัวแปรที่ไม่ได้กำหนด: _SESSION มีวิธีที่ดีกว่าในการตรวจสอบว่าเซสชั่นได้เริ่มขึ้นแล้ว? ถ้าฉันใช้@session_startมันจะทำให้สิ่งต่าง ๆ ทำงานอย่างถูกต้องและเพียงแค่ปิดคำเตือน?

22
การทำให้โทเค็น JSON Web Tokens ไม่ถูกต้อง
สำหรับโครงการใหม่ node.js ที่ฉันกำลังทำงานฉันกำลังคิดที่จะเปลี่ยนจากวิธีเซสชันแบบใช้คุกกี้ (โดยสิ่งนี้ฉันหมายถึงการจัดเก็บรหัสไปยังที่เก็บคีย์ - ค่าที่มีเซสชันผู้ใช้ในเบราว์เซอร์ของผู้ใช้) สู่แนวทางเซสชันที่ใช้โทเค็น (ไม่มีที่เก็บคีย์ - ค่า) โดยใช้ JSON Web Tokens (jwt) โครงการนี้เป็นเกมที่ใช้ socket.io - การมีเซสชันที่ใช้โทเค็นจะเป็นประโยชน์ในสถานการณ์ดังกล่าวซึ่งจะมีช่องทางการสื่อสารหลายช่องในเซสชันเดียว (เว็บและ socket.io) หนึ่งจะให้โทเค็น / เซสชั่นไม่ถูกต้องจากเซิร์ฟเวอร์โดยใช้วิธีการ jwt? ฉันยังต้องการที่จะเข้าใจถึงข้อผิดพลาด / การโจมตีที่พบบ่อย (หรือผิดปกติ) ที่ฉันควรระวังด้วยกระบวนทัศน์ประเภทนี้ ตัวอย่างเช่นหากกระบวนทัศน์นี้มีความเสี่ยงต่อการโจมตีประเภทเดียวกัน / แตกต่างกันกับวิธีการจัดเก็บเซสชัน / คุกกี้ตามวิธี ดังนั้นบอกว่าฉันมีดังต่อไปนี้ (ดัดแปลงมาจากสิ่งนี้และสิ่งนี้ ): เข้าสู่ระบบร้านค้าเซสชัน: app.get('/login', function(request, response) { var user = {username: request.body.username, password: request.body.password …


11
ทำไมเมธอด .ajax () ของ jquery ไม่ส่งคุกกี้เซสชันของฉัน
หลังจากเข้าสู่ระบบผ่านทาง$.ajax()เว็บไซต์ฉันพยายามส่ง$.ajax()คำขอที่สองไปยังเว็บไซต์นั้น แต่เมื่อฉันตรวจสอบส่วนหัวที่ส่งโดยใช้ FireBug จะไม่มีคุกกี้เซสชันรวมอยู่ในคำขอ ผมทำอะไรผิดหรือเปล่า?
338 jquery  ajax  session  cookies 

5
เซสชันคืออะไร พวกเขาทำงานอย่างไร
ฉันเพิ่งเริ่มเรียนรู้การพัฒนาโปรแกรมประยุกต์บนเว็บโดยใช้ python ฉันเจอคำว่า 'คุกกี้' และ 'เซสชัน' ฉันเข้าใจคุกกี้ที่พวกเขาเก็บข้อมูลบางอย่างในคู่ค่าคีย์ในเบราว์เซอร์ แต่ฉันมีความสับสนเล็กน้อยเกี่ยวกับเซสชันในเซสชันเราก็เก็บข้อมูลไว้ในคุกกี้บนเบราว์เซอร์ของผู้ใช้ ยกตัวอย่างเช่น - ฉันเข้าสู่ระบบโดยใช้และusername='rasmus' password='default'ในกรณีเช่นนี้ข้อมูลจะถูกโพสต์ไปยังเซิร์ฟเวอร์ที่ควรตรวจสอบและล็อกอินถ้ามีการตรวจสอบสิทธิ์ อย่างไรก็ตามในระหว่างกระบวนการทั้งหมดเซิร์ฟเวอร์จะสร้างรหัสเซสชันซึ่งจะถูกเก็บไว้ในคุกกี้ในเบราว์เซอร์ของฉัน ตอนนี้เซิร์ฟเวอร์ยังเก็บ ID เซสชันนี้ไว้ในระบบไฟล์หรือที่เก็บข้อมูล แต่ตามเพียงแค่ ID เซสชั่นฉันจะทราบชื่อผู้ใช้ของฉันได้อย่างไรในระหว่างการสำรวจผ่านเว็บไซต์ครั้งต่อไป มันเก็บข้อมูลบนเซิร์ฟเวอร์เป็น Dict ที่สำคัญจะเป็นหมายเลขเซสชั่นและรายละเอียดเช่นusername, emailฯลฯ เป็นค่า? ฉันสับสนมากที่นี่ ต้องการความช่วยเหลือ.

4
วิธีใช้ cURL เพื่อส่งคุกกี้
ฉันอ่านแล้วว่าส่งคุกกี้ด้วย curlใช้ได้ แต่ไม่ใช่สำหรับฉัน ฉันมีRESTจุดสิ้นสุดเป็น: class LoginResource(restful.Resource): def get(self): print(session) if 'USER_TOKEN' in session: return 'OK' return 'not authorized', 401 เมื่อฉันพยายามเข้าถึงเป็น: curl -v -b ~/Downloads/cookies.txt -c ~/Downloads/cookies.txt http://127.0.0.1:5000/ * About to connect() to 127.0.0.1 port 5000 (#0) * Trying 127.0.0.1... * connected * Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0) > …

10
ฉันเพิ่งค้นพบว่าทำไมเว็บไซต์ ASP.Net ทั้งหมดจึงช้าและฉันพยายามหาว่าจะทำอย่างไรกับมัน
ฉันเพิ่งค้นพบว่าทุกคำขอในเว็บแอปพลิเคชัน ASP.Net จะได้รับการล็อคเซสชันที่จุดเริ่มต้นของคำขอจากนั้นปล่อยเมื่อสิ้นสุดคำขอ! ในกรณีที่ความหมายของสิ่งนี้หายไปกับคุณเช่นเดียวกับฉันในตอนแรกสิ่งนี้ก็หมายถึงสิ่งต่อไปนี้: เมื่อใดก็ตามที่หน้าเว็บ ASP.Net ใช้เวลาโหลดนาน (อาจเป็นเพราะการโทรฐานข้อมูลที่ช้าหรืออะไรก็ตาม) และผู้ใช้ตัดสินใจว่าพวกเขาต้องการนำทางไปยังหน้าอื่นเพราะพวกเขาเบื่อที่จะรอพวกเขาไม่สามารถ! การล็อกเซสชัน ASP.Net บังคับให้มีการร้องขอหน้าใหม่เพื่อรอจนกว่าคำขอเดิมจะเสร็จสิ้นการโหลดช้าลงอย่างเจ็บปวด Arrrgh เมื่อใดก็ตามที่ UpdatePanel โหลดช้าและผู้ใช้ตัดสินใจที่จะนำทางไปยังหน้าอื่นก่อนที่ UpdatePanel จะอัปเดตเสร็จสิ้น ... พวกเขาไม่สามารถ! การล็อคเซสชันของ ASP.net บังคับให้คำขอหน้าใหม่รอจนกว่าคำขอเดิมจะเสร็จสิ้นการโหลดช้าลงอย่างเจ็บปวด Double Arrrgh! ดังนั้นตัวเลือกคืออะไร จนถึงตอนนี้ฉันก็เกิดขึ้นกับ: ใช้ Custom SessionStateDataStore ซึ่ง ASP.Net รองรับ ฉันไม่ได้พบมากที่นั่นเพื่อคัดลอกและดูเหมือนว่ามีความเสี่ยงสูงและง่ายต่อการเลอะ ติดตามคำขอทั้งหมดที่อยู่ระหว่างดำเนินการและหากมีคำขอมาจากผู้ใช้รายเดียวกันให้ยกเลิกคำขอเดิม ดูเหมือนจะสุดขีด แต่มันก็ใช้งานได้ อย่าใช้เซสชัน! เมื่อฉันต้องการสถานะบางอย่างสำหรับผู้ใช้ฉันก็สามารถใช้ Cache แทนและรายการสำคัญในชื่อผู้ใช้รับรองความถูกต้องหรือบางสิ่ง ดูเหมือนจะสุดโต่งอีกครั้ง ฉันไม่อยากจะเชื่อเลยว่าทีม ASP.Net Microsoft จะทิ้งคอขวดที่มีประสิทธิภาพอย่างมากในเฟรมเวิร์กในเวอร์ชัน 4.0! ฉันขาดอะไรที่ชัดเจนหรือไม่ การใช้คอลเลกชัน ThreadSafe …

12
“ Keep Me ล็อกอิน” - วิธีที่ดีที่สุด
เว็บแอปพลิเคชันของฉันใช้เซสชันเพื่อเก็บข้อมูลเกี่ยวกับผู้ใช้เมื่อพวกเขาเข้าสู่ระบบและเพื่อรักษาข้อมูลนั้นเมื่อพวกเขาเดินทางจากหน้าหนึ่งไปอีกหน้าหนึ่งภายในแอป ในการประยุกต์ใช้ที่เฉพาะเจาะจงนี้ฉันจัดเก็บuser_id, first_nameและlast_nameของบุคคล ฉันต้องการเสนอตัวเลือก "ให้ฉันเข้าสู่ระบบ" ในการเข้าสู่ระบบที่จะวางคุกกี้บนเครื่องของผู้ใช้เป็นเวลาสองสัปดาห์ที่จะรีสตาร์ทเซสชันของพวกเขาด้วยรายละเอียดเดียวกันเมื่อพวกเขากลับไปที่แอป อะไรคือวิธีที่ดีที่สุดในการทำสิ่งนี้? ฉันไม่ต้องการเก็บไว้user_idในคุกกี้เนื่องจากดูเหมือนว่าจะทำให้ผู้ใช้รายหนึ่งลองและปลอมแปลงข้อมูลประจำตัวของผู้ใช้รายอื่นได้ง่าย

2
เซสชัน Sticky และ Non-Sticky
ฉันต้องการทราบความแตกต่างระหว่างเซสชันที่เหนียวและไม่เหนียว สิ่งที่ฉันเข้าใจหลังจากอ่านจากอินเทอร์เน็ต: Sticky : มีเพียงวัตถุเซสชันเดียวเท่านั้นที่จะอยู่ที่นั่น Non-sticky session : session object สำหรับแต่ละโหนดเซิร์ฟเวอร์
255 session 

8
ตัวแปร PHP Pass ไปยังหน้าถัดไป
ดูเหมือนจะง่าย แต่ฉันไม่สามารถหาวิธีที่ดีในการทำ พูดในหน้าแรกฉันสร้างตัวแปร $myVariable = "Some text"; และการกระทำของแบบฟอร์มสำหรับหน้านั้นคือ "Page2.php" ดังนั้นใน Page2.php ฉันจะสามารถเข้าถึงตัวแปรนั้นได้อย่างไร ฉันรู้ว่าฉันสามารถทำกับเซสชัน แต่ฉันคิดว่ามันมากเกินไปสำหรับสตริงง่ายและฉันจะต้องผ่านสตริงง่าย ๆ (ชื่อไฟล์) ฉันจะบรรลุสิ่งนี้ได้อย่างไร ขอบคุณ!
196 php  variables  session 

12
คุกกี้กับเซสชัน
ฉันเริ่มใช้ PHP สองสามเดือนที่ผ่านมา เพื่อสร้างระบบเข้าสู่ระบบสำหรับเว็บไซต์ของฉันฉันอ่านเกี่ยวกับคุกกี้และเซสชันและความแตกต่าง (คุกกี้ถูกเก็บไว้ในเบราว์เซอร์ของผู้ใช้และเซสชันบนเซิร์ฟเวอร์) ในเวลานั้นฉันต้องการคุกกี้ (และผู้ที่ไม่ชอบคุกกี้?!) และเพิ่งพูดว่า: "ใครสนใจฉันไม่ได้จัดการที่ดีกับการเก็บไว้ในเซิร์ฟเวอร์ของฉัน" ดังนั้นฉันไปข้างหน้าและใช้คุกกี้สำหรับ โครงการรับปริญญาตรีของฉัน อย่างไรก็ตามหลังจากส่วนใหญ่ของแอพของฉันฉันได้ยินว่าสำหรับกรณีเฉพาะของการจัดเก็บ ID ของผู้ใช้เซสชันมีความเหมาะสมมากกว่า ดังนั้นฉันจึงเริ่มคิดว่าฉันจะพูดอย่างไรถ้าคณะลูกขุนถามฉันว่าทำไมคุณถึงใช้คุกกี้แทนเซสชัน? ฉันมีเหตุผลนั้น (ฉันไม่ต้องการจัดเก็บข้อมูลภายในเกี่ยวกับผู้ใช้)? หรือมากกว่านั้น คุณช่วยบอกฉันเกี่ยวกับข้อดี / ข้อเสียของการใช้คุกกี้เพื่อรักษา ID ของผู้ใช้ได้หรือไม่? ขอบคุณสำหรับทุกคนใน StackOverflow!
189 php  session  cookies 

8
PHP: การจัดเก็บ 'วัตถุ' ภายใน $ _SESSION
ฉันเพิ่งค้นพบว่าจริง ๆ แล้วฉันสามารถเก็บวัตถุใน $ _SESSIONและฉันคิดว่ามันค่อนข้างเท่เพราะเมื่อฉันข้ามไปยังหน้าอื่นฉันยังมีวัตถุของฉัน ตอนนี้ก่อนที่ผมจะเริ่มใช้วิธีการนี้ผมอยากจะดูว่ามันเป็นจริงเช่นความคิดที่ดีหรือหากมีข้อผิดพลาดที่อาจเกิดขึ้นที่เกี่ยวข้อง ฉันรู้ว่าถ้าฉันมีจุดเข้าเดียวฉันไม่จำเป็นต้องทำอย่างนั้น แต่ฉันไม่ได้อยู่ที่นั่นดังนั้นฉันไม่มีจุดเข้าเดียวและฉันอยากเก็บวัตถุของฉันเพราะฉันไม่ ' จะไม่สูญเสียสถานะของฉันเช่นนั้น (ตอนนี้ฉันได้อ่านแล้วว่าฉันควรเขียนโปรแกรมเว็บไซต์ไร้สัญชาติ แต่ฉันยังไม่เข้าใจแนวคิดดังกล่าว) ดังนั้นในระยะสั้น : การเก็บวัตถุในเซสชันมีปัญหาหรือไม่? แก้ไข: สรุปชั่วคราว : ตอนนี้ฉันเข้าใจแล้วว่ามันน่าจะดีกว่าที่จะสร้างวัตถุใหม่แม้ว่ามันจะเกี่ยวข้องกับการสืบค้นฐานข้อมูลอีกครั้ง คำตอบเพิ่มเติมอาจอธิบายเพิ่มเติมในแง่มุมนั้นอีกเล็กน้อย!
188 php  session  object 

13
Chrome ไม่ได้ลบคุกกี้เซสชัน
ฉันกำลังพยายามตั้งค่าคุกกี้เซสชันในจาวาสคริปต์เช่นนี้: document.cookie = 'name=alex; path=/' แต่ Chrome จะไม่ลบแม้ว่าฉันจะออกจากเบราว์เซอร์และเปิดอีกครั้ง ฉันตรวจสอบใน Firefox และ Opera และทั้งสองทำงานตามที่ต้องการ - พวกเขาลบคุกกี้เซสชันเมื่อออกจากเบราว์เซอร์ Chrome เพิ่งเพิกเฉยกฎการหมดอายุหรือไม่ ฉันตรวจสอบในหลายระบบปฏิบัติการและพบว่าคุกกี้เซสชันถูกลบออกจาก Chrome ใน Windows XP และ Ubuntu แต่ไม่ใช่ใน Mac OSX Lion

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