Hướng dẫn are sessions secure php? - các phiên có an toàn php không?
Show
Nội phân Chính showShow
Nội phân chính
Nội phân chính Chia sẻ bài viết này Giao thức chuyển siêu văn bản bắt đầu như một giao thức không trạng thái. Điều này có nghĩa là mọi yêu cầu đối với máy chủ đều khép kín, nó mang tất cả bối cảnh mà máy chủ cần phục vụ trang web được yêu cầu. Mỗi thông báo mà máy khách gửi đến máy chủ đều có thể được tự xử lý - máy chủ không duy trì trạng thái, cũng như thông tin về kết nối. Các ứng dụng web cần một cách để duy trì bối cảnh về khách truy cập-từ danh tính người dùng đã đăng nhập, giỏ hàng trong các cửa hàng thương mại điện tử, đến dữ liệu lâu dài như lịch sử mua hàng hoặc lịch sử trò chuyện trong các ứng dụng mạng xã hội. Đây là lý do tại sao nó cần thiết cho HTTP và tất cả các ứng dụng được xây dựng trên đỉnh của nó, để tìm các giải pháp để quản lý tính không quốc tịch vốn có này trong HTTP. Giải pháp chính là cookie. HTTP và trạng tháiPHP có thể là ngôn ngữ lập trình được sử dụng nhiều nhất cho web (W3Tech cung cấp cho nó gần 80%) và nó có giải pháp riêng cho các phiên này - PHP. Trong bài viết này, chúng tôi sẽ mô tả các cơ chế phiên PHP, chúng tôi sẽ khám phá bảo mật phiên PHP và cách bảo mật cookie phiên PHP. Chúng ta sẽ thấy những lỗ hổng tiềm năng là gì và thực tiễn bảo mật phiên PHP là gì. HTTP đã được mở rộng thông qua các tiêu đề của nó từ những ngày đầu. Điều này có nghĩa là chức năng có thể được thêm vào các yêu cầu và phản hồi HTTP thông qua các tiêu đề có thể xác định được người dùng. Tiêu đề là các trường trong mọi yêu cầu và phản hồi có thể chứa các phần siêu dữ liệu khác nhau. Cookies đã được công bố như là một bổ sung cho tiêu chuẩn HTTP của IETF vào năm 1997, và đặc điểm kỹ thuật đã được nâng cao kể từ đó cuối cùng được xác định trong RFC 6265, có tiêu đề Cơ chế quản lý trạng thái HTTP. Cookie được định nghĩa bởi IETF là một cơ chế bao gồm các trường tiêu đề HTTP có thể được sử dụng bởi các máy chủ để lưu trữ các phần dữ liệu (trạng thái) trong các máy khách HTTP. Điều này giúp máy chủ có thể giữ một bối cảnh trạng thái, được gọi là phiên, trên nhiều yêu cầu HTTP. Trình duyệt của người dùng (máy khách) sau đó gửi lại các cookie này đến máy chủ theo các yêu cầu tiếp theo, giúp máy chủ có thể xây dựng lại các trạng thái, chẳng hạn như hành trình của người mua, giỏ hàng hoặc tài khoản truyền thông xã hội. Chúng ta có thể phân biệt giữa cookie phiên và cookie dai dẳng. Cookie phiên là thoáng qua - chúng chỉ kéo dài trong suốt thời gian của phiên trình duyệt cụ thể đó. Họ sống trong bộ nhớ trình duyệt. Bởi vì chúng hết hạn khi phiên bản trình duyệt hiện tại bị tắt, họ không có ngày hết hạn. Cookie dai dẳng có ngày hết hạn, chúng có nghĩa là kéo dài trong một khoảng thời gian cụ thể. Giữ an toàn cho các ứng dụng của bạn trên đám mâyChúng được sử dụng cho những thứ như cá nhân hóa trải nghiệm người dùng, quản lý phiên - bao gồm người dùng đã đăng nhập / đăng xuất trạng thái, xe đẩy và để theo dõi hành vi của người dùng. Phiên PHPCookie thường lưu trữ một lượng dữ liệu rất hạn chế (tối đa là 4096 byte cho mỗi trang web) và chúng được lưu trữ trên các máy của khách truy cập. Điều này làm cho cookie hạn chế và không an toàn - không đủ để cung cấp cho các nhu cầu phiên của các trang web hiện đại. SessionHandler implements SessionHandlerInterface , SessionIdInterface { /* Methods */ public close ( ) : bool public create_sid ( ) : string public destroy ( string $id ) : bool public gc ( int $max_lifetime ) : int|bool public open ( string $path , string $name ) : bool public read ( string $id ) : string public write ( string $id , string $data ) : bool } Cơ chế này có thể được mở rộng hoặc viết lại hoàn toàn bằng cách kế thừa lớp sessionHandler hoặc bằng cách triển khai sessionHandlerInterface. Trong PHP, các phiên mặc định vẫn tồn tại dưới dạng các tệp trên máy chủ. Các tập tin mang tên của ID phiên tương ứng của họ. Khi phiên được bắt đầu, PHP sẽ đặt cookie phpsessid với ID phiên. Sau đó, khi trình duyệt của khách truy cập trả về cookie đó trên mỗi yêu cầu, máy chủ liên kết dữ liệu phiên trong tệp liên quan đến phiên đó. Kết quả là trạng thái phiên liên tục trên nhiều trang trên một trang web. Sử dụng các phiên trong PHPMột phiên trong PHP có thể được bắt đầu bằng một cuộc gọi đến một hàm session_start (). Chức năng này bắt đầu một phiên mới hoặc khôi phục một phiên hiện có được chuyển đến máy chủ trong cookie hoặc trong POST hoặc nhận các tham số yêu cầu. $ _Session Superglobal mảng sau đó được sử dụng để đặt hoặc để có các biến trong một phiên.session_start() . This function either starts a new session, or restores an existing session passed to the server in a cookie, or in POST or GET request parameters. $_SESSION superglobal array is then used to set or to get variables in a session. Nếu sau đó chúng tôi muốn sử dụng các biến phiên trên các trang khác của cùng một trang web, một tài liệu PHP khác cần sử dụng session_start (). Điều này sẽ tạo ra các biến $ _Session, có thể đã được đặt trên các trang/tài liệu web khác, có sẵn trên bộ hiện tại.$_SESSION variables, which may have been set on other web pages/documents, available on the current one. session_close () cam kết các thay đổi thành $ _session đối với đĩa commits the changes to $_SESSION to the disk Chức năng session_destroy () sẽ phá hủy tất cả dữ liệu phiên. Để loại bỏ hoàn toàn phiên, cũng cần phải tháo ID phiên và xóa rõ ràng cookie phiên. Ngoài những điều cơ bản này, PHP còn có một loạt các chức năng khác để xử lý phiên. function will destroy all the session data. To fully remove the session, it is also necessary to unset the session ID, and explicitly delete the session cookie. Beyond these basics, PHP has a host of other functions for session handling . Chức năng mà các phiên PHP cố gắng cung cấp - dữ liệu liên tục trong các lượt truy cập vào các trang của một trang web - là không thể thiếu đối với các trang web hiện đại. Tuy nhiên, việc thực hiện Phiên PHP là một điểm tranh chấp. Do dữ liệu phiên trong PHP được ghi vào một tệp trên máy chủ theo mặc định và tệp bị khóa trong quá trình thực thi tập lệnh, điều này có thể đưa ra các thách thức về hiệu suất và tỷ lệ. Các phiên PHP cũng đưa ra những thách thức đối với cơ chế bộ nhớ đệm thông thường - các trang lưu trữ với bộ cookie phpsessid có thể làm tổn hại nghiêm trọng trang web trong khi bỏ qua bộ đệm cho các trang có phpsessid có nghĩa là bỏ qua bộ đệm trên toàn bộ trang web.PHPSESSID would mean bypassing cache on the entire website. Và sau đó, có những vấn đề bảo mật. Các vấn đề bảo mật phiên PHPPhiên PHP là một bước tiến liên quan đến bảo mật so với một hệ thống nơi tất cả dữ liệu phiên được lưu trữ trong cookie. Phpsessid cookie chỉ lưu trữ ID tham chiếu cho một tệp phiên sống trên máy chủ. Cài đặt mặc định PHP cho một đường dẫn để lưu các tệp phiên mà chúng ta có thể tìm thấy trong các tệp cấu hình php.ini là session.save_path = Hồi/tmp. Điều này có nghĩa là các tệp phiên có thể bị ảnh hưởng một cách hiệu quả bởi những người dùng khác.session.save_path = “/tmp” . This means that session files could effectively get compromised by other users. Vấn đề này đặc biệt đáng báo động khi chúng tôi nhớ lại rằng phần lớn các trang web do PHP cung cấp trực tiếp trên các máy chủ được chia sẻ với nhiều người thuê. Phổ biến nhất trong tất cả các khai thác phiên là vụ cướp phiên. Một cuộc tấn công tấn công vụ tấn công là gì?Trụ tội xảy ra khi một bên độc hại có quyền truy cập bất hợp pháp vào phiên khác của người dùng. Kẻ tấn công trước tiên sẽ có được ID phiên thuộc về người dùng khác. Sau đó, anh ta sẽ sử dụng ID này để có quyền truy cập đầy đủ vào phiên khác của người dùng. ID phiên là đủ để máy chủ cung cấp quyền truy cập vào tài khoản tương ứng. Về mặt lý thuyết, ID phiên có thể thu được bằng cách dự đoán hoặc đoán (lực lượng vũ phu), nhưng cách có khả năng nhất là ID phiên bị đánh cắp. Cả hai cuộc tấn công vũ lực, hoặc dự đoán ID sẽ ít xảy ra hơn nhiều. Có một số vectơ mà kẻ tấn công có thể truy cập vào ID phiên của người dùng. Các loại tấn công tấn công vụ tấn côngTiết kiệm phiên có thể xảy ra theo nhiều cách khác nhau - ở đây chúng tôi chỉ đề cập đến những người khét tiếng hơn:
What Can An Attacker Do With a Session That Was Successfully Hijacked?Once an attacker gains access to the session that belongs to a legitimate user, the server will grant him all authority that the original user has. As such, the Session ID can be likened to a key that grants its owner access to the house, regardless if he was the house owner or not. This attack will often be focused on users & sessions with administrative access, so in those cases, the attacker will gain administrative rights on the compromised website. PHP Session Security Best Practices, and importance of PHP session.cookie_secure flagBefore continuing to different measures we can take to prevent our sessions from being exploited by attackers, it is important to say that vulnerabilities connected to PHP sessions are not something specific to the language itself. They are not an inherent flaw of PHP – other technologies require similar measures to mitigate these same vectors of attack. So what are common-sense measures we can take to mitigate Session hijacking attacks?
Bạn có thêm cái gì nữa không? Hãy cho chúng tôi biết trong các ý kiến. “Phiên Php có an toàn không?Các phiên PHP chỉ an toàn như ứng dụng của bạn làm cho chúng. Các phiên PHP sẽ cho phép khách hàng một chuỗi giả danh (ID phiên phiên) để họ tự phân biệt, nhưng không có khả năng chuỗi bị chặn bởi kẻ tấn công, kẻ xâm lược có thể tưởng tượng là máy khách đó. Phiên Php có thể bị hack không? ”Các phiên không phải là máy chủ, chúng được đặt trên máy khách địa phương mà bạn có thể đi trong các món ăn của bạn và khám phá một cookie có tên PHPSSID bên dưới tên miền của bạn. Vâng, chúng có thể bị hack, và điều này có thể là một chiến lược thực sự phổ biến về hack Chia sẻ ý kiến của bạn trong phần bình luận. Nhận xét ngay bây giờ COMMENT NOW Đánh giá của khách hàng tại “Couldways Hosting có một trong những dịch vụ khách hàng tốt nhất và tốc độ lưu trữ”Sanjit C [Nhà phát triển trang web] Tonino JankovTonino là một doanh nhân, người đam mê OSS và nhà văn kỹ thuật. Ông có hơn một thập kỷ kinh nghiệm trong phát triển phần mềm và quản lý máy chủ. Khi anh ấy không đọc nhật ký lỗi, anh ấy thích đọc truyện tranh hoặc khám phá những cảnh quan mới (thường là trên hai bánh xe). Phiên Php có an toàn không?“Phiên Php có an toàn không? Các phiên PHP chỉ an toàn như ứng dụng của bạn làm cho chúng. Các phiên PHP sẽ cho phép khách hàng một chuỗi giả danh (ID phiên phiên) để họ tự phân biệt, nhưng không có khả năng chuỗi bị chặn bởi kẻ tấn công, kẻ xâm lược có thể tưởng tượng là máy khách đó.PHP sessions are only as secure as your application makes them. PHP sessions will allow the client a pseudorandom string (“session ID”) for them to distinguish themselves with, but on the off chance that the string is intercepted by an attacker, the aggressor can imagine to be that client. Phiên Php có thể bị hack không?Dữ liệu phiên được lưu trữ trên máy chủ và ID phiên được sử dụng để tham chiếu dữ liệu này cho mỗi yêu cầu. Php sessionID được coi là an toàn. Điều này đã cho những kẻ tấn công có thể ăn cắp phiên cho người dùng khác.The PHP sessionid is considered secure. This made it possible for attackers to steal sessions for other users. Những thực hành tốt nhất để quản lý phiên bảo đảm là gì?Quản lý phiên Thực tiễn tốt nhất Theo OWASP đảm bảo rằng thời gian chờ không hoạt động của phiên càng ngắn càng tốt, nên thời gian chờ của hoạt động phiên nên ít hơn vài giờ. Tạo một định danh phiên mới khi người dùng xác thực lại hoặc mở phiên trình duyệt mới.Ensure that session inactivity timeout is as short as possible, it is recommended that the timeout of the session activity should be less than several hours. Generate a new session identifier when a user re-authenticates or opens a new browser session. Làm thế nào để bạn sử dụng các phiên để cung cấp bảo mật trong một trang PHP giải thích?Có một vài điều cần làm để giữ an toàn phiên của bạn:.. Sử dụng SSL khi xác thực người dùng hoặc thực hiện các hoạt động nhạy cảm .. Tái tạo ID phiên bất cứ khi nào mức bảo mật thay đổi (chẳng hạn như đăng nhập). .... Có thời gian ra ngoài .. Không sử dụng đăng ký toàn cầu .. Lưu trữ chi tiết xác thực trên máy chủ .. |