Các phiên PHP được lưu trữ trên máy chủ ở đâu?

- Trong chương này, chúng ta sẽ xem xét chi tiết ý nghĩa bảo mật của các phiên, bắt đầu với tổng quan rất cơ bản về Cách hoạt động của các phiên PHP. Điều này sẽ đặt nền tảng cho việc đưa ra chiến lược giảm thiểu rủi ro của các phiên liên tục không yêu cầu người dùng đăng nhập mỗi khi họ truy cập trang web. Giao tiếp cơ bản giữa trình duyệt và máy chủ web là không trạng thái. Điều đó có nghĩa là trình duyệt gửi yêu cầu đến máy chủ web và máy chủ phản hồi bằng cách gửi trang web được yêu cầu và nội dung liên quan, chẳng hạn như hình ảnh và biểu định kiểu. Ngoài việc biết nơi gửi mọi thứ, máy chủ không quan tâm đến bạn là ai. Mỗi yêu cầu và phản hồi được xử lý độc lập. Giao tiếp phi trạng thái này khiến cho việc lưu giữ các chi tiết như tên, sở thích hoặc nội dung của giỏ hàng của khách truy cập là không thể. Cookie là một cách để lưu giữ thông tin qua nhiều yêu cầu. Trình duyệt gửi yêu cầu đến máy chủ web theo cách thông thường. Khi máy chủ phản hồi, nó sẽ gửi cookie để trình duyệt lưu trữ. Đây là một loạt các cặp tên-giá trị để xác định người dùng cùng với thông tin sẽ được lưu giữ giữa các yêu cầu. Lần sau khi trình duyệt gửi yêu cầu, tất cả thông tin trong cookie sẽ được gửi trở lại máy chủ. Mặc dù cookie có thể được mã hóa nhưng có nguy cơ thông tin có thể bị chặn. Việc liên tục gửi thông tin qua lại cũng không hiệu quả. Các phiên khắc phục những sự cố này bằng cách sử dụng kết hợp cookie và bộ nhớ phía máy chủ. Trình duyệt gửi yêu cầu đến máy chủ. PHP phản hồi bằng cách gửi một mã thông báo duy nhất xác định phiên hiện tại. Đây được gọi là ID phiên. Trong tất cả các yêu cầu tiếp theo, trình duyệt sẽ gửi ID phiên để nói: "Xin chào, lại là tôi đây. " Tất cả dữ liệu khác liên quan đến phiên được lưu trữ trên máy chủ web. Chỉ ID phiên được chuyển qua lại. Có hai cách truyền ID phiên. Nó có thể được lưu trữ dưới dạng cookie trong trình duyệt của người dùng hoặc nó có thể được chuyển qua URL như một phần của chuỗi truy vấn. Nhúng ID phiên vào chuỗi truy vấn sẽ hiển thị nó ở chế độ xem đơn giản cho những kẻ tấn công tiềm năng. Đó là một rủi ro bảo mật lớn, chúng tôi sẽ không xem xét cách thực hiện trong khóa học này. Luôn sử dụng cookie để lưu trữ ID phiên. Khởi tạo một Session rất dễ dàng. Chỉ cần gọi session_start(); . Nó không cần phải là dòng đầu tiên của tập lệnh, nhưng nó phải xuất hiện trước khi bất kỳ đầu ra nào được gửi tới trình duyệt. Bạn lưu trữ dữ liệu mà bạn muốn có sẵn trong toàn bộ ứng dụng của mình dưới dạng các biến phiên bằng cách thêm chúng vào mảng siêu toàn cầu SESSION. Ví dụ này tạo một biến phiên có tên là 'đã xác thực' và đặt giá trị của nó thành true. Nếu giá trị đến từ đầu vào của người dùng, bạn nên khử trùng giá trị đó trước khi lưu trữ dưới dạng biến phiên. Trong ví dụ này, 'tên' đến từ mảng POST, do đó, nó được chuyển đến htmlentities() trước khi được gán cho 'tên' SESSION Nếu bạn không làm sạch đầu vào của người dùng ở giai đoạn này, bạn cần nhớ làm như vậy mỗi lần bạn . SESSION là một mảng siêu toàn cầu, do đó, nó có sẵn trong mọi trang gọi session_start() Theo mặc định, cookie lưu trữ ID phiên sẽ hết hạn khi đóng trình duyệt, nhưng dữ liệu được liên kết với phiên không tự động bị xóa cùng lúc. Nó thường vẫn còn trên máy chủ web nơi nó được lưu trữ ở dạng văn bản thuần túy. Để bảo mật, tốt nhất bạn nên xóa dữ liệu phiên không còn cần thiết. Tuy nhiên, rất khó để đảm bảo rằng người dùng sẽ đăng xuất trước khi rời khỏi trang web của bạn nên không phải lúc nào cũng có thể. Nhưng điều đó không có nghĩa là dữ liệu vẫn còn trên máy chủ web vô thời hạn. Bộ sưu tập rác PHP chạy định kỳ để xóa các tệp dữ liệu phiên đã lỗi thời. Điều này có ý nghĩa đối với việc tạo các phiên liên tục. Trước hết, chúng tôi cần đảm bảo rằng cookie xác định người dùng vẫn hoạt động ngay cả khi đã đóng trình duyệt. Chúng tôi cần đảm bảo rằng dữ liệu phiên không bị thu thập rác cho đến khi nó thực sự không còn cần thiết nữa. Và chúng ta cần lưu trữ dữ liệu một cách an toàn nhất có thể. Lưu ý những điểm này, tiếp theo chúng ta sẽ kiểm tra các tùy chọn để định cấu hình phiên PHP

Thực hành trong khi bạn học với các tập tin bài tập

Tải xuống các tệp mà người hướng dẫn sử dụng để dạy khóa học. Theo dõi và học hỏi bằng cách xem, nghe và thực hành

Tải xuống các khóa học và học mọi lúc, mọi nơi

Xem các khóa học trên thiết bị di động của bạn mà không cần kết nối internet. Tải xuống các khóa học bằng ứng dụng LinkedIn Learning trên iOS hoặc Android của bạn

Nói chung, phiên đề cập đến một khung giao tiếp giữa hai phương tiện. Phiên PHP được sử dụng để lưu trữ dữ liệu trên máy chủ chứ không phải máy tính của người dùng. Số nhận dạng phiên hoặc SID là một số duy nhất được sử dụng để xác định mọi người dùng trong môi trường dựa trên phiên. SID được sử dụng để liên kết người dùng với thông tin của anh ấy trên máy chủ như bài đăng, email, v.v.

Phiên tốt hơn cookie như thế nào?

Mặc dù cookie cũng được sử dụng để lưu trữ dữ liệu liên quan đến người dùng nhưng chúng có các vấn đề nghiêm trọng về bảo mật vì cookie được lưu trữ trên máy tính của người dùng và do đó chúng dễ dàng cho những kẻ tấn công sửa đổi nội dung của cookie. Việc kẻ tấn công bổ sung dữ liệu có hại vào cookie có thể dẫn đến hỏng ứng dụng.
Ngoài ra, cookie còn ảnh hưởng đến hiệu suất của trang web vì cookie gửi dữ liệu người dùng mỗi khi người dùng xem một trang. Mỗi khi trình duyệt yêu cầu một URL đến máy chủ, tất cả dữ liệu cookie cho trang web đó sẽ tự động được gửi đến máy chủ trong yêu cầu.

Dưới đây là các bước khác nhau liên quan đến phiên PHP

  • Bắt đầu một phiên PHP. Bước đầu tiên là bắt đầu một phiên. Sau khi phiên bắt đầu, các biến phiên có thể được tạo để lưu trữ thông tin. Hàm PHP session_start() được sử dụng để bắt đầu một phiên làm việc mới. Nó cũng tạo một ID phiên mới cho người dùng

    Dưới đây là mã PHP để bắt đầu một phiên làm việc mới




     

    session_start();

     

    ?>

  • Lưu trữ dữ liệu phiên. Dữ liệu phiên theo cặp khóa-giá trị sử dụng mảng siêu toàn cầu $_SESSION[]. Dữ liệu được lưu trữ có thể được truy cập trong suốt thời gian tồn tại của phiên

    Dưới đây là mã PHP để lưu trữ một phiên với hai biến phiên Rollnumber và Name




     

    session_start();

     

    0______112345

    0______1183 05

     

    ?>

  • Truy cập dữ liệu phiên. Dữ liệu được lưu trữ trong các phiên có thể dễ dàng truy cập bằng cách trước tiên gọi session_start() và sau đó chuyển khóa tương ứng tới mảng kết hợp $_SESSION

    Mã PHP để truy cập dữ liệu phiên với hai biến phiên Rollnumber và Name được hiển thị bên dưới




     

    session_start();

     

     8  9 session_start();0_______1018session_start();4session_start();5session_start();6

     8 session_start();8 session_start();0_______1012session_start();4session_start();55

     

    ?>

    đầu ra

    The Name of the student is :Ajay 
    The Roll number of the student is :11
  • Phá hủy dữ liệu phiên nhất định. Để chỉ xóa một dữ liệu phiên nhất định, có thể sử dụng tính năng chưa đặt với biến phiên tương ứng trong mảng kết hợp $_SESSION

    Mã PHP để chỉ bỏ đặt biến phiên “Rollnumber” khỏi mảng phiên kết hợp




     

    session_start();

    ?>1

    ?>2____530____118?>7

    ?>8?>90123

    4

     

    ?>

  • Phá hủy hoàn thành phiên. Hàm session_destroy() dùng để hủy hoàn toàn một phiên làm việc. Hàm session_destroy() không yêu cầu bất kỳ đối số nào

    Phiên được lưu trữ trên máy chủ ở đâu?

    Một phiên lưu trữ các biến và giá trị của chúng trong một tệp ở thư mục tạm thời trên máy chủ. Cookies được lưu trữ trên máy tính của người dùng dưới dạng tệp văn bản. Phiên kết thúc khi người dùng đăng xuất khỏi ứng dụng hoặc đóng trình duyệt web của mình.

    Làm thế nào phiên được lưu trữ trong máy chủ PHP?

    Một phiên tạo một tệp trong thư mục tạm thời trên máy chủ nơi lưu trữ các biến phiên đã đăng ký và giá trị của chúng . Dữ liệu này sẽ có sẵn cho tất cả các trang trên trang web trong lần truy cập đó. Vị trí của tệp tạm thời được xác định bởi cài đặt trong tệp php. ini được gọi là phiên.

    Các phiên có được lưu trữ trên máy chủ không?

    Cookie và Phiên được sử dụng để lưu trữ thông tin. Cookie chỉ được lưu trữ trên máy phía máy khách, trong khi các phiên được lưu trữ trên máy khách cũng như máy chủ .

    Phiên nên được lưu trữ ở đâu?

    Phiên là biến toàn cầu được lưu trữ trên máy chủ . Mỗi phiên được gán một id duy nhất được sử dụng để truy xuất các giá trị được lưu trữ. Bất cứ khi nào một phiên được tạo, một cookie chứa id phiên duy nhất sẽ được lưu trữ trên máy tính của người dùng và được trả về với mọi yêu cầu tới máy chủ.