htaccess - Chống ăn cắp băng thông

htaccess - Chống ăn cắp băng thông

  • Băng thông là lưu lượng truy cập vào trang web, đối với một số hosting/VPS có lượng băng thông (bandwidth) có giới hạn, việc tiết kiệm băng thông sẽ bảo đảm lưu lượng cho những nguồn truy cập cần thiết.
  • Băng thông có thể bị "đánh cắp" bằng cách sử dụng nội dung liên kết trực tiếp từ trang web khác (nội dung đánh cắp có thể là image, video, ...), ví dụ khi người dùng xem file trên trang web B có image liên kết trực tiếp từ trang web A, thì khi đó sẽ có một yêu cầu gửi về trang web A, khi này web A sẽ bị tốn lưu lượng băng thông mà đôi khi chẳng được lợi ích gì.
  • Ý tưởng ngăn chặn việc đánh cắp băng thông thật ra khá đơn giản, chỉ cần ngăn chặn liên kết của những trang web khác với domain của mình là được, chúng ta có thể sử dụng .htaccess như sau:
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www.)?example.com/.*$ [NC]
RewriteRule .(gif|jpg|jpeg|png|js|css)$ - [F]
  • RewriteCond % !^http://(www.)?example.com/.*$ [NC]: match tất cả domain không phải là domain example, không phân biệt chữ hoa hay thường.
  • RewriteRule .(gif|jpg|jpeg|png|js|css)$ - [F]: kiểm tra các định dạng, nếu request đúng 1 trong những định dạng này thì sẽ trả về trang báo lỗi.
  • Chúng ta cũng có thể hiển thị thông báo lỗi bằng hình ảnh hoặc file nếu request thỏa điều kiện bằng cách sau:
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www.)?example.com/.*$ [NC]
RewriteRule .(gif|jpg|jpeg|png|js|css)$ http://www.example.com/error.jpg [R,L]