15 Đoạn trích .htaccess hữu ích cho trang web WordPress của bạn
Có một tập tin .htaccess được cấu hình tốt là rất quan trọng nếu bạn muốn tăng cường an ninh và giảm lỗ hổng trên trang web WordPress của bạn. Thông thường, mục tiêu chính của việc tạo ra một tập tin .htaccess tùy chỉnh là để ngăn chặn trang web của bạn bị hack nhưng đó cũng là một cách tuyệt vời để xử lý các chuyển hướng và quản lý các tác vụ liên quan đến bộ nhớ cache.
.htaccess là một tập tin cấu hình được sử dụng trên các máy chủ web Apache. Hầu hết các trang web WordPress chạy trên máy chủ Apache, mặc dù một phần nhỏ là được cung cấp bởi Nginx. Trong bài viết này, bạn có thể tìm thấy một bộ sưu tập các đoạn mã .htaccess, hầu hết trong số đó bạn có thể sử dụng để bảo mật trang web của mình trong khi phần còn lại thực hiện các tính năng hữu ích khác.
Đừng quên sao lưu tệp .htaccess trước khi bạn chỉnh sửa nó để bạn luôn có thể trở về phiên bản trước Nếu có điều gì sai.
Và, nếu bạn là người không chạm vào các tệp cấu hình, tôi khuyên bạn nên Bảo mật BulletProof plugin đáng tin cậy nhất (và có lẽ là lâu đời nhất) plugin bảo mật .htaccess miễn phí trên thị trường.
Tạo WP .htaccess mặc định
.htaccess hoạt động trên một cơ sở mỗi thư mục có nghĩa là mỗi thư mục có thể có tệp .htaccess riêng. Nó có thể dễ dàng xảy ra rằng trang web WordPress của bạn chưa có tệp .htaccess. Nếu bạn không tìm thấy tệp .htaccess trong thư mục gốc của mình tạo một tệp văn bản trống và đặt tên cho nó .htaccess
.
Dưới đây, bạn có thể tìm thấy .htaccess mặc định Sử dụng WordPress. Bất cứ khi nào bạn cần mã này, bạn có thể nhanh chóng tra cứu nó trong WordPress Codex. Lưu ý rằng có một .htaccess khác nhau cho WP Multisite.
# BẮT ĐẦU WordPressRewriteEngine On RewriteBase / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /index.php [L] # KẾT THÚC WordPress
Các dòng bắt đầu bằng #
là những bình luận. Đừng chỉnh sửa bất cứ điều gì giữa các dòng # BẮT ĐẦU WordPress
và # KẾT THÚC WordPress
. Thêm quy tắc .htaccess tùy chỉnh của bạn bên dưới các quy tắc mặc định này.
Tất cả các đoạn mã bạn có thể tìm thấy trong bài viết này đi đến tập tin .htaccess cốt lõi tìm thấy trong thư mục gốc của bạn.
1. Từ chối quyền truy cập vào tất cả các tệp .htaccess
Mã dưới đây từ chối truy cập cho tất cả các tệp .htaccess bạn đã cài đặt trong WordPress của mình. Bằng cách này bạn có thể ngăn mọi người nhìn thấy cấu hình máy chủ web.
# Từ chối quyền truy cập vào tất cả các tệp .htaccessCho phép đặt hàng, từ chối từ chối tất cả Thỏa mãn tất cả
2. Bảo vệ cấu hình WP của bạn
Các wp-config.php
tập tin chứa tất cả các cấu hình WP của bạn, bao gồm đăng nhập cơ sở dữ liệu và mật khẩu của bạn. Bạn có thể từ chối nó từ mọi người hoặc cho phép quản trị viên truy cập nó.
Nếu bạn chọn cái sau bình luận các # Cho phép từ xx.xx.xx.xxx
dòng (loại bỏ #
từ đầu dòng) và chèn địa chỉ IP của quản trị viên thay cho xx.xx.xx.xxx
.
# Bảo vệ wp-configCho phép đặt hàng, từ chối # Cho phép từ xx.xx.xx.xxx # Cho phép từ yy.yy.yy.yyy Từ chối từ tất cả
3. Ngăn chặn cuộc tấn công DDoS XML-RPC
WordPress hỗ trợ XML-RPC theo mặc định, đó là một giao diện làm cho xuất bản từ xa khả thi. Tuy nhiên, mặc dù là một tính năng tuyệt vời, nhưng đây cũng là một trong những lỗ hổng bảo mật lớn nhất của WP vì tin tặc có thể khai thác nó cho các cuộc tấn công DDoS.
Nếu bạn không muốn sử dụng tính năng này, tốt hơn hết là chỉ vô hiệu hóa nó. Giống như trước đây, bạn có thể thêm ngoại lệ bằng cách bình luận các # Cho phép từ xx.xx.xx.xxx
dòng và thêm IP của quản trị viên của bạn.
# Bảo vệ XML-RPC, ngăn chặn cuộc tấn công DDoSTừ chối đơn hàng, Cho phép # Cho phép từ xx.xx.xx.xxx # Cho phép từ yy.yy.yy.yyy Từ chối từ tất cả
4. Bảo vệ khu vực quản trị của bạn
Đó cũng là một ý tưởng tốt để bảo vệ khu vực quản trị bằng cách chỉ truy cập cho quản trị viên. Ở đây, đừng quên thêm ít nhất một “Cho phép” ngoại lệ nếu không bạn sẽ không thể truy cập quản trị viên của bạn.
# Bảo vệ khu vực quản trị bằng IP AuthUserFile / dev / null AuthgroupFile / dev / null AuthName "Kiểm soát truy cập quản trị viên WordPress" AuthType BasicTừ chối đơn hàng, Cho phép từ chối tất cả Cho phép từ xx.xx.xx.xxx Cho phép từ yy.yy.yy.yyy
5. Ngăn chặn danh sách thư mục
Hầu hết các trang web WordPress không tắt danh sách thư mục, có nghĩa là bất kỳ ai cũng có thể duyệt các thư mục và tập tin của họ, bao gồm tải lên phương tiện truyền thông và các tập tin plugin. Không cần phải nói rằng đây là một lỗ hổng bảo mật rất lớn.
Dưới đây, bạn có thể thấy một danh sách thư mục WordPress điển hình trông giống như.
May mắn thay, bạn chỉ cần một dòng mã để chặn tính năng này. Đoạn mã này sẽ trả về một thông báo lỗi 403 cho bất cứ ai muốn truy cập vào thư mục của bạn.
# Ngăn chặn danh sách thư mục Tùy chọn-Indexes
6. Ngăn chặn liệt kê tên người dùng
Nếu WP permalinks được bật, nó khá dễ dàng để liệt kê tên người dùng sử dụng tài liệu lưu trữ của tác giả. Tên người dùng được tiết lộ (bao gồm tên người dùng của quản trị viên) sau đó có thể được sử dụng trong tấn công vũ phu.
Chèn mã dưới đây vào tệp .htaccess của bạn để ngăn chặn tên người dùng.
# Ngăn chặn việc liệt kê tên người dùng RewriteCond% QUERY_STRING tác giả = d RewriteRule ^ /? [L, R = 301]
7. Chặn người gửi spam và bot
Đôi khi bạn có thể muốn hạn chế quyền truy cập từ một số địa chỉ IP nhất định. Đoạn mã này cung cấp một cách dễ dàng để chặn những kẻ gửi thư rác và bot bạn đã biết.
# Khối kẻ gửi thư rác và botCho phép đặt hàng, từ chối từ chối từ xx.xx.xx.xxx Từ chối từ yy.yy.yy.yyy Cho phép từ tất cả
8. Ngăn chặn hotlinking hình ảnh
Mặc dù không phải là mối đe dọa an ninh, hình ảnh hotlinking vẫn là một điều khó chịu. Mọi người không chỉ sử dụng hình ảnh của bạn mà không có sự cho phép của bạn nhưng họ thậm chí làm điều đó với chi phí của bạn. Với một vài dòng mã này, bạn có thể bảo vệ trang web của mình khỏi liên kết hình ảnh.
# Ngăn chặn RewriteEngine hình ảnh hotlink trên RewriteCond% HTTP_REFERER! ^ $ RewriteCond% HTTP_REFERER! ^ Http (s) ?: // (www \.)? Yourwebsite.com [NC] RewriteCond% HTTP_REER s) ?: // (www \.)? yourwebsite2.com [NC] RewriteRule \. (jpe? g? | png | gif | ico | pdf | flv | swf | gz) $ - [NC, F, L]
9. Hạn chế quyền truy cập trực tiếp vào các tệp PHP plugin và chủ đề
Nó có thể nguy hiểm nếu ai đó gọi trực tiếp các tập tin plugin và chủ đề của bạn, cho dù nó xảy ra vô tình hoặc bởi một kẻ tấn công độc hại. Đoạn mã này đến từ công ty bảo mật trang web Acunetix; bạn có thể đọc thêm về lỗ hổng này trong bài đăng trên blog của họ.
# Hạn chế quyền truy cập vào các tệp PHP từ các thư mục plugin và chủ đề RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / file / to / loại trừ / loại trừ / RewriteRule wp-content / plugins / (. * \. php) $ - [R = 404, L] RewriteCond% REQUEST_URI! ^ / wp-content / Themes / file / to / loại trừ \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / Themes / thư mục / to / loại trừ / RewriteRule wp-content / Themes / (. * \. Php) $ - [R = 404, L]
10. Thiết lập chuyển hướng vĩnh viễn
Bạn co thể dê dang xử lý chuyển hướng vĩnh viễn với .htaccess. Đầu tiên bạn phải thêm URL cũ, sau đó làm theo URL mới trỏ đến trang bạn muốn chuyển hướng người dùng đến.
# Chuyển hướng vĩnh viễn Chuyển hướng 301 / oldurl1 / http://yoursite.com/newurl1 Chuyển hướng 301 / oldurl2 / http://yoursite.com/newurl2
11. Gửi khách truy cập đến một trang bảo trì
Chúng tôi đã viết về kỹ thuật này một cách chi tiết ở đây. Bạn cần một trang bảo trì riêng (bảo trì.html
trong ví dụ) để quy tắc .htaccess này hoạt động. Mã này đặt trang web WordPress của bạn vào chế độ bảo trì.
# Chuyển hướng đến trang bảo trìRewriteEngine trên RewriteCond% REMOTE_ADDR! ^ 123 \ .456 \ .789 \ .000 RewriteCond% REQUEST_URI! /Maintenance.html$ [NC] RewriteCond% REQUEST_URI! \. (J? ) [NC] RewriteRule. * /Maintenance.html [R = 503, L]
12. Hạn chế tất cả quyền truy cập vào WP bao gồm
Các / wp-gồm /
thư mục chứa các tệp WordPress cốt lõi đó là cần thiết cho CMS để làm việc. Không có nội dung, plugin, chủ đề hoặc bất cứ điều gì khác mà người dùng có thể muốn truy cập ở đây. Vì vậy, để tăng cường bảo mật, tốt nhất là hạn chế tất cả quyền truy cập vào nó.
# Chặn tất cả các thư mục và tệp bao gồm wpRewriteEngine On RewriteBase / RewriteRule ^ wp-admin / gồm / - [F, L] RewriteRule! ^ Wp-gồm / - [S = 3] RewriteRule ^ wp-gồm / [^ /] + \. Php $ - [F, L] RewriteRule ^ wp-gồm / js / tinymce / langs /.+ \. Php - [F, L] RewriteRule ^ wp-gồm / theme-compat / - [F, L]
13. Chặn kịch bản chéo trang (XSS)
Đoạn mã sau đây là từ WP Mix và nó bảo vệ trang web của bạn chống lại một số cuộc tấn công XSS phổ biến, cụ thể là tiêm script và cố gắng sửa đổi các biến toàn cục và yêu cầu.
# Chặn một số cuộc tấn công XSSRewriteCond% QUERY_STRING (\ |% 3E) [NC, OR] RewriteCond% QUERY_STRING GLOBALS (= | \ [| \% [0-9A-Z] 0,2) [OR] RewriteCond% QUERY_STRING _REQUEST (= | \ [| \% [0-9A-Z] 0,2) RewriteRule. * Index.php [F, L]
14. Kích hoạt bộ nhớ đệm trình duyệt
Như tôi đã đề cập trước đây, .htaccess không chỉ tốt cho lý do bảo mật và chuyển hướng mà còn có thể giúp bạn quản lý bộ đệm. Đoạn mã dưới đây là từ Elegant Themes và nó làm cho bộ nhớ đệm trình duyệt có thể bằng cách cho phép khách truy cập lưu một số loại tập tin, vì vậy lần sau họ ghé thăm họ không phải tải lại.
# Cho phép bộ nhớ đệm trình duyệtExpiresActive On ExpiresByType image / jpg "access 1 year" ExpiresByType image / jpeg "access 1 year" ExpiresByType image / gif "access 1 year" ExpiresByType image / png "access 1 year" ExpiresByType text / css "access pdf "truy cập 1 tháng" ExpiresByType text / x-javascript "truy cập 1 tháng" ExpiresByType application / x-shockwave-flash "truy cập 1 tháng" ExpiresByType image / x-icon "truy cập 1 năm" ExpiresDefault "truy cập 2 ngày"
15. Thiết lập trang lỗi tùy chỉnh
Bạn có thể sử dụng .htaccess để thiết lập các trang lỗi tùy chỉnh trên trang web WordPress của bạn. Để phương pháp này hoạt động, bạn cũng cần phải tạo các trang lỗi tùy chỉnh (tùy chỉnh-403.html
, tùy chỉnh-404.html
trong ví dụ) và tải chúng lên vào thư mục gốc của bạn.
Bạn có thể thiết lập trang lỗi tùy chỉnh cho bất kỳ mã trạng thái lỗi HTTP (Mã trạng thái 4XX và 5XX) bạn muốn.
# Thiết lập trang lỗi tùy chỉnh ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html