Các phiên PHP có tốt không?
Quản lý phiên HTTP đại diện cho cốt lõi của bảo mật web. Tất cả các biện pháp giảm thiểu có thể NÊN được áp dụng để đảm bảo các phiên được bảo mật. Các nhà phát triển cũng nên kích hoạt/sử dụng các biện pháp bảo mật hiện hành Show Trong PHP, phiên cung cấp cách lưu trữ tùy chọn của khách truy cập trang web trên máy chủ web dưới dạng các biến có thể được sử dụng trên nhiều trang. Không giống như cookie, thông tin biến không được lưu trữ trên máy tính của người dùng. Thông tin được truy xuất từ máy chủ web khi một phiên được mở ở đầu mỗi trang web. Phiên hết hạn khi trang web bị đóng Một số thông tin, chẳng hạn như tên người dùng và thông tin đăng nhập xác thực, tốt hơn nên được lưu trong cookie vì chúng cần thiết trước khi truy cập trang web. Tuy nhiên, các phiên cung cấp bảo mật tốt hơn cho thông tin cá nhân cần thiết sau khi trang web khởi chạy và chúng cung cấp mức độ tùy chỉnh cho khách truy cập vào trang web Gọi mã ví dụ này là mypage. php Điều đầu tiên mã ví dụ này thực hiện là mở phiên bằng cách sử dụng hàm session_start(). Sau đó, nó đặt các biến phiên—màu sắc, kích thước và hình dạng—tương ứng là màu đỏ, nhỏ và tròn Cũng như với cookie, mã session_start() phải nằm trong tiêu đề của mã và bạn không thể gửi bất kỳ thứ gì tới trình duyệt trước mã đó. Tốt nhất là chỉ cần đặt nó trực tiếp sau Phiên đặt một cookie nhỏ trên máy tính của người dùng để dùng làm khóa. Nó chỉ là chìa khóa; . Máy chủ web tìm khóa đó khi người dùng nhập URL cho một trong các trang web được lưu trữ trên máy chủ của nó. Nếu máy chủ tìm thấy khóa, phiên và thông tin chứa trong đó sẽ được mở cho trang đầu tiên của trang web. Nếu máy chủ không tìm thấy khóa, người dùng sẽ truy cập trang web, nhưng thông tin được lưu trên máy chủ không được chuyển đến trang web 02 của 03 Sử dụng biến phiênMỗi trang trên trang web cần truy cập vào thông tin được lưu trữ trong phiên phải có chức năng session_start() được liệt kê ở đầu mã cho trang đó. Lưu ý rằng các giá trị cho các biến không được chỉ định trong mã Gọi mã này là mypage2. php Tất cả các giá trị được lưu trữ trong mảng $_SESSION, được truy cập tại đây. Một cách khác để hiển thị điều này là chạy mã này Bạn cũng có thể lưu trữ một mảng trong mảng phiên. Quay lại trang của chúng tôi. php và chỉnh sửa nó một chút để làm điều này Bây giờ hãy chạy cái này trên mypage2. php để hiển thị thông tin mới của chúng tôi 03 của 03 Sửa đổi hoặc loại bỏ một phiênMã này trình bày cách chỉnh sửa hoặc xóa các biến phiên riêng lẻ hoặc toàn bộ phiên. Để thay đổi một biến phiên, bạn chỉ cần đặt lại nó thành một thứ khác bằng cách gõ ngay trên nó. Bạn có thể sử dụng unset() để xóa một biến hoặc sử dụng session_unset() để xóa tất cả các biến cho một phiên. Bạn cũng có thể sử dụng session_destroy() để hủy phiên hoàn toàn Theo mặc định, một phiên kéo dài cho đến khi người dùng đóng trình duyệt của mình. Tùy chọn này có thể được thay đổi trong php. ini trên máy chủ web bằng cách thay đổi 0 trong phiên. cookie_lifetime = 0 thành số giây bạn muốn phiên kéo dài hoặc bằng cách sử dụng session_set_cookie_params() Trích dẫn bài viết này Sự sắp xếp trích dẫn của bạn Bradley, Angela. "Hiểu cách hoạt động của các phiên PHP. "ThinkCo. https. //www. suy nghĩ. com/basic-php-sessions-2693797 (truy cập ngày 29 tháng 1 năm 2023) Một cách khác để làm cho dữ liệu có thể truy cập được trên các trang khác nhau của toàn bộ trang web là sử dụng Phiên PHP Một phiên tạo một tệp trong một thư mục tạm thời trên máy chủ nơi các biến phiên đã đăng ký và giá trị của chúng được lưu trữ. 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. Lưu đường dẫn. Trước khi sử dụng bất kỳ biến phiên nào, hãy đảm bảo rằng bạn đã thiết lập đường dẫn này Khi một phiên được bắt đầu, những điều sau đây sẽ xảy ra -
Khi một tập lệnh PHP muốn truy xuất giá trị từ một biến phiên, PHP sẽ tự động lấy chuỗi mã định danh phiên duy nhất từ cookie PHPSESSID và sau đó tìm trong thư mục tạm thời của nó để tìm tệp mang tên đó và có thể thực hiện xác thực bằng cách so sánh cả hai giá trị Một phiên kết thúc khi người dùng mất trình duyệt hoặc sau khi rời khỏi trang web, máy chủ sẽ kết thúc phiên sau một khoảng thời gian định trước, thường là 30 phút Bắt đầu một phiên PHPMột phiên PHP có thể dễ dàng bắt đầu bằng cách gọi hàm session_start(). Trước tiên, chức năng này kiểm tra xem một phiên đã bắt đầu chưa và nếu chưa có phiên nào bắt đầu thì nó sẽ bắt đầu một phiên. Bạn nên gọi hàm session_start() ở đầu trang Các biến phiên được lưu trữ trong mảng kết hợp có tên $_SESSION[]. Các biến này có thể được truy cập trong suốt thời gian tồn tại của phiên Ví dụ sau bắt đầu một phiên, sau đó đăng ký một biến có tên là bộ đếm được tăng lên mỗi khi trang được truy cập trong phiên Sử dụng hàm isset() để kiểm tra xem biến phiên đã được đặt hay chưa Đặt mã này trong một bài kiểm tra. php và tải tệp này nhiều lần để xem kết quả – Setting up a PHP session Nó sẽ tạo ra kết quả sau - You have visited this page 1in this session. Phá hủy phiên PHPPhiên PHP có thể bị hủy bởi hàm session_destroy(). Hàm này không cần bất kỳ đối số nào và một lệnh gọi có thể hủy tất cả các biến phiên. Nếu bạn muốn hủy một biến phiên thì bạn có thể sử dụng hàm unset() để hủy đặt một biến phiên Đây là ví dụ để hủy đặt một biến duy nhất - Đây là cuộc gọi sẽ hủy tất cả các biến phiên - Bật phiên tự độngBạn không cần gọi hàm start_session() để bắt đầu phiên khi người dùng truy cập trang web của bạn nếu bạn có thể đặt phiên. biến auto_start thành 1 trong php. tập tin ini Phiên không có cookieCó thể xảy ra trường hợp người dùng không cho phép lưu trữ cookie trên máy của họ. Vì vậy, có một phương pháp khác để gửi ID phiên tới trình duyệt Ngoài ra, bạn có thể sử dụng hằng số SID được xác định nếu phiên bắt đầu. Nếu khách hàng không gửi cookie phiên thích hợp, nó sẽ có dạng session_name=session_id. Mặt khác, nó mở rộng thành một chuỗi rỗng. Do đó, bạn có thể nhúng nó vô điều kiện vào các URL Ví dụ sau minh họa cách đăng ký một biến và cách liên kết chính xác đến một trang khác bằng SID Khi nào bạn nên sử dụng phiên PHP?Phiên PHP được sử dụng để lưu trữ và chuyển thông tin từ trang này sang trang khác tạm thời (cho đến khi người dùng đóng trang web) . Kỹ thuật phiên PHP được sử dụng rộng rãi trong các trang web mua sắm, nơi chúng tôi cần lưu trữ và chuyển thông tin giỏ hàng e. g. tên người dùng, mã sản phẩm, tên sản phẩm, giá sản phẩm, v.v. từ trang này sang trang khác.
Nhược điểm của phiên trong PHP là gì?Nhược điểm. 1. Chi phí hoạt động trong trường hợp số lượng người dùng lớn do dữ liệu phiên được lưu trữ trong bộ nhớ máy chủ. 2. Chi phí liên quan đến tuần tự hóa và hủy tuần tự hóa dữ liệu phiên vì trong trường hợp chế độ phiên StateServer và SQLServer, chúng ta cần tuần tự hóa đối tượng trước khi lưu trữ.
Phiên hoặc cookie nào tốt hơn trong PHP?Các phiên được bảo mật hơn so với cookie , vì chúng lưu dữ liệu ở dạng mã hóa. Cookie không an toàn vì dữ liệu được lưu trữ trong tệp văn bản và nếu bất kỳ người dùng trái phép nào có quyền truy cập vào hệ thống của chúng tôi, anh ta có thể kiểm soát dữ liệu.
Các phiên PHP có thể bị tấn công không?Các phiên KHÔNG phải là phía máy chủ, chúng được lưu trữ trên máy cục bộ của khách hàng (bạn có thể truy cập cookie của mình và tìm cookie có tên phpssid dưới tên miền của bạn). Có, chúng có thể bị tấn công và đây thực tế là một phương thức tấn công rất phổ biến. |