Lỗi bảo mật Register_globals

Tác giả admin+, T.Ba 18, 2011, 05:54:40 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Lỗi bảo mật Register_globals

1. Cấu hình PHP với register_gobals = On.

Nếu cấu hình của máy chủ với PHP: register_gobals = On thì có thể sẽ dẫn đến một trong các lỗi bảo mật sau.
Giả sử tập tin index.php có nội dung như sau.

Mã nguồn [Chọn]
<?php
if($root){
print 
"Value: $root";
}
?>


Nếu chúng ta gọi: index.php thì không có chuyện gì xảy ra, nhưng khi gọi index.php?root=2 thì kết quả sẽ xuất ra sẽ là 2. Điều này có nghĩa là biến root có thể thay đổi từ URL thì sẽ nguy hiểm cho máy chủ.
Ví dụ như sau đây.
Mã nguồn [Chọn]
<?php
if($permission){
//thực hiện quyền admin
}
?>


Như vậy bất kỳ ai cũng có thể truy cập vào quyền quản trị nếu sử dụng cách đã nói ở trên.

2. Cách khác phục.

Trong trường hợp này thì chúng ta có 2 cách để xử lý.

       
  • Cấu hình PHP với register_globals = OFF.

       
  • Định nghĩa biến $root trước.
Mã nguồn [Chọn]
<?php
$root 
0;
if(
$root){
print 
"Value: $root";
}
?>