1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Dịch vụ bảo mật website - tối ưu hóa website - sửa lỗi website
  3. - Chào Guest! Bạn vui lòng đọc qua NỘI QUY của HVN trước khi làm 1 việc gì đó để tránh bị hệ thống xóa tài khoản không thông báo.
    Bạn có thể thao khảo qua các cập nhật mới nhất của HVN tại đây
    - Nếu Bạn là Khách bạn không thể xem các chủ đề mới nhất bằng Thống kê, Và bạn chỉ được đọc 5 bài Viết Của HVN mà thôi. Để tiếp tục vui lòng đăng ký thành viên TẠI ĐÂY

    - Đăng nhập để ẩn quảng cáo.

Security Bảo mật các hosting sử dụng php trên apache

Discussion in 'Bảo Mật Server' started by Hackerpro536, Mar 29, 2016.

Lượt xem: 196

Thread Status:
Not open for further replies.
  1. Hackerpro536

    Hackerpro536 Administrative Staff Member Administrator Moderator
    • 113/113

    Joined:
    Aug 30, 2012
    Messages:
    6,736
    Likes Received:
    6,070
    Gender:
    Male
    PHP là một công cụ mã nguồn mở tuyệt vời để xây dựng các ứng dụng web. Tuy nhiên vì là mã nguồn mở nên nó cũng chứa đựng nhiều lỗ hổng bảo mật nghiêm trọng mà nếu không được xây bịt lại, sẽ trở thành chỗ chui ra chui vào của các hacker thích nhòm ngó website của người khác. Bài viết này nêu lên một số lỗ hổng bảo mật của php và cách khắc phục

    Cách phân quyền truy cập file của linux
    PHP và apache dựa hoàn toàn vào cấu trúc file và thư mục của hệ điều hành linux, các quyền hạn này được gán cho user apache và user quản lý hosting do direct admin tạo ra. Và thư mục /home/tenhosting là thư mục được gắn với user quản lý hosting với quyền của chủ sở hữu là quyền cao nhất. Chúng ta ôn lại cách phân quyền của linux để hiểu được vì sao hacker có thể kiểm soát dữ liệu trong file của chúng ta

    Một file và thư mục sẽ có quan hệ "phân quyền" đối với 3 chủ thể:

    • Owner : người "sở hữu" host.
    • Group : là nhóm người dùng.
    • World : bất kì ai.
    Mỗi một nhóm trên có thể được phân 1 hoặc tất cả các quyền sau
    • Read : đọc (r = 4)
    • Write : ghi (w = 2)
    • Execute : thực thi (x = 1)
    Ở mức hệ điều hành, người user là chủ sở hữu thư mục/file hoặc user root có thể dùng lệnh chmod để đặt lại các quyền này. Ví dụ lệnh chmod 751 abc là lệnh phân quyền (rwx) (r-x) (--x) cho thư mục abc. Có nghĩa là chủ sở hữu có đầy đủ quyền đọc ghi, thực thi (rwx), các thành viên cùng nhóm có quyền đọc, thực thi (r-x), còn người dùng bất kỳ chỉ có quyền thực thi (--x).

    Lỗ hổng đáng sợ nhất là php và apache cho phép user chủ sở hữu của hosting tức là chủ sở hữu của home directory được truy cập qua http, và PHP có hàm chmod có chức năng tương tự như lệnh chmod của linux. Do vậy khi một hacker đã nắm quyền kiểm soát thư mục của bạn, thì hacker đó có thể chỉ cần thông qua giao diện web để tác động đến các file trong hệ thống mà không cần phải ssh hay remote.

    Do vậy khi tiếp nhận một website, chúng ta cũng cần duyệt qua các file được phân quyền thế nào và áp dụng các chính sách phân quyền như dưới đây để đảm bảo an toàn

    • chmod 404 (chỉ cho phép đọc) tất cả các file. (cấm ghi đè vào các file)
    • chmod 101 (chỉ cho thực thi) tất cả các folder.
    • chmod 501 thư mục /public_html/

    Các cách chmod trên đều không cho write, do đó bố cục được bảo toàn, đồng thời không thể xem cấu trúc site, thư mục, file. Có thể nói đó là các chmod an toàn nhất mà ứng dụng web như diễn đàn, site nhạc, tin tức có thể hoạt động ổn định.

    Giấu đường dẫn

    Khi đăng kí hosting, domain chính thường được trỏ vào ngay trong thư mục /public_html/, điều này giúp "kẻ tấn công" dễ dàng mò đến file quan trọng của website (vd như file config.php của các forum chẳng hạn), và khi đó thông tin đăng nhập quản lí cơ sở dữ liệu của website đã bị kẻ xấu lấy mất. Điều tệ hại gì sẽ xảy ra ?

    Để khắc phục điểm này, ta nên yêu cầu bên cung cấp hosting tạo host không có domain (tên miền) chính và để ta tự gắn vào bằng chức năng add-on domain. Khi add domain sẽ có chỗ để bạn nhập đường dẫn đến thư mục mà domain sau khi gắn thành công sẽ trỏ vào như hình2.

    VD: /public_html/foder1/folder2/folder3/forum/

    Sau khi bạn bấm add các thư mục folder1, folder2, …, forum sẽ được tự động tạo ra. Và bây giờ bạn áp dụng cách chmod ở trên để chmod các thư mục folder1, folder2 … để giấu đường dẫn của site trên server.

    Không hiển thị lỗi nếu phát sinh

    Khi có lỗi phát sinh, PHP sẽ hiện thông báo ra trình duyệt và chỉ rõ lỗi ở file nào, dòng nào và đường dẫn của file, vì thế điều này rất nguy hiểm. Để che lỗi, bạn tạo một file php.ini với nội dung như sau:

    display_errors = Off
    log_errors = On


    Sau đó upload lên thư mục chứa website.

    Gợi ý: bạn nên up file php.ini trên vào các thư mục mà người dùng sẽ truy cập bằng trình duyệt, thường là thư mục chứa website, thư mục quản trị, thư mục của user …

    Bật vô hiệu các hàm nguy hiểm
    Các hàm passthru, shell_exec, chmod của PHP sẽ cho phép chúng ta thông qua giao diện web, thực thi các lệnh trên hệ thống y hệt như khi chúng ta login vào linux. Vì vậy, nếu website của chúng ta không cần can thiệp nhiều đến hệ thống thì nên disable các hàm này đi, tránh các hacker lợi dụng. Để làm như vậy, hãy thêm hoặc edit dòng sau trong nội dung file php.ini

    disable_functions = passthru, system, shell_exec, exec, dir, readfile, virtual, proc_terminate, chmod


    Phân quyền account truy cập cơ sở dữ liệu MySQL

    Khi bạn tạo user truy cập vào database, bạn cần lưu ý, không dùng user và pass của host làm user của database. Không tạo quá nhiều user cho database mà chỉ nên tạo một user duy nhất để kết nối.


    Mã hoá các file chứa thông tin nhạy cảm

    Các file nhạy cảm chứa các thông tin kết nối cơ sở dữ liệu như config.php với các kiểu mã hoá như base64 của PHP. Nếu mã hoá base64 PHP thì các bạn có thể dùng google để tìm với từ khoá base64 encode
    Mình xin giới thiệu một link để các bạn mã hoá base64 file php:

    Bạn vui lòng Đăng Ký or Đăng Nhập của HVN để có thể xem nội dung này.



    8. Ngăn download source code khi server gặp sự cố:

    Tạo file .htaccess nội dung như sau:

    Order Allow,Deny
    Deny from All



    Mục đích để ngăn cản việc download source code khi PHP bị overload hoặc terminated. Nguyên nhân có thể đến từ bên trong hoặc bên ngoài. Tôi không đề cập ở đây.

    Vô hiệu hoá biên dịch mã PHP trong thư mục chỉ định

    Nếu bạn có một thư mục dành cho việc upload, bạn nên vô hiệu hoá việc biên dịch và thực thi mã PHP trong thư mục ấy vì attacker có thể lợi dụng việc upload để đưa script độc (webshell) lên host của bạn.

    Tạo file .htaccess đặt vào thư mục đó với nội dung như sau:

    php_admin_flag engine off

    Sau đó chmod 444 cho file.



    Lưu ý cuối cùng:

    Thường xuyên cập nhật vá lỗi cho website và đặt một mật khẩu quản trị tương đối kiên cố, liên hệ với nhà cung cấp dịch vụ để sửa lỗi.

    File php.ini mình đề cập ở trên chỉ có tác dụng tại thư mục chứa nó, các thư mục không chứa nó sẽ không bị nó chi phối mà sẽ bị cấu hình trong php.ini của server chi phối.

    Các file php.ini và .htaccess nên chmod 444 để bảo vệ cấu hình.
     
    conkhidan likes this.
Tin đăng được kiểm duyệt. Tất cả Bài viết và Tài khoản của Bạn sẽ bị xóa nếu:

✓ Không được bình luận vào các bài viết quá lâu quá 3 tháng so với hiện tại (đào top)
✓ Tiêu đề tin đăng Viết hoa (Không được viết hoa tiêu đề)
✓ Đăng tin bài không đúng chuyên mục nhiều lần.
✓ Đăng bài nội dung nhằm SEO, chèn từ khóa không liên quan đến bài viết vào diễn đàn.
✓ Nội dung bài viết không Logic, Tin đăng có nhiều khoảng trống
✓ Cố tình Spam, đăng nội dung không theo quy định tại diễn đàn.

Thread Status:
Not open for further replies.

Share This Page

Users Viewing Thread (Users: 0, Guests: 0)