10/10/2018, 00:23

Cho mình hỏi về sID trên QueryString

Mình thấy nó được dùng trên các website nhưng không biết nó có công dụng gì, mong các bạn nhiều kinh nghiệm chỉ giáo.
jiSh@n viết 02:23 ngày 10/10/2018
Được gửi bởi losttower
Mình thấy nó được dùng trên các website nhưng không biết nó có công dụng gì, mong các bạn nhiều kinh nghiệm chỉ giáo.
SID = Session ID
herofit viết 02:24 ngày 10/10/2018
Được gửi bởi losttower
Mình thấy nó được dùng trên các website nhưng không biết nó có công dụng gì, mong các bạn nhiều kinh nghiệm chỉ giáo.
cái đó là session ID: bạn tham khảo đoạn trích dưới đây để hiểu thêm về session:

Khi một người triệu gọi trang web lần đầu tiên ứng dụng sẽ gọi session_start() để tạo ra sesion cho user. PHP sẽ tự động sinh ngẫu nhiên một định danh khác nhau cho mỗi user. Và sau đó nó send tạo một trên cookies với tên mặc định là PHPSESSID bạn có thể thay đổi tên mặc định của nó bằng cách thay đổi nó trong php.ini hoặc dùng hàm session_name() . Từ lần viếng thăm sau nó sẽ định danh user bằng cookies. Tuy nhiên có thể gán session qua chuỗi truy vấn. Đây là cách dễ ràng để tấn công session fixation bởi vì kẻ tấn công có thể thay đổi giá trị PHPSESSID. Cách phổ biến là lưu trữ link trong ứng dụng của bạn nối thêm session id và sau dụ ngưòi dùng kích vào
<a href="http://example.org/index.php?PHPSESSID=1234">Click here</a>
Trong khi truy cấp thường hay lưu thông tin đăng nhập trong session.
Mahakaruna viết 02:33 ngày 10/10/2018
Các trang web để sid ngay trên query string là để hỗ trợ các web browser non-support/disable cookie
bka viết 02:37 ngày 10/10/2018
Được gửi bởi Mahakaruna
Các trang web để sid ngay trên query string là để hỗ trợ các web browser non-support/disable cookie
uh. đúng rùi đó.. trường hợp browser không gửi lên được thì còn có cái SID mà dùng chứ
sacroyant viết 02:35 ngày 10/10/2018
Nó chỉ là cái tên thôi mà. Như trên trang http://lovepm.olympe-network.com của tớ thì sid lại có nghĩa là Section ID : mã phân đoạn, dùng để phân biệt các phân đoạn trong 1 tác phẩm dài

Ví dụ như "http://lovepm.olympe-network.com/?action=display&cid=cGpZmIx2djrDWFJZxJmUqd5ZyAqYXK W22tp&pid=u_T7IDXl_foox0JEExBI6EVZ635uT1l8OVdTELnH ph9cEWsNiozX71UW&sid=Y3XdHhwK5N5WcJV3cWJ7JPYfvoKcx tjtqK_jmwCztR" thì sid=Y3XdHhwK5N5WcJV3cWJ7JPYfvoKcxtjtqK_jmwCztR tương ứng với phần thứ 3 trong tác phẩm Nguyệt Ma.
losttower viết 02:32 ngày 10/10/2018
Được gửi bởi Mahakaruna
Các trang web để sid ngay trên query string là để hỗ trợ các web browser non-support/disable cookie
Đúng là cái này rồi, vì mình thấy, code session này được tạo ra, nhưng lại không thấy nó được sử dụng.

Cho mình hỏi rõ thêm chi tiết về vấn đề này, nó hỗ trợ trong trường hợp disable cookie/non-support, nhưng là hỗ trợ về cái gì.? Vì đơn thuần thì mình chỉ thấy nó được tạo ra trong các source code, (bằng một chuỗi ngẫu nhiên) tức là trong chuỗi đó không hề chứa thông tin gì được mã hoá cả.

Hay là chuỗi này chỉ để định danh người dùng.?

Mình không hiểu nhiều về cookie, nhưng tạm biết là nó dùng để lưu những dữ liệu (không quan trọng); Trong trường hợp này, SID được dùng để thay thế, nhưng tại sao nó lại không lưu gì trên đó cả.?

Cách sử dụng nó như thế nào:?
Theo như một số source code mà mình có thì không phải lúc nào nó cũng truyền SID lên query, như vậy thì khi nào mới dùng và khi nào không dùng SID.?
herofit viết 02:36 ngày 10/10/2018
Được gửi bởi losttower
Đúng là cái này rồi, vì mình thấy, code session này được tạo ra, nhưng lại không thấy nó được sử dụng.

Cho mình hỏi rõ thêm chi tiết về vấn đề này, nó hỗ trợ trong trường hợp disable cookie/non-support, nhưng là hỗ trợ về cái gì.? Vì đơn thuần thì mình chỉ thấy nó được tạo ra trong các source code, (bằng một chuỗi ngẫu nhiên) tức là trong chuỗi đó không hề chứa thông tin gì được mã hoá cả.

Hay là chuỗi này chỉ để định danh người dùng.?

Mình không hiểu nhiều về cookie, nhưng tạm biết là nó dùng để lưu những dữ liệu (không quan trọng); Trong trường hợp này, SID được dùng để thay thế, nhưng tại sao nó lại không lưu gì trên đó cả.?

Cách sử dụng nó như thế nào:?
Theo như một số source code mà mình có thì không phải lúc nào nó cũng truyền SID lên query, như vậy thì khi nào mới dùng và khi nào không dùng SID.?
để hiểu rõ hơn về SID

bạn tham khảo tại đây:
http://herofit.net/forum/viewtopic.php?f=13&t=429
phần III. Bảo mật Session

have fun !
Mahakaruna viết 02:32 ngày 10/10/2018
Khi bạn dùng session thì sẽ có 1 field chứa sid lưu trên cookie của client.
Nhờ giá trị này php mới xác định được đâu là session của user hiện tại => retrieve được các dữ liệu bạn lưu trong session ứng với user này.

Nôm na là khi hàm session_start được gọi, nếu php "tìm thấy" session id thì php sẽ lấy các dữ liệu ứng với sid đó cho bạn sử dụng (lúc này bạn có thể truy cập các dữ liệu ấy thông qua mảng $_SESSION), còn nếu không thấy thì php xem như có 1 session mới và nó sẽ tạo 1 session id mới.

php "tìm thấy" sid dựa trên cấu hình 1 field trong cấu hình file php.ini :
variables_order = "EGPCS" (Environment, GET, POST, Cookie, Server)
Mặc định giá trị này là EGPCS nên khi bạn append sid vào query string thì nó sẽ nhận sid trên GET trước thay vì nhận trong Cookie
(cấu hình variables_order cũng dùng cho $_REQUEST)
losttower viết 02:39 ngày 10/10/2018
Mình dùng ASP, rất mong bạn có cách trả lời tổng quát hơn. Trong ASP không có file php.ini

[=========> Bổ sung bài viết <=========]

Được gửi bởi Mahakaruna
Các trang web để sid ngay trên query string là để hỗ trợ các web browser non-support/disable cookie
Mình muốn hiểu rõ chỗ này.__^^

Session & Cookie không liên quan gì mấy (theo mình nghĩ) <-
Một khi mình quyết định lưu mọi thứ trên session thì mình chả cần phải để ý đến cookie để làm gì, và chuyện web browser có hỗ trợ cookie hay không cũng chả hề liên quan gì đến hoạt động của site.

Mình chỉ xem:
+ Session dùng để lưu thông tin (và không thể hiện dưới client)
+ Cookie dùng để lưu thông tin (và có thể hiện dưới client)

Vậy, trường hợp đặt ra là khi mình muốn dùng cả cookie & session. Khi truy cập vào site, máy chủ sẽ cấp cho client 1 session, gọi là SessionID.

Vấn đề mình thắc mắc là:
+ Chuỗi được gán vào SID để truyền lên queryString không phải là SessionID do Server cấp, mà nó được coder tạo ra theo cách riêng.

Thế thì, tại sao web browser không hỗ trợ cookie, thì ta lại dùng chuỗi này để truyền lên querystring. Và có phải (nếu trình duyệt không hỗ trợ cookie) thì lúc nào ta dùng kèm theo chuỗi này trong các link trên website.
Bài liên quan
0