NTHa ✓ Best Choice For You
Không có Kế quả nào!
Xem Tất Cả Các Kết Quả
  • Home
  • Marketing
  • WordPress
  • Server
  • Liên hệ
NTHa ✓ Best Choice For You
  • Home
  • Marketing
  • WordPress
  • Server
  • Liên hệ
Không có Kế quả nào!
Xem Tất Cả Các Kết Quả
NTHa ✓ Best Choice For You
Không có Kế quả nào!
Xem Tất Cả Các Kết Quả
Trang Chủ Wordpress

Ngăn chặn malware (virus, shell,…) chuyển hướng website WordPress

Nguyễn Thanh Hà Tác giả Nguyễn Thanh Hà
31/01/2023
Chuyên mục: Wordpress, Kiến Thức Tổng Hợp
Thời Gian: 15 phút đọc
A A
451
SHARES
1.5k
VIEWS
Share on Facebook

Một ngày đẹp trời thức dậy. Bạn truy cập website của mình và phát hiện nó đã bị dính mã độc. Toàn bộ hoạt động bị gián đoạn và khách hàng của bạn bị chuyển hướng sang các website độc hại khác. Vấn đề là bạn còn không có thời gian để bảo vệ khách hàng của bạn trước khi có thể xử lý được đám mã độc. Mình sẽ trình bày giải pháp cho các bạn trong bài viết này!

Bài viết này không giúp các bạn loại bỏ malware, nó chỉ giúp malware bị hạn chế thực thi, giúp website không bị chuyển hướng nữa thôi. Điều này giúp bạn có thêm thời gian để loại bỏ malware mà không ảnh hưởng đến khách hàng.

Main Contents

  1. Nguyên nhân
  2. Sử dụng thủ thuật CSP giải quyết tình trạng chuyển hướng website như thế nào?
    1. CSP là gì?
    2. Vậy có liên quan gì đến malware chuyển hướng không?
  3. Hướng dẫn chi tiết
    1. Triển khai bằng PHP
    2. Triển khai trên Webserver
  4. Đọc thêm
    1. Làm sao để biết có script nào đó bị chặn?
    2. Cách hoạt động của CSP với Domain và Subdomain như thế nào?
    3. Có dùng được với Cloudflare không?
  5. Tổng kết

Nguyên nhân

Đây là một malware, hay virus, hay shell gì đó tùy theo cách bạn gọi, và loại malware này cực kì phổ biến hiện nay. Nó gây khó chịu cho người dùng và các chủ nhân các website vì liên tục chuyển hướng website người dùng sang các website lừa đảo, bạo lực, khiêu dâm,…

Hậu quả do malware gây ra không phải chỉ chuyển hướng mỗi website

Nguyên nhân rõ ràng nhất đó là sử dụng theme/plugin không rõ nguồn gốc. Đây là loại tài nguyên được chia sẻ trên internet rất nhiều nhưng không ai đảm bảo người chia sẻ sở hữu bản gốc từ tác giả, hoặc họ không chỉnh sửa gì đó trước khi chia sẻ.

Đồng ý rằng các theme/plugin trên WordPress.org không thể an toàn 100% nhưng việc sử dụng những theme/plugin không rõ nguồn gốc, trả phí được share miễn phí hay mua qua trung gian với giá rẻ bèo thì thật khó tránh khỏi.

Sử dụng thủ thuật CSP giải quyết tình trạng chuyển hướng website như thế nào?

CSP là gì?

Thủ thuật này mình sử dụng response header Content-Security-Policy đang được hỗ trợ bởi rất nhiều trình duyệt hiện đại ngày nay. Nói đơn giản, CSP hoạt động như một whitelist (danh sách cho phép) quy định những domain nào, giao thức nào có thể được tải trên trang hiện tại. Những domain không nằm trong whitelist này sẽ bị từ chối tải, từ đó mã độc sẽ khó được thực thi hơn.

Nhờ header CSP được trả về từ server của website, trình duyệt từ chối tải các tài nguyên như JS, CSS, hình ảnh từ cách nguồn không tin cậy và nằm ngoài whitelist.

Vậy có liên quan gì đến malware chuyển hướng không?

Tất nhiên là có. Khi nhận được website từ khách hàng, mình nhận thấy có rất nhiều request lạ, yêu cầu tải những đoạn mã JS từ những tên miền khác làm cho trình duyệt chuyển hướng sang trang khác. Khi sử dụng CSP, những domain xấu hoàn toàn nằm ngoài whitelist, đảm bảo trình duyệt không tải và không bị chuyển hướng dù rằng đoạn mã JS vẫn còn đó.

Tất cả đều bị chặn lại với Status (blocked:csp)

Bài viết này bao gồm hai cách để khắc phục, mình luôn khuyên các bạn sử dụng cách thứ hai vì sẽ bảo đảm an toàn hơn. Tuy vậy thì cách làm rất đơn giản, bạn tự tin nhé.

Những domain lạ bị chặn lại và không được load, vì vậy website vẫn có thể truy cập “bình thường” dù rằng malware vẫn còn đó.

Hướng dẫn chi tiết

Có 2 cách chính để chèn header Content-Security-Policy vào response của website nhưng mình khuyên nếu có thể, hãy chèn vào cài đặt của webserver (Apache, Nginx,…) thay cho PHP vì hacker vẫn có thể vô hiệu hóa đoạn mã của chúng ta đi.

Triển khai bằng PHP

Chèn đoạn script bên dưới vào cuối tập tin functions.php của theme mà bạn đang dùng, sau đó tận hưởng thành quả.

function header_csp_generate(){
    header("Content-Security-Policy: script-src 'self' 'unsafe-inline' 'unsafe-eval' www.googletagmanager.com connect.facebook.net www.googleadservices.com www.google-analytics.com googleads.g.doubleclick.net onesignal.com tpc.googlesyndication.com");
}
add_filter('wp_head', 'header_csp_generate');

Triển khai trên Webserver

Đây là cách mình khuyên dùng, một bởi vì hacker khó có thể can thiệp làm thay đổi giá trị này đi, hai bởi vì bạn có thể chèn vào cấu hình của các webserver, bảo đảm tất cả các trang trên server đều được triển khai header này ngay lập tức.

Nginx

Chèn vào tập tin /etc/nginx/nginx.conf, đặt trong block http, sau đó restart lại Nginx.

http {
    # ....
    add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' www.googletagmanager.com connect.facebook.net www.googleadservices.com www.google-analytics.com googleads.g.doubleclick.net onesignal.com tpc.googlesyndication.com;";
    # ....
}

Apache

Với apache có thể đơn giản hơn, bạn chỉ việc chèn vào tập tin .htaccess (vẫn khuyên không nên vì hacker có thể can thiệp, nếu không còn cách nào khác, hãy chmod hợp lý trước khi dùng) là được, hoặc chèn vào /etc/httpd/conf/httpd.conf. Sau đó restart lại Apache.

Header set Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' www.googletagmanager.com connect.facebook.net www.googleadservices.com www.google-analytics.com googleads.g.doubleclick.net onesignal.com tpc.googlesyndication.com;";

Đọc thêm

CSP là một danh sách cho phép các domain được tải trên website của bạn, vì vậy, nếu bạn sử dụng ứng dụng hay CDN nào đó (uhchat, Google Analytics, CDNJS,…) tải các tập tin JS từ bên ngoài, bạn bắt buộc phải thêm mới vào để ứng dụng đó có thể hoạt động được.

Script của mình ở phần trên đã bao gồm Google Tag Manager, Google Analytics, Facebook Pixel, Google Ads Tracking Code. Nếu bạn thấy thiếu thì có thể thêm vào vào. Cách thêm rất đơn giản, mỗi domain cách nhau một dấu trắng (space). Đơn giản vậy thôi.

Làm sao để biết có script nào đó bị chặn?

Bạn có thể mở Developer Console của Google Chrome, chuyển qua tab Console để kiểm tra xem có script nào bị chặn hay không. Trong ví dụ này, mình chưa thêm gist.github.com vào whitelist nên bị chặn.

Kiểm tra trực tiếp bằng công vụ F12 trên trình duyệt.

Cách hoạt động của CSP với Domain và Subdomain như thế nào?

Domain và subdomain được đối xử khác nhau. Nếu bạn điền www.google.com thì tất cả đoạn script trên google.com sẽ không hoạt động được. Vì vậy, bạn có thể dùng *.google.com để thêm tất cả subdomain của Google vào whitelist.

Có dùng được với Cloudflare không?

Được, dùng bình thường. Cloudflare giữ lại các header này.

Còn cập nhật…

Tổng kết

Mong rằng hướng dẫn của mình giúp các bạn thở phào nhẹ nhõm. Tuy nhiên, mình xin nhắc lại malware vẫn còn đó, chỉ là nó đã bị ngăn chặn thực thi thôi.

Mình đang lo rằng trong những phiên bản mới của malware, nó sẽ sử dụng inline JS, từ đó khiến đoạn script bảo vệ trở nên vô hiệu.

Nguồn: datuan

5 1 đánh giá
Article Rating
Tags: codeCSPmalwarewordpress
Nguyễn Thanh Hà

Nguyễn Thanh Hà

Ban ngày đi đánh giày. Tối về chạy Grab. Chuyên nằm vùng và tổng hợp thông tin.

Nội dung tổng hợp trên NTHa.icu dựa trên trải nghiệm thực tế và quan điểm cá nhân.
* Mua sản phẩm qua affiliate link (link giới thiệu) sẽ giúp chúng tôi có kinh phí duy trì.

Related Posts

30 Bộ chọn CSS bạn bắt buộc phải thuộc lòng

30 Bộ chọn CSS bạn bắt buộc phải thuộc lòng

09/02/2023
1.4k
5 Kênh podcast “gối đầu giường” cho dân Marketing

5 Kênh podcast “gối đầu giường” cho dân Marketing

08/02/2023
1.4k
Cách sử dụng ChatGPT viết content quảng cáo, kịch bản chuẩn cho Marketing

Cách sử dụng ChatGPT viết content quảng cáo, kịch bản chuẩn cho Marketing

08/02/2023
1.4k
Theo dõi
Thông báo của
guest
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận
Không có Kế quả nào!
Xem Tất Cả Các Kết Quả

CHUYÊN MỤC

  • Marketing (3)
  • Server (8)
    • Kiến Thức Tổng Hợp (3)
    • Review Server (2)
    • Web Server Control Panel (4)
  • Wordpress (9)
    • Kiến Thức Tổng Hợp (8)
    • Plugins (3)

Bài viết mới

  • 30 Bộ chọn CSS bạn bắt buộc phải thuộc lòng
  • 5 Kênh podcast “gối đầu giường” cho dân Marketing
  • Cách sử dụng ChatGPT viết content quảng cáo, kịch bản chuẩn cho Marketing
  • 10 Website nhận SMS online miễn phí tốt nhất (SĐT Quốc Tế)
  • Hướng dẫn cài đặt website bảo mật SSL với XAMPP trên VPS (Windows Server 2022)

Thông tin liên hệ

NGUYỄN THANH HÀ

Email: nguyenthanhha935@gmail.com
Di Động: 0888800544

Từ khóa

azdigi ChatGPT code Content control panel CSP google malware Marketing Mysql MyVestaCP Nginx phpmyadmin Schema SQL ssl Structured Data tips Vesta VestaCP web server Woocommerce wordpress

Liên kết

  • khenphim.com

© 2020 NTHa - All Rights Reserved. Vui lòng xin phép trước khi sử dụng lại nội dung của NTHa.
Content Protection by DMCA.com

Không có Kế quả nào!
Xem Tất Cả Các Kết Quả
  • Home
  • Marketing
  • WordPress
    • Kiến Thức Tổng Hợp
    • Plugins
  • Server
    • Kiến Thức Tổng Hợp
    • Review Server
    • Web Server Control Panel
  • Liên hệ

© 2020 NTHa - All Rights Reserved. Vui lòng xin phép trước khi sử dụng lại nội dung của NTHa.
Content Protection by DMCA.com

wpDiscuz