Kết quả 1 đến 7 của 7
  1. #1
    Moderator 2webvn.com's Avatar
    Ngày tham gia
    27-03-2013
    Bài viết
    203
    Cảm ơn
    24
    Được cảm ơn 119 trong 81 bài viết

    Bảo mật hơn với Session Codeigniter

    Nếu bạn đã từng dùng session (SS) của codeigniter thì bạn cũng thấy rõ là SS của nó lưu dưới dạng cookies (ở client) chứ không giống với PHP SS (Lưu ở Server) nên máy client có thể xem đc dữ liệu mà bạn đã lưu vào SS bằng một số Addon của Firefox. Để bảo mật hơn bạn cần Mã Hóa Dữ Liệu của SS khi nó lưu. Bằng cách chỉnh sửa 1 tí trong file config.php

    Chỉnh sửa key dùng trong việc Mã Hóa
    PHP Code:
    /*
    |--------------------------------------------------------------------------
    | Encryption Key
    |--------------------------------------------------------------------------
    |
    | If you use the Encryption class or the Session class you
    | MUST set an encryption key.  See the user guide for info.
    |
    */
    $config['encryption_key']='2webvn.com'// Key Do bạn tùy chọn 
    PHP Code:
    /*
    |--------------------------------------------------------------------------
    | Session Variables
    |--------------------------------------------------------------------------
    |
    | 'sess_cookie_name'        = the name you want for the cookie
    | 'sess_expiration'            = the number of SECONDS you want the session to last.
    |   by default sessions last 7200 seconds (two hours).  Set to zero for no expiration.
    | 'sess_expire_on_close'    = Whether to cause the session to expire automatically
    |   when the browser window is closed
    | 'sess_encrypt_cookie'        = Whether to encrypt the cookie
    | 'sess_use_database'        = Whether to save the session data to a database
    | 'sess_table_name'            = The name of the session database table
    | 'sess_match_ip'            = Whether to match the user's IP address when reading the session data
    | 'sess_match_useragent'    = Whether to match the User Agent when reading the session data
    | 'sess_time_to_update'        = how many seconds between CI refreshing Session Information
    |
    */
    $config['sess_cookie_name']    = 'cisession'// Session cookies name
    $config['sess_expiration']    = 7200;
    $config['sess_expire_on_close']    = FALSE// Session sẽ tự đóng lại khi tắt trình duyệt
    $config['sess_encrypt_cookie']    = TRUE// MàHÓA SESSION
    $config['sess_use_database']    = FALSE// Cho phép Lưu Session vào DB
    $config['sess_table_name']    = 'cisessions'// Nếu bạn Lưu Session vào Database bạn cần tạo 1 table tên là 'cisessions'
    $config['sess_match_ip']    = TRUE// Cái này sẽ bị ảnh hưởng nếu bạn dùng USB 3G sẽ bị các trường hợp Ip thay đổi liên tục
    $config['sess_match_useragent']    = FALSE;
    $config['sess_time_to_update']    = 500// thời gian để session tự dụng Update 
    Bây giờ thì bạn có thể yên tâm lưu dữ liệu vào SS vì client cho dù có xem đc cũng không thể nào biết đc bạn đã lưu những gì đâu.
    Ngoài ra bạn cũng có thể sử dụng session database để bảo mật hơn.

    Tham khảo thêm http://huongdan.codeigniter.vn/libraries/sessions.html
    Sửa lần cuối bởi 2webvn.com; 30-03-2013 lúc 10:54 AM.

  2. The Following 3 Users Say Thank You to 2webvn.com For This Useful Post:

    PhanNguyenChuong (06-01-2014),tinhphaistc (29-03-2013),tuanphuongmda (16-05-2013)

  3. #2
    Super Moderator tinhphaistc's Avatar
    Ngày tham gia
    01-03-2013
    Bài viết
    693
    Cảm ơn
    244
    Được cảm ơn 278 trong 210 bài viết
    cảm ơn bạn đã đóng góp ý cho diễn đàn, đánh dấu phát để dành xem.
    THÔNG TIN HỖ TRỢ DIỄN ĐÀN CODEIGNITER VIỆT NAM
    Email: tinhphaistc@gmail.com

  4. The Following User Says Thank You to tinhphaistc For This Useful Post:

    tuanphuongmda (16-05-2013)

  5. #3
    CI New xperia_sp's Avatar
    Ngày tham gia
    05-07-2013
    Bài viết
    5
    Cảm ơn
    2
    Được cảm ơn 0 trong 0 bài viết
    Mình có chút thắc mắc ạ. Mình đã thêm bảng ci_sessions vào database. và khi mình gọi đoạn code thế này:
    $this->load->library('session');
    $data = array('name'=>'admin', 'email'=>'admin@gmail.com');
    $this->session->set_userdata($data);
    thì trong database được tạo ra 1 hàng mới, các trường đều có thông tin nhưng mà cái trường user_data thì lại rỗng.
    Mong các bạn chỉ giúp.
    thank's.!

  6. #4
    Moderator 2webvn.com's Avatar
    Ngày tham gia
    27-03-2013
    Bài viết
    203
    Cảm ơn
    24
    Được cảm ơn 119 trong 81 bài viết
    Bạn vào xem lại config.php và cấu hình giống như bài trên:

    PHP Code:
    CREATE TABLE IF NOT EXISTS  `cisessions` (
        
    session_id varchar(40) DEFAULT '0' NOT NULL,
        
    ip_address varchar(45) DEFAULT '0' NOT NULL,
        
    user_agent varchar(120NOT NULL,
        
    last_activity int(10unsigned DEFAULT 0 NOT NULL,
        
    user_data text NOT NULL,
        
    PRIMARY KEY (session_id),
        
    KEY `last_activity_idx` (`last_activity`)

    Khi đó bạn sử dụng session bình thường

    PHP Code:
    $this->load->library('session');
    $data = array('name'=>'admin''email'=>'admin@gmail.com');
    $this->session->set_userdata($data); 
    xem lại kết quả trong Table cisessions của mình.

    Trường user_data sẽ có nội dung tương tự như:
    a:2:{s:4:"name";s:5:"admin";s:5:"email";s:15:"admi n@gmail.com";}
    Sửa lần cuối bởi 2webvn.com; 06-07-2013 lúc 08:14 AM.

  7. #5
    CI New xperia_sp's Avatar
    Ngày tham gia
    05-07-2013
    Bài viết
    5
    Cảm ơn
    2
    Được cảm ơn 0 trong 0 bài viết
    Mình đã làm như trên. Khi mình để hàm tạo session trong 1 acction của controller và chạy thì nội dung đã được insert vào trường user_data. nhưng khi mình đưa hàm tạo session vào phương thức check_login() của 1 lớp mở rộng của mình trong library và gọi nó ra trong action ở controller thì các trường khác vẫn được insert nhưng trường user_data lại ko được insert.
    + Vấn đề thứ 2 là mình gọi hàm check_login() vào action login() nhưng khi mình chạy action index() thì session vẫn được tạo.hic
    Sửa lần cuối bởi xperia_sp; 06-07-2013 lúc 12:16 PM.

  8. #6
    CI New nhatnv's Avatar
    Ngày tham gia
    05-08-2013
    Vị trí hiện tại
    phonho.vn
    Bài viết
    9
    Cảm ơn
    0
    Thanked 1 Time in 1 Post
    Các bạn nên viết 1 base controller trong đó có 1 method session.... sau đó các controller trong ứng dụng các bạn extends controller đó. như vậy session của bạn sẽ được global từ controller này sang controller khác. giảm tải việc call data từ database ra.

  9. The Following User Says Thank You to nhatnv For This Useful Post:

    tinhphaistc (05-08-2013)

  10. #7
    CI New nhkphp's Avatar
    Ngày tham gia
    27-12-2013
    Bài viết
    2
    Cảm ơn
    0
    Được cảm ơn 0 trong 0 bài viết
    klq nhưng cho mình hỏi : Khi encrypt session rồi thì làm sao để đọc nó ra nhỉ? :JFBQ00193070413A:

Chia sẽ và Bình Luận chủ đề Bảo mật hơn với Session Codeigniter trên facebook

Các Chủ đề tương tự

  1. session trong codeigniter
    Bởi Zen Studio trong diễn đàn Turtorial
    Trả lời: 6
    Bài cuối: 22-07-2015, 01:19 AM
  2. Trả lời: 14
    Bài cuối: 16-02-2014, 09:31 AM
  3. Session phân quyền
    Bởi timhieu trong diễn đàn Hỏi đáp
    Trả lời: 1
    Bài cuối: 10-07-2013, 11:09 PM
  4. Session
    Bởi timhieu trong diễn đàn Hỏi đáp
    Trả lời: 4
    Bài cuối: 10-07-2013, 07:51 PM
  5. Session trong CI
    Bởi beginner trong diễn đàn Hỏi đáp
    Trả lời: 2
    Bài cuối: 25-05-2013, 06:37 PM

Các từ khóa xuất hiện trên google của chủ đề

http:www.forum.codeigniter.vnshowthread.php50-Bao-mat-hon-voi-Session-Codeigniter.html

bao mat session

code bảo mật session

bao mat trong codeigniter

Tag của Chủ đề này - Hãy Thêm Tags Để bài viết nhanh lên top google

Quyền viết bài

  • Bạn không thể đăng chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài
  •