Vui lòng liên hệ chúng tôi qua Zalo Contact

Cách chống DDOS cho Website của bạn

Chào mọi người! Hôm nay, mình xin chia sẻ với các bạn một số kiến thức liên quan đến tấn công DDoS vào website. Những thông tin này sẽ giúp anh em hiểu rõ hơn về cách các tin tặc có thể tấn công website của chúng ta và cách phòng tránh chúng. Hy vọng nó sẽ hữu ích cho mọi người!

Cách Chống DDos cho website
Mục lục bài viết

DDos là gì?

Tấn công DDoS, hay còn gọi là tấn công từ chối dịch vụ phân tán, là một phương thức tấn công bằng cách tạo ra một lượng truy cập ảo cực lớn vào một website trong một thời gian ngắn, với mục đích "đánh sập" máy chủ lưu trữ, khiến nó hoạt động chậm hoặc không thể truy cập được. Mặc dù không có phương pháp chống DDoS nào là hoàn hảo, nhưng nếu đối mặt với các cuộc tấn công ở quy mô nhỏ và không chuyên, sử dụng các phần mềm được lập trình sẵn, chúng ta hoàn toàn có thể chủ động phòng chống.

Cách chống DDos cho website

Cách 1: Chống iframe.

Đây là phương pháp tấn công khá đơn giản. Kẻ tấn công sẽ lợi dụng một website có lượng truy cập lớn, chèn các iframe trỏ về website mục tiêu, sau đó yêu cầu trình duyệt tự động làm mới (refresh) trang nhiều lần. Một cách khác là họ có thể tạo ra một tệp Flash với chức năng tương tự và đặt nó trên website, khiến người dùng khi truy cập vào website đó sẽ vô tình trở thành "tay sai" trong cuộc tấn công vào website mục tiêu.

Để bảo vệ website khỏi kiểu tấn công này, bạn có thể sử dụng mã Javascript để ngăn chặn việc chèn iframe từ các website khác vào trang của bạn.
Hãy chèn đoạn mã này ngay phía trên thẻ </head> bên trong code của bạn.
<script language="JavaScript">
if (top.location != self.location)
{top.location = self.location}
</script>

Cách 2: Chống tải lại trang web có ác ý

Một hình thức tấn công khác là việc sử dụng phím F5 liên tục một cách có chủ ý, hoặc dùng phần mềm được lập trình sẵn có chức năng tương tự (tải lại trang web liên tục sau một khoảng thời gian nhất định) từ một nhóm người. Điều này sẽ khiến trang web của bạn bị tải lại (reload) liên tục, gây tốn băng thông và làm website chạy chậm do các kết nối ảo.

Với phương thức tấn công này, cách 1 sẽ không hiệu quả. Nếu bạn gặp phải tình huống như vậy, bạn có thể ngăn chặn bằng cách thiết lập tệp .htaccess với nội dung sau:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule !antiddos.phtml http://www.domain.com/antiddos.phtml?%{REQUEST_URI} [QSA]

Sau đó tạo thêm một một tập tin antiddos.phtml có nội dung

<?
$text = $HTTP_SERVER_VARS['QUERY_STRING'];
$text = preg_replace("#php\&#si",'php?',$text);
echo('<center><a href=http://www.domain.com/?'.$text.'><font color=red size=5 face=Monotype>[CLICK HERE TO ENTER]</font></a</center>');
?>

Sau đó, bạn hãy upload hai tệp này lên thư mục gốc của website. Khi người dùng truy cập vào website lần đầu tiên, họ sẽ thấy một thông báo yêu cầu nhấn chuột để vào trang. Ở các lần truy cập tiếp theo, thông báo này sẽ không xuất hiện nữa. Các phần mềm DDoS được lập trình sẽ bị chặn ngay từ bước nhấn chuột để vào website, vì vậy việc tải lại trang web sẽ chỉ là một trang HTML nhỏ và không gây ảnh hưởng đáng kể đến hệ thống.

Chú ý!
Cách này chỉ áp dụng cho website đang sử dụng server chạy trên nền Linux.

Cách 3: Giới hạn số kết nối website tại một thời điểm

Khi một khách truy cập vào website, một truy vấn kết nối với cơ sở dữ liệu (CSDL) sẽ được tạo ra để lấy thông tin và hiển thị trên trang web. Mỗi máy chủ đều có một giới hạn số lượng truy vấn kết nối và khi vượt quá giới hạn này, việc truy cập sẽ trở nên khó khăn hoặc không thể thực hiện được. Các tin tặc có thể lợi dụng điều này để tạo ra các kết nối ảo, thông qua proxy hoặc các mạng botnet, nhằm tấn công và làm gián đoạn website, thậm chí phá hủy CSDL.

Để hạn chế tình trạng này, bạn có thể chủ động giới hạn số kết nối và truy vấn tại một thời điểm. Để thực hiện điều này, hãy thêm đoạn mã sau vào trang chủ của website.

function server_busy($numer) {
    if (THIS_IS == 'WEBSITE' && PHP_OS == 'Linux' and @file_exists ( '/proc/loadavg' ) and $filestuff = @file_get_contents ( '/proc/loadavg' )) {
        $loadavg = explode ( ' ', $filestuff );
        if (trim ( $loadavg [0] ) > $numer) {
            print '<meta http-equiv="content-type" content="text/html; charset=UTF-8" />';
            print 'Lượng truy cập đang quá tải, mời bạn quay lại sau vài phút.';
            exit ( 0 );
        }
    }
}
$srv = server_busy ( 1000 ); // 1000 là số người truy cập tại 1 thời điểm

Đoạn mã trên cho phép tối đa 1000 người truy cập vào website cùng một lúc. Nếu số lượng người truy cập vượt quá 1000, khách sẽ nhận được thông báo: "Lượng truy cập đang quá tải. Mời bạn quay lại sau vài phút."

Chú ý!
Đoạn mã này chỉ áp dụng cho ngôn ngữ lập trình PHP.

Cách 4: chặn các request bằng js

Khi nhiều người sử dụng các công cụ DDoS để gửi hàng nghìn yêu cầu đến server, website của chúng ta sẽ không thể chịu nổi, dẫn đến tốn tài nguyên của host và có thể gây sập website.

Để giải quyết vấn đề này, các bạn có thể quản lý DNS của website qua Cloudflare. Sau đó, bật tính năng chống DDoS bằng JavaScript có sẵn trong Cloudflare để bảo vệ website khỏi các cuộc tấn công.

Như vậy, các yêu cầu (requests) gửi đến website của bạn sẽ bị chặn ngay tại Cloudflare, giúp bảo vệ website và làm cho nó an toàn hơn.

Tổng kết

Đây chỉ là những phương pháp phòng ngừa cơ bản, phù hợp với các cuộc tấn công nhỏ lẻ. Để đảm bảo website của bạn hoạt động ổn định và có khả năng chống lại các cuộc tấn công quy mô lớn, bạn nên:

  • Tối ưu hóa website, chẳng hạn như xây dựng bộ nhớ đệm (cache) để giảm số lượng kết nối đến cơ sở dữ liệu.
  • Chọn nhà cung cấp hosting uy tín, có khả năng đối phó với các cuộc tấn công (nguồn XHTT).
  • Cuối cùng, theo mình, cách thứ 4 có lẽ là phương pháp hiệu quả nhất để giúp website của chúng ta chống lại tấn công DDoS một cách mạnh mẽ.

    Facebook: Dịch Vụ Mạng Xã Hội Đà Nẵng
    Zalo: Dịch Vụ Đà Nẵng
    Phone: 0333.110304
    Gmail: mxhdn.xyz@gmail.com
    Thanh toán: Ngân hàng, thẻ cào siêu rẻ, Momo, ViettelPay, card + 35% phí,...

    إرسال تعليق

    Cookie Consent
    Chúng tôi cung cấp cookie trên trang web này để phân tích lưu lượng truy cập, ghi nhớ tùy chọn của bạn và tối ưu hóa trải nghiệm của bạn.
    Oops!
    Có vẻ như đã xảy ra sự cố với kết nối internet của bạn. Vui lòng kết nối với internet và truy cập lại.
    AdBlock Detected!
    We have detected that you are using adblocking plugin in your browser.
    The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
    Refresh