Tôi chỉ tìm hiểu về phiên và cho mục đích của mình, tôi muốn tạo thứ gì đó theo yêu cầu của khách hàng, máy chủ xác thực người dùng đó và chỉ thực hiện xử lý dữ liệu cho người dùng đó.Trợ giúp phiên CodeIgniter, cookie không an toàn?
Tuy nhiên, tôi đã thấy rất nhiều ví dụ với CodeIgniter hợp phiên được thiết lập là như sau:
$this->load->library('session');
$newdata = array(
'username' => 'johndoe',
'email' => '[email protected]',
'logged_in' => TRUE
);
$this->session->set_userdata($newdata);
Tuy nhiên, không thể một người nào đó chỉ cần tạo một cookie trên máy tính của họ với tên người dùng thông thường và trạng thái 'logged_in' thành true và đột nhiên bạn được xác thực mà không có mật khẩu? Điều này có vẻ như một lỗ hổng bảo mật đối với tôi, nhưng tôi thấy rất nhiều ví dụ như thế này.
Cách thích hợp để xác thực người dùng trên mỗi yêu cầu là gì?
Tự hỏi điều tương tự: tại sao CI không sử dụng phiên php và cung cấp một số loại giao diện CI-ish cho nó? Đúng là bạn có thể sử dụng cơ sở dữ liệu, nhưng có gì sai với các phiên 'bình thường' ngay từ đầu? –
Thư viện phiên mã lệnh có sẵn để làm cho các phiên dễ đọc hơn và mất công việc trong các phiên xử lý. Nó hoạt động rất tốt và nếu bạn lưu trữ các phiên trong việc xác thực lực lượng cơ sở dữ liệu của một ID phiên duy nhất. Codeigniter xử lý minh bạch cả cài đặt và kiểm tra id phiên. Có một giao diện cho phiên bản gốc cho người viết mã tại đây: http://codeigniter.com/wiki/Native_session/ – DRL
"Phiên" không có nghĩa là "Cookie". Phiên chỉ tồn tại trên máy chủ và phạm vi tiếp cận ngoài tầm với của kẻ tấn công. Cookie chỉ chứa một sessionid, là một chuỗi mờ và ngẫu nhiên. Máy chủ sử dụng sessionid để tra cứu đối tượng phiên cho người dùng hiện tại. Tóm lại, cookie không chứa tên người dùng/email/log_in cờ, và do đó kẻ tấn công không thể sửa đổi chúng trực tiếp –