B o m t máy ch web: L i Include và cách kh c ph cả ậ ủ ỗ ắ ụ
Đôi khi vào các trang hacker , b n hay th y các l i b o m t mà hacker đã ạ ấ ỗ ả ậ
dùng nh ng cách th c h t s c đ n gi n đ l y username và password vào ữ ứ ế ứ ơ ả ể ấ
root c a host nh ../../../../../ ect/passwd. Đó chính là m t ph n c a l i ủ ư ộ ầ ủ ỗ
include. Nói m t cách t ng quát, l i include là m t lo i l i do s b t c n ộ ổ ỗ ộ ạ ỗ ự ấ ẩ
khi l p trình gây ra và l i này có th kh c ph c m t cách d dàng.ậ ỗ ể ắ ụ ộ ễ
Include là gì? Include nghĩa là k t n i, lien k t .ế ố ế Đ tránh vi c l p đi l p l iể ệ ặ ặ ạ
m t đo n mã nào đó, l p trình viên ch c n dùng l nh include đ n m t file ộ ạ ậ ỉ ầ ệ ế ộ
có ch a mã s n . Vì th , trong m t mã ngu n ( tin t c, di n đàn, âm ứ ẵ ế ộ ồ ứ ễ
nh c…) có ch a r t r t nhi u các l nh Include. Và trong hàng ngàn dòng ạ ứ ấ ấ ề ệ
l nh thì sai sót nh ng n i không m y quan tr ng là đi u không th tránh.ệ ở ữ ơ ấ ọ ề ể
D a vào hình th c chúng ta có th phân ra 2 lo i: remote file và local.ự ứ ể ạ
I. L i remote fileỗ
a/ L i khai báo bi n:ỗ ế
Vd1: Ta có m t fileộ exam1.php nh sau:ư
$mkdir=”/home”;
Include($mkdir/config.php);
[…code exam1.php] ?>
Ta th y r ng file này không có l i. Tr c tiên l p trình viên (LTV) khai báo ấ ằ ỗ ướ ậ
bi n $mkdir là “/home”. Sau đó LTV dùng l nh include v i đ ng d n đ n ế ệ ớ ườ ẫ ế
file config.php là giá tr đã khai báo bi n $mkdir.ị ở ế
Vd2: Tôi l i có m t fileạ ộ exam2.php nh sau:ư
$mkdir =” “;
Include($mkdir/config.php);
[…code exam2.php] ?>
Đã có l i x y ra. Vì fileỗ ả config.php n m chung m t th m c v i ằ ộ ư ụ ớ
file exam2.php nên không c n khai báo bi n $mkdir. Bi n $mkdir đã khôngầ ế ế