09/10/2018, 23:28
PHP - Có bao giờ trùng session ID ?
Chào các bạn mình đang xem về phần session ID của PHP, và thấy có định nghĩa về session ID như sau:
Session là khoảng thời gian người sử dụng giao tiếp với 1 ứng dụng. Session bắt đầu khi người sử dụng truy cập vào ứng dụng lần đầu tiên, và kết thúc khi người sử dụng thoát khỏi ứng dụng. Mỗi session sẽ có một định danh (ID), 1 session khác nhau sẽ có 2 ID khác nhau. Trong ngữ cảnh ứng dụng web, website sẽ quyết định khi nào session bắt đầu và kết thúc.
Trong 1 session, website có thể lưu trữ một số thông tin như đánh dấu bạn đã login hay chưa, những bài viết nào bạn đã đọc qua, v.v...
Mình tự hỏi có bao giờ session ID trùng nhau không nhỉ?
Mình nghe nói để tránh việc 2 user đăng nhập vào một website cùng 1 thời điểm thì ta phải kiểm tra xem session ID và IP Address của người mới đăng nhập đó có trùng với session ID và IP Address của user đang login hiện tại không, nếu trùng thì mới cho đăng nhập vào. Nhưng theo khái niệm về session ID thì mình nghĩ khi một user đang đăng nhập với session ID đã được cấp phát là 15 đi chẳng hạn, thì chắc rằng một user khác đăng nhập vô không thể cũng có session ID = 15 được nếu vậy mình nghĩ chỉ cần check session ID thôi chứ
Session là khoảng thời gian người sử dụng giao tiếp với 1 ứng dụng. Session bắt đầu khi người sử dụng truy cập vào ứng dụng lần đầu tiên, và kết thúc khi người sử dụng thoát khỏi ứng dụng. Mỗi session sẽ có một định danh (ID), 1 session khác nhau sẽ có 2 ID khác nhau. Trong ngữ cảnh ứng dụng web, website sẽ quyết định khi nào session bắt đầu và kết thúc.
Trong 1 session, website có thể lưu trữ một số thông tin như đánh dấu bạn đã login hay chưa, những bài viết nào bạn đã đọc qua, v.v...
Mình tự hỏi có bao giờ session ID trùng nhau không nhỉ?
Mình nghe nói để tránh việc 2 user đăng nhập vào một website cùng 1 thời điểm thì ta phải kiểm tra xem session ID và IP Address của người mới đăng nhập đó có trùng với session ID và IP Address của user đang login hiện tại không, nếu trùng thì mới cho đăng nhập vào. Nhưng theo khái niệm về session ID thì mình nghĩ khi một user đang đăng nhập với session ID đã được cấp phát là 15 đi chẳng hạn, thì chắc rằng một user khác đăng nhập vô không thể cũng có session ID = 15 được nếu vậy mình nghĩ chỉ cần check session ID thôi chứ
Bài liên quan
Session ID được generate ngẫu nhiên độ dài đến 32 ký tự.
You're right. Bạn có thể cho mình biết, có bao nhiêu trường hợp cho session ID được tạo không? ^^
Địa chỉ IP bao gồm 4 nhóm, mỗi nhóm 8bit.
Như vậy theo như thiết kế thì session do php tạo ra có thể phục vụ cả thế giới IPv4.
Khi bạn biết chính xác con số hãy post lên rùi gán câu silly cho tôi, như thế chưa muộn đâu!
Cheers ^^
Session do PHP tạo ra bao gồm 32 giá trị hex: 128bit
Như vậy là số session không collision mà PHP có thể tạo ra là 2^128 giá trị.
Trong khi đó IP của kiến trúc v4 bao gồm 4 octet tức là 32bit. Do đó, số IP có thể có là 2^32.
Đủ phục vụ số IP của kiến trúc IPv4 truy cập cùng lúc.
Có bao giờ bạn gặp trường hợp vào 1 forum dùng session, tự nhiên phía trên có chữ "Welcome, ***..." trong khi bạn....chưa login chưa ?