10/10/2018, 10:50
có cách nào tạo file .htaccess tránh truy cập trái phép ?
mình tạo xong một ứng dụng web tên là "ung_dung_web" , thư mục đó chứa file index.php và 2 thu mục "a","b"
trong thư mục "a" thì chứa 2 file "1.php","2.php"
trong thư mục "b" thì chứa 2 file "3.php","4.php"
còn file "index.php" thì nôm na là include lại 4 file 1.php,2.php,3.php,4.php nằm trong 2 thư mục "a","b"
và đương nhiên để chạy ứgn dụng này thì chỉ chạy file index.php thui
--> sẽ chạy link http://localhost/ung_dung_web/
tuy nhiên ở đây nếu như người ta chạy các link
http://localhost/ung_dung_web/a/1.php
http://localhost/ung_dung_web/a/2.php
http://localhost/ung_dung_web/b/3.php
http://localhost/ung_dung_web/b/4.php
thì sẽ chạy dc các link này , nhưng đây là điều mình không muốn bởi vì nếu nhu file 1.php,2.php có phần sử lý sql thêm, sữa , xóa thì có thể phá được co so du lieu của mình (se thực hiện ínert,delete gì đó)
đương nhiên để giải quyết chuyện đó chỉ cần code php đàng hoàn vào các file 1.php,2.php sẽ không xảy ra hiện tuong tren
nhung ở đây là là do ứng dụng viết xong có nhìu file như thế quá , fix môi tay nên mình muốn tìm hiểu xem .htaccess có thể làm chuyện đó dc hông
trong thư mục "a" thì chứa 2 file "1.php","2.php"
trong thư mục "b" thì chứa 2 file "3.php","4.php"
còn file "index.php" thì nôm na là include lại 4 file 1.php,2.php,3.php,4.php nằm trong 2 thư mục "a","b"
và đương nhiên để chạy ứgn dụng này thì chỉ chạy file index.php thui
--> sẽ chạy link http://localhost/ung_dung_web/
tuy nhiên ở đây nếu như người ta chạy các link
http://localhost/ung_dung_web/a/1.php
http://localhost/ung_dung_web/a/2.php
http://localhost/ung_dung_web/b/3.php
http://localhost/ung_dung_web/b/4.php
thì sẽ chạy dc các link này , nhưng đây là điều mình không muốn bởi vì nếu nhu file 1.php,2.php có phần sử lý sql thêm, sữa , xóa thì có thể phá được co so du lieu của mình (se thực hiện ínert,delete gì đó)
đương nhiên để giải quyết chuyện đó chỉ cần code php đàng hoàn vào các file 1.php,2.php sẽ không xảy ra hiện tuong tren
nhung ở đây là là do ứng dụng viết xong có nhìu file như thế quá , fix môi tay nên mình muốn tìm hiểu xem .htaccess có thể làm chuyện đó dc hông
Bài liên quan
- các file 1,2,3,4.php được sử dụng trong file index.php . ai có đủ quyền truy cập vào index.php thì cũng có thể được hành động như trong các file 1.2.3.4.php . phòng tránh ở đây là tránh những người ko được dùng index.php nhưng vẫn dùng lén dc 1,2,3,4.php . thì trong 4 file kiểm tra điều kiện được sử dụng như trong file index.php. điều kiện gì thì tùy thuộc vào ứng dụng bạn nhá.
-cách thứ 2 là tại file index.php tạo ra 1 hằng số . trong file 1,2,3,4.php kiểm tra xem hằng số này tồn tại hay ko , nếu ko thì báo lỗi ko cho truy cập , nếu tồn tại thì sẽ sử dụng được (vì lúc này chính xác là file index.php đang sử dụng các file trên)
nhưng 1 ứng dụng web đâu chỉ có 4 file 1,2,3,4.php mà còn nhìu file (có khi lên trăm file)(mình kẹt là ở chỗ khi viết code không phải lúc nào cũng nhớ để ghi ra hằng số nên thanh ra có file kiểm tra dc có file thì không) --> moi thử suy nghi xem .htaccess có làm dc không , chứ h check lại từng file thì hơi bị mệt
Thao tác này chưa tới 10 phút, quá ngắn so với thời gian chờ câu trả lời đích thực. (Có lẽ những người có thể trả lời đều kéo nhau đi lập nhóm riêng hết rồi)
Cách này có một ưu điểm là có thể xuất trực tiếp câu thông báo cho người dùng biết.
Còn muốn dùng .htaccess thì thử như thế này, trong mỗi thư mục a, b, ... tạo file .htaccess với nội dung:
thank all
main_lib.php
Trong main_lib:
// code thư viện
// kiểm tra có khai báo hằng số không, nếu không thì redirect
if(!defined('tên hằng số'))
{
// redirect
}
Trong index.php
define hằng số
include main_lib.php
Các file abc thì include main_lib nhưng không có dòng define