Gợi ý những cách bảo mật website thiết kế bằng PHP

0

 

Để bảo mật website PHP có rất nhiều cách, sau đây là một số gợi ý giúp bạn tăng độ bảo mật cho website của mình, những gợi ý này chỉ áp dụng cho website thiết kế dựa trên mã nguồn PHP, các bạn cùng theo dõi và tham gia thảo luận để bổ sung nhé.

bao_mat_website_php

Gợi ý những cách bảo mật website PHP

Ngôn ngữ PHP được ứng dụng để thiết kế website theo nhiều nhu cầu khác nhau, từ những website đơn giản không cần database dùng làm trang web giới thiệu công ty, cho đến những website lớn với database chứa nhiều thông tin quan trọng : website thương mại điện tử, website bán hàng trực tuyến, website chính phủ… Có hơn 50% số lượng trang web trên thế giới dùng ngôn ngữ này.

Tỷ lệ website sử dụng các mã nguồn khác nhau

Tỷ lệ website sử dụng các mã nguồn khác nhau

Tuy nhiên cũng chính vì mức độ phổ biến như vậy nên các hacker thường tập trung nghiên cứu và khai thác lỗi trên các website sử ngôn ngữ PHP hơn các website sử dụng ngôn ngữ khác. Kéo theo đó chính là những cuộc tấn công vào các website nhằm mục đích phá hoại, cạnh tranh kinh doanh không lành mạnh, thậm chí là khai thác thông tin khách hàng, thông tin tài khoản ngân hàng để trục lợi…

Vậy phải làm sao để tự bảo vệ mình trước những nguy cơ đó? Hãy theo dõi bài viết này. SagaLink sẽ hướng dẫn các bạn một vài thủ thuật nhỏ nhưng mang lại hiệu quả cao trong việc bảo mật website trước các hacker.

Nhưng để có thể thực hiện được các thủ thuật này bạn nên biết một số đặc điểm của ngôn ngữ PHP :

Ngôn ngữ PHP được xem như một dạng đóng gói cao cấp hơn dạng website dùng ngôn ngữ HTML. Để sử dụng được ngôn ngữ PHP khi thiết kế web, các website thường phải thuê hosting hỗ trợ PHP, Apache. Nếu website sử dụng database, hosting phải hỗ trợ thêm MySQL. Các thành phần này muốn chạy ổn định thì yêu cầu phải sử dụng hệ điều hành Linux làm nền tảng. Hệ điều hành Windows cũng có thể chạy được PHP nhưng thường phát sinh lỗi, và nhìn chung là không tương thích. Đại khái bạn nên hiểu : PHP là phải chạy trên Linux, dùng database là MySQL.

CHMOD File và thư mục

Nói đến Linux, hệ điều hành này là hệ điều hành mã nguồn mở, cơ cấu quản lý và phân quyền cũng khác hẳn hệ điều hành Windows. Nếu như với windows bạn biết đến chức năng Permisson phân quyền truy cập tập tin hoặc thư mục cho user (người dùng) group (nhóm người dùng)… , thì đối với Linux, chức năng này là CHMOD. Đối tượng được phân quyền của CHMOD bao gồm Owner (chủ sở hữu – có quyền cao nhất), Group (nhóm người dùng) và Public (là tất cả mọi người)

Vậy website chạy trên Linux ta phải CHMOD thế nào cho bảo mật :

chmod cho thu muc va file

CHMOD các thư mục và file quan trọng giúp tăng bảo mật cho website

– Với các file và thư mục quan trọng dùng để khai báo thông tin truy cập đến máy chủ. Bạn nên CHMOD 404 cho file và 101 cho thư mục, với cách phân quyền như vậy, tất cả các file chỉ cho phép đọc (đối với cả nhóm Owner). Khi cần bạn có thể CHMOD lại để chỉnh sửa. Còn đối với thư mục CHMOD 101 tương ứng các nhóm chỉ được xem chứ không thể thay đổi.
– Tuy nhiên không phải toàn bộ các web hosting đều cho phép phân quyền như vậy. Vì vậy đối với các máy chủ đó ta phải phân quyền 644 cho file. và 755 cho thư mục.

Sau khi đã phân quyền hợp lý bạn mới chỉ bảo mật được khoảng 30% cho website, việc tiếp theo bạn cần phải làm đó là thay đổi các đường dẫn mặc định của website.

Thay đổi tên các thư mục quan trọng

– Đối với các máy chủ web dùng Direct Admin, thư mục chứa website thường là /public_html/ bạn nên thay đổi sang tên khác. Đây là một hình thức ẩn mình để phòng chống bị tấn công, Vì đơn giản lúc này các hacker sẽ không biết website của bạn nằm ở đâu.
– Tương tự với máy chủ web dùng Cpanel. Thư mục chứa web là /httpdocs/.
– Ngoài ra đối với một số mã nguồn mở như Joomla, NukeViet… hoặc tốn phí như VBB, Drupal… các đường dẫn mặc định cho thư mục quản trị thường là /administrator, /admincp, … bạn cũng nên thay đổi đường dẫn mặc định này.

Mã hóa các file chứa thông tin quan trọng

Bước tiếp theo là mã hóa các file chứa thông tin nhạy cảm (thường là config.php, libs.php, configuration.php.. ) để mã hóa file hosting của bạn phải hỗ trợ trình giải mã ngược, để server web hiểu được nội dung đã bị mã hóa (đơn cử như website phải hỗ trợ ionCubeloader chẳng hạn)

ma hoa file quan trong chua thong tin quan tri

Mã hóa những file quan trọng chứa thông tin quản trị

Thay đổi tiền tố bảng dữ liệu:

Hạn chế sử dụng tiền tố (prefix) mặc định trong bảng dữ liệu của các mã nguồn phổ biến, ví dụ Joomla sẽ dùng tiền tố jos_ mặc định khi khai báo thông tin trong các bảng của database MySQL. Bạn nên đổi thành tiền tố khác như : sitecuaban_ chẳng hạn.

Một website vì một lý do nào đó, có thể bị mất file index.php, default.php …dùng để hiện thị nội dung trang chủ. Nếu xảy ra trường hợp này. Khi truy cập đến website, toàn bộ các file khác và thư mục con… sẽ bị hiển thị ra, và dễ dàng bị hacker tải mã nguồn của bạn.

Cách xử lý như sau: bạn tạo một file index.html đặt ngang hàng với file index.php (trình duyệt sẽ ưu tiên file PHP. nên việc tạo file HTML sẽ không ảnh hưởng gì cả). Nội dung file index.html có thể để trống hoặc thêm gì tùy bạn. Sau đó CHMOD cho file này là 404 hoặc 704. Tức là chỉ cho phép đọc. Khi file index.php bị mất, nếu gõ địa chỉ website, trình duyệt web sẽ dùng file index.html để thay thế.

Thực hiện đến đây, bạn đã bảo mật được website đến 90%. Tuy nhiên vẫn còn một điểm phải chú ý. Đó là trên giao diện trang web, bạn nên tránh các dạng Submit Form (khung gửi thông tin) hoặc công cụ đính kèm file lên web. Nếu không thể hạn chế bạn thì nên tạo chế độ để quản lý phần mở rộng. (Ưu tiên cấm các phần mở rộng là vbs, js, html, php… – Các phần mở rộng này thường dễ dàng tích hợp mã độc. Vô tình chính là cánh cửa giúp hacker đánh sập website của bạn)

Nói tóm lại để bảo mật website bạn nên làm qua các bước sau

1. CHMOD file hợp lý.
2. Đổi đường dẫn mặc định đến thư mục chứa web hoặc thư mục chứa trang quản trị
3. Mã hóa các file chứa thông tin quan trọng
4. Tránh sử dụng các tiền tố dữ liệu mặc định của mã nguồn.
5. Tạo file index.html ở thư mục gốc và các thư mục khác để hạn chế việc hiện ra toàn bộ file và thư mục con.
6. Hạn chế sử dụng công cụ gửi thông tin, công cụ đính kèm, tải lên tập tin.

Leave a comment