Chia Sẽ Kinh Nghiệm Về IT



Tìm Kiếm Với Google
-


Gởi Ðề Tài Mới  Gửi trả lời
 
Công Cụ Xếp Bài
Tuổi 09-11-2009, 01:23 PM   #1
hoctinhoc
Guest
 
Trả Lời: n/a
Hãy đổi tên tập tin config.php vì lý do bảo mật
Hãy đổi tên tập tin config.php vì lý do bảo mật


Có 3 lý do để bạn thực hiện điều này:

Một là: đây là tập tin quan trọng chứa tài khoản CSDL của bạn, bao gồm: tên CSDL, tên đăng nhập CSDL và mật khẩu đăng nhập CSDL. Khi bạn để lộ 3 thông tin này cho người khác, họ đã đủ điều kiện cần và đủ để truy cập vào CSDL của bạn bằng nhiều đường khác nhau, có thể bằng một phần mềm quản lý SQL cũng được. Bởi vì thông thường, CSDL có Host Name truy cập chính là tên miền đang sử dụng và cổng mặc định là 3306. Bạn nghĩ đến việc thay đổi cổng? Việc này dường như quá tầm với của bạn khi sử dụng các gói hosting chung với người khác.

Hai là: bình thường một kẻ cố truy cập trực tiếp tập tin config.php của bạn sẽ cho ra một trang trắng trên trình duyệt. Nhưng nếu giả sử trình biên dịch PHP trên máy chủ của bạn gặp sự cố (hoặc khi nâng cấp server, dịch vụ hosting thường tắt hết các trình biên dịch PHP), các tập tin PHP không còn được biên dịch để trả kết quả về trình duyệt người xem nữa, nó sẽ xuất ra "hết thảy những gì mình có" lên trình duyệt. Khi đó kẻ truy cập đó có thể xem tất tần tật tập tin config.php của bạn bằng trình duyệt.

Ba là: dù không có chuyện gì xảy ra, một khi biết được tên tập tin config.php của bạn và vị trí của nó, kẻ tấn công bạn vẫn có thể sử dụng lệnh include() từ một nơi nào khác, "include" tập tin config.php trên máy chủ bạn rồi xuất ra các biến: $dbhost, $dbname, $dbuser và $dbpasswd trong tập tin kết quả của chúng.

Để giải quyết vấn đề, thường thì có người đề xuất di chuyển tập tin config.php ra khỏi thư mục wwwroot hay httpdocs trên máy chủ để không bị truy cập từ trình duyệt. Nhưng nếu bạn cài 2 forum trở lên thì sao? Và có thể bạn không được phép upload ngoài thư mục wwwroot/httpdocs khi sử dụng chung hosting. Đơn giản là bạn chỉ cần đổi tên lại tập tin config.php của mình, càng "kinh khủng" bao nhiêu càng an toàn bấy nhiêu. Quan trọng là bạn phải tắt chức năng duyệt thư mục trực tiếp (Directory Browsing) trên máy chủ của mình.




1. Di chuyển file config

Bạn mở thư mục admincp (hoặc thư mục tương đương mà bạn đã đổi tên) tìm file diagnostic.php
Bạn tìm đoạn

Mã:
 	 	 		 			 				/includes/config.php
Thay bằng tên thư mục chứa file config mới và tên file config mới
VD:
Mã:
 	 	 		 			 				/images/abc.php
Tiếp đến bạn tìm file class_core.php trong thư mục includes
Tìm đoạn

Mã:
 	 	 		 			 				includes/config.php
thay tương tự như bên trên (trong file class_core.php có 2 chỗ cần thay)

Bây giờ bạn upload 1 file copy của file config.php lên chỗ mà bạn muốn di chuyển, đổi tên nếu thích, rồi quay trở lại file config.php trong thư mục includes và thay đổi thông số DB của bạn đi.

Khuyến cáo các bạn nên làm cả 2 phần 1 và 2.


2. Thay đổi tên thư mục admincp và modcp


Bạn mở thư mục includes mở tiếp file config.php
Tìm đoạn sau:
Mã:
 	 	 		 			 				$config['Misc']['admincpdir'] = 'admincp';
$config['Misc']['modcpdir'] = 'modcp';
Thay admincp và modcp bằng tên mà bạn sẽ đổi cho 2 thư mục này.

Chú ý: Nên chèn các ký tự dạng @,_,# vào tên các thư mục này khi đổi tên.


3. Bảo vệ thư mục và file bằng CHMOD

Bạn CHMOD toàn bộ các thư mục trong thư mục gốc giá trị là 101 và toàn bộ các file ngoài thư mục gốc có giá trị là 400.
Nếu bạn đặt file bộ gõ ở thư mục gốc thì phải CHMOD cho file này là 444.

Khi CHMOD theo các giá trị như trên thì sẽ hạn chế được local, vì các lệnh show thư mục sẽ không hiển thị được, ngay cả khi bạn dùng chương trình FTP cũng không thể hiển thị được nội dung thư mục. Nếu muốn sửa, xoá, up thêm file vào trong thư mục hoặc sửa các file ở thư mục gốc, bạn phải CHMOD cho nó trở về giá trị ban đầu. Giá trị CHMOD mặc định của thư mục là 755 và của file là 644.


4. Thêm khoá bảo vệ thư mục admincp

Cpanel của host thường có chức năng đặt pass cho dir ...các bạn sử dụng để đặt pass cho dir admincp


Trên đây cũng chỉ là vài biện pháp đơn giản để phòng thủ thôi chứ cũng không phải hoàn thiện được.
Nhớ cẩn thận nha, bài này mình đã làm thành công rồi.




Đổi tên file config


Cài đặt:

Step 1: Open includes/class_core.php and find:
Tìm:
==================================================

Mã:
 	include(CWD . '/includes/config.php');

		if (sizeof($config) == 0)
		{
			if (file_exists(CWD. '/includes/config.php'))
			{
				// config.php exists, but does not define $config
				die('<br /><br /><strong>Configuration</strong>: includes/config.php exists, but is not in the 3.6+ format. Please convert your config file via the new config.php.new.');
			}
			else
			{
				die('<br /><br /><strong>Configuration</strong>: includes/config.php does not exist. Please fill out the data in config.php.new and rename it to config.php');
			}
		}
================================================== ===

And replace with
Thay thế bằng
================================================== ===

Mã:
 	include(CWD . 'XXXXX');

		if (sizeof($config) == 0)
		{
			if (file_exists(CWD. 'XXXXX'))
			{
				// config.php exists, but does not define $config
				die('<br /><br /><strong>Configuration</strong>: includes/config.php exists, but is not in the 3.6+ format. Please convert your config file via the new config.php.new.');
			}
			else
			{
				die('<br /><br /><strong>Configuration</strong>: includes/config.php does not exist. Please fill out the data in config.php.new and rename it to config.php');
			}
		}
================================================== ======

Ngay phần XXXXX đường dẫn đến file config mới
VD: admincp/mynewconfig.php or includes/configuration.php


Done!




ST

  Trả lời ngay kèm theo trích dẫn này
Gửi trả lời


Công Cụ
Xếp Bài

Quyền Hạn Của Bạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Hình Cảm xúc đang Mở
[IMG] đang Mở
Mã HTML đang Tắt




Bây giờ là 07:56 PM. Giờ GMT +7



Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.