Các phiên PHP có thể bị tấn công không?

Đánh cắp phiên là một cuộc tấn công trong đó kẻ tấn công đánh cắp phiên hoạt động của người dùng với một trang web để có quyền truy cập trái phép vào các hành động và thông tin trên trang web đó

Phiên lưu trữ thông tin về người dùng ở phía máy chủ, thường là trong tệp hoặc cơ sở dữ liệu. Các phiên an toàn hơn so với việc đưa dữ liệu người dùng vào cookie của trình duyệt vì dữ liệu được lưu trữ không bao giờ rời khỏi máy chủ. Tuy nhiên, để xác định người dùng và cấp cho họ quyền truy cập vào dữ liệu phiên, cần đặt mã định danh tham chiếu phiên ["ID phiên"] trong cookie của trình duyệt. ID phiên này dễ bị đánh cắp vì cookie hiển thị trong bộ lưu trữ và trong quá trình chuyển tiếp. [Mọi yêu cầu đến máy chủ sẽ gửi dữ liệu cookie hiển thị. ] Khám phá ID phiên cung cấp cho kẻ tấn công quyền truy cập vào tất cả dữ liệu phiên. Nhưng tệ hơn nữa, kẻ tấn công có thể mạo danh người dùng. Điều này được gọi là "chiếm quyền điều khiển phiên"

Máy chủ phải giả định rằng mọi yêu cầu bao gồm ID phiên của người dùng phải bắt nguồn từ trình duyệt của người dùng. Kẻ tấn công có thể gửi yêu cầu với ID phiên của người dùng và tự nhận bất kỳ trạng thái nào trước đó được đặt trong phiên. Phiên thường được sử dụng để duy trì trạng thái đăng nhập của người dùng hoặc ủy quyền khác để thực hiện các hành động hạn chế truy cập. Kẻ xâm nhập có phiên đăng nhập có thể thực hiện bất kỳ hành động nào mà người dùng có thể thực hiện. Họ có thể chuyển tiền. Họ có thể xem và chỉnh sửa thông tin cá nhân. Họ có thể thay đổi mật khẩu tài khoản, điều này sẽ khóa người dùng thực. Họ có thể mạo danh người dùng và gửi thông tin liên lạc cho bạn bè và đồng nghiệp dưới dạng một cuộc tấn công lừa đảo trực tuyến [xem Kỹ thuật xã hội]

Chiếm quyền điều khiển phiên yêu cầu kẻ tấn công xác định ID phiên. ID phiên dễ bị tổn thương trong quá trình lưu trữ và chuyển tiếp. Trong bộ lưu trữ, ID phiên có thể bị đánh cắp từ cookie trình duyệt của người dùng, thường thông qua Cross-Site Scripting [XSS]. Trong quá trình truyền, ID phiên có thể được quan sát bằng cách nghe lén lưu lượng mạng. Hãy nhớ rằng, ID phiên được gửi cùng với mọi yêu cầu đến máy chủ

Kẻ tấn công đặc biệt dễ dàng nghe trộm bằng cách kiểm tra tất cả lưu lượng truy cập trên mạng không dây mở và không được mã hóa, chẳng hạn như WiFi miễn phí được cung cấp tại các quán cà phê và các doanh nghiệp khác. Khi giao tiếp qua WiFi, máy tính xách tay hoặc thiết bị di động sẽ phát yêu cầu "vào phòng" và thiết bị WiFi trong phòng sẽ nhận được tín hiệu. Nhưng những chương trình phát sóng này cũng có thể nhìn thấy đối với bất kỳ thiết bị nào khác trong phòng, bao gồm cả kẻ tấn công nghe trộm

Ngăn chặn chiếm quyền điều khiển phiên

Cách phòng ngừa đầu tiên là sử dụng cookie HttpOnly để đặt ID phiên. Kỹ thuật này là một trong những biện pháp phòng ngừa tiêu chuẩn cho Cross-Site Scripting [XSS]. Cookie HttpOnly ngăn kẻ tấn công khám phá ID phiên được lưu trữ bằng cách sử dụng khi tấn công XSS

Một cách phòng ngừa tốt khác là hủy hoàn toàn các phiên bất cứ khi nào người dùng đăng xuất. Thông thường, trạng thái xác thực của người dùng bị xóa nhưng bản thân phiên được giữ lại để sử dụng lại. Kẻ xâm nhập sở hữu phiên đăng xuất có thể chỉ cần đợi phiên đăng nhập lại

Đây cũng là cách tốt nhất để hết hạn và xóa các tệp phiên cũ thường xuyên. Ít phiên tồn tại hơn có nghĩa là ít phiên có thể bị tấn công hơn

Kỹ thuật phổ biến nhất là theo dõi hoạt động cuối cùng của người dùng hoặc lần đăng nhập cuối cùng của họ [hoặc cả hai]. Hoạt động cuối cùng có thể được theo dõi bằng cách kiểm tra dấu thời gian "sửa đổi lần cuối" của tệp phiên hoặc bằng cách tự động cập nhật trường "sửa đổi lần cuối" cho các phiên được lưu trữ trong bảng cơ sở dữ liệu. Sau đó, một tập lệnh được viết sẽ chạy theo các khoảng thời gian định sẵn [cứ sau nửa đêm, bốn giờ một lần, v.v. ] và sẽ xóa các phiên cũ. Quá trình này được gọi là "quét phiên"

Ngoài hoặc thay vì quét, mã có thể kiểm tra các phiên cũ bất cứ khi nào nhận được yêu cầu mới. Đây là một ví dụ trong PHP cho biết cách xác định xem lần đăng nhập cuối cùng của người dùng có cách đây hơn một ngày hay không. Nếu thử nghiệm không thành công thì phiên có thể được tạo lại [xem bên dưới] hoặc người dùng có thể được yêu cầu đăng nhập lại

= time[]];
  }
?>

Một biện pháp bảo vệ mạnh mẽ chống lại việc chiếm quyền điều khiển phiên là tạo lại các mã định danh phiên theo định kỳ và tại các điểm chính. Tạo lại ID phiên làm mất hiệu lực mọi ID phiên bị đánh cắp trước đó. Điều quan trọng nhất là tạo lại ID phiên sau khi đăng nhập thành công. Mọi thông tin phiên hiện có đều được duy trì, chỉ có mã định danh được làm mới

Việc tạo lại ID phiên sẽ không bảo vệ chống lại ID phiên bị đánh cắp gần đây, nhưng nó sẽ giữ cho ID phiên luôn mới và buộc kẻ tấn công sử dụng ID phiên gần đây. Tạo lại ID phiên sau khi đăng nhập cũng là một biện pháp bảo vệ chính chống lại các cuộc tấn công cố định phiên làm cho nó trở thành một biện pháp bảo vệ đáng giá

Biện pháp bảo vệ tốt nhất chống lại việc chiếm quyền điều khiển phiên là buộc các liên lạc được mã hóa, an toàn qua TLS/SSL. Điều này đôi khi còn được gọi là "HTTPS". Cookie sẽ vẫn được gửi với mọi yêu cầu nhưng nội dung của chúng sẽ không hiển thị vì toàn bộ thông tin liên lạc sẽ được mã hóa trong khi truyền

Khi triển khai SSL, có ba biện pháp chính cần được thực hiện

  1. Người dùng phải đăng nhập qua SSL. Biểu mẫu đăng nhập phải là một trang bảo mật và nó sẽ gửi biểu mẫu đăng nhập đến một trang bảo mật. Thông tin đăng nhập của người dùng sẽ được mã hóa và ID phiên được gửi lại sẽ được mã hóa. Nghe trộm sẽ không thể

  2. Các yêu cầu và phản hồi bổ sung cho các trang bị hạn chế truy cập phải qua SSL. Hãy nhớ rằng ID phiên đang được gửi với mọi yêu cầu. Do đó, mọi yêu cầu phải được mã hóa nếu ID phiên vẫn là bí mật

  3. Bạn phải sử dụng "cookie an toàn" để lưu ID phiên. Cookie có thể được định cấu hình là "an toàn", đảm bảo rằng cookie sẽ chỉ được gửi qua kết nối an toàn. Nếu không bật cài đặt này, bất kỳ lượt truy cập nào vào trang không có SSL trên cùng một miền đều có thể gửi và hiển thị cookie chứa ID phiên

Nhiều dịch vụ web chỉ bao gồm SSL làm tùy chọn người dùng và nhiều dịch vụ khác đã bắt đầu biến nó thành tự động và bắt buộc. Trong vài năm qua, Tìm kiếm của Google bao gồm HTTPS trong thuật toán xếp hạng của họ

Electronic Frontier Foundatino [EFF] đang chạy một chiến dịch được công bố rộng rãi cho "HTTPS Everywhere". Mục tiêu của họ là làm cho SSL dễ triển khai hơn và khuyến khích các nhà phát triển đặt nó làm mặc định

Một lời khuyên phổ biến để ngăn chặn việc chiếm quyền điều khiển phiên là xác nhận rằng chuỗi tác nhân người dùng [loại trình duyệt] cho yêu cầu khớp với chuỗi tác nhân người dùng được sử dụng khi đăng nhập. Ý tưởng là người dùng có thể không thay đổi trình duyệt giữa các yêu cầu

Khi đăng nhập, ứng dụng lưu trữ chuỗi tác nhân người dùng trong tệp phiên. Với mỗi yêu cầu, ứng dụng sẽ kiểm tra chuỗi tác nhân người dùng mới và so sánh nó với chuỗi được lưu trữ. Nếu thử nghiệm không thành công, thì phiên có thể được tạo lại hoặc người dùng có thể được yêu cầu đăng nhập lại

Kỹ thuật này chỉ cung cấp một phòng thủ nhỏ. Chuỗi tác nhân người dùng hiển thị trong tiêu đề yêu cầu. Kẻ tấn công nghe trộm lưu lượng mạng sẽ thấy chuỗi chính xác và có thể dễ dàng giả mạo yêu cầu bằng chuỗi chính xác

Việc người dùng di chuyển giữa các thiết bị [máy tính để bàn, máy tính xách tay, máy tính bảng, điện thoại] cũng trở nên phổ biến hơn. Một chuỗi tác nhân người dùng có thể được lưu trữ trên mỗi thiết bị, nhưng nếu nó được lưu trữ trên mỗi người dùng, thì phải đưa ra lựa chọn có nên buộc người dùng đăng nhập lại bất cứ khi nào họ thay đổi thiết bị hay không

Tương tự như kiểm tra chuỗi tác nhân người dùng, đôi khi việc kiểm tra địa chỉ IP sẽ được khuyến nghị như một biện pháp phòng chống chiếm quyền điều khiển phiên. Kiểm tra này không được khuyến khích vì nó rất không đáng tin cậy và có lỗi. Địa chỉ IP của người dùng có thể thay đổi. Điều này đặc biệt đúng với việc sử dụng ngày càng nhiều các thiết bị di động di chuyển liền mạch giữa các điểm truy cập không dây và tháp điện thoại di động. Cũng đúng là nhiều máy tính có thể chia sẻ cùng một địa chỉ IP. Điều này rất phổ biến trong môi trường doanh nghiệp và trên mạng không dây. Nếu kẻ tấn công ở trong cùng một quán cà phê và quan sát lưu lượng truy cập không dây của người dùng, thì họ có thể đã sử dụng cùng một địa chỉ IP

Các phiên PHP an toàn đến mức nào?

“Phiên làm việc PHP có an toàn không? . Các phiên PHP sẽ cho phép máy khách một chuỗi giả ngẫu nhiên [“ID phiên”] để chúng phân biệt, nhưng nếu 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 đó. 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 có thể bị tấn công không?

Chiếm đoạt phiên là một kỹ thuật được tin tặc sử dụng để giành quyền truy cập vào máy tính hoặc tài khoản trực tuyến của mục tiêu . Trong một cuộc tấn công chiếm quyền điều khiển phiên, tin tặc chiếm quyền kiểm soát phiên duyệt web của người dùng để có quyền truy cập vào thông tin cá nhân và mật khẩu của họ.

Cookie phiên có thể bị đánh cắp không?

Cookie phiên chứa ID phiên của bạn, mã này xác định duy nhất tài khoản của bạn mỗi khi bạn đăng nhập vào một dịch vụ trực tuyến. Nếu họ nhận được ID phiên của bạn, họ có thể xâm phạm tài khoản của bạn. Tội phạm mạng luôn thử nghiệm các cách để đánh cắp cookie của bạn , bao gồm các cuộc tấn công như. Các cuộc tấn công vũ phu.

Các phiên được theo dõi trên PHP như thế nào?

Các chức năng phiên theo dõi người dùng bằng cách cấp cho họ cookie có ID phiên được tạo ngẫu nhiên . Nếu PHP phát hiện ra rằng người dùng không chấp nhận cookie ID phiên, nó sẽ tự động thêm ID phiên vào URL và biểu mẫu.

Chủ Đề