2016-12-16 30 views
9

Tôi đang xem xét để cải thiện bảo mật của trang web Wordpress của tôi, và làm như vậy đã đi qua API WP REST được kích hoạt theo mặc định (kể từ WP 4.4 nếu tôi không nhầm).An toàn vô hiệu hóa API REST WP

Cách an toàn để tắt tính năng này là gì?

Bằng "an toàn" ở đây tôi có nghĩa là nó không gây ra tác dụng phụ không mong muốn, ví dụ: không phá vỡ bất kỳ chức năng cốt lõi khác của WP.

Một cách tiếp cận có thể là sử dụng các quy tắc viết lại .htaccess, nhưng đáng ngạc nhiên là tôi không tìm thấy bất kỳ hướng dẫn 'chính thức' nào khi làm như vậy.

Bất kỳ sự giúp đỡ hoặc đề nghị được đánh giá rất cao :)

Cập nhật: plugin của bên thứ 3 không phải là giải pháp tôi đang tìm kiếm. Mặc dù tôi biết rằng có rất nhiều người trong số họ giải quyết nhiệm vụ, họ bao gồm nhiều tính năng bổ sung làm chậm trang web. Tôi hy vọng sẽ có một giải pháp một dòng cho vấn đề này mà không phải trả thêm phí.

Cập nhật 2: Dưới đây là ý kiến ​​chính thức của Wordpress: https://developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked-questions/#can-i-disable-the-rest-api

Theo đó, nhóm nghiên cứu Wordpress muốn chức năng WP trong tương lai phụ thuộc vào REST API mới. Điều này có nghĩa là không có bảo đảm an toàn cách vô hiệu hóa API REST.

Hãy chỉ hy vọng có đủ chuyên gia bảo mật chăm sóc bảo mật WP.

Trả lời

8

Vô hiệu hóa REST API không phải là một ý tưởng tồi. Nó thực sự mở một huge hole in all websites!

Trong wordpress 4,4 there was a way

Ở đây, I've found a possible solution with .htaccess nhưng phải được kiểm tra cẩn thận kết hợp với bất cứ điều gì khác là trong tập tin .htaccess của bạn (quy tắc ví dụ khá url thêm tự wordpress):

# WP REST API BLOCK JSON REQUESTS 
# Block/Forbid Requests to: /wp-json/wp/ 
# WP REST API REQUEST METHODS: GET, POST, PUT, PATCH, DELETE 
RewriteCond %{REQUEST_METHOD} ^(GET|POST|PUT|PATCH|DELETE) [NC] 
RewriteCond %{REQUEST_URI} ^.*wp-json/wp/ [NC] 
RewriteRule ^(.*)$ - [F] 

Một phương pháp rất quyết liệt, cũng phải có một trang web 404.html trong thư mục gốc của bạn và sau đó thêm dòng này:

# WP REST API BLOCK JSON REQUESTS 
# Redirect to a 404.html (you may want to add a 404 header!) 
RewriteRule ^wp-json.*$ 404.html 

Lưu ý rằng, trừ khi bạn sử dụng một trang tĩnh, tức là, không tham gia với wordpress chức năng, nếu bạn muốn trả về một lỗi 404 với một trang báo lỗi thích hợp, đây là một chủ đề riêng biệt hoàn toàn, với a lot of issues when Wordpress is involved

+0

Cảm ơn bạn cho câu trả lời! Sẽ rất tuyệt nếu bạn có thể kiểm tra nó, trước khi tôi chấp nhận câu trả lời của bạn. Một câu hỏi là: tại sao bạn muốn lừa chương trình? Và bạn nghĩ chương trình nào sẽ thu thập dữ liệu '/ wp-json'? –

+0

Ý tôi là, tôi đã thử nghiệm tùy chọn thứ hai và nó hoạt động trên thiết lập của tôi. Đầu tiên không, nhưng tôi nghĩ rằng có một số vấn đề với các quy tắc '.htaccess' khác tôi có – Kuzeko

+0

Các chương trình độc hại, những chương trình có thể tự động kiểm tra lỗi * và * * trong quá trình cài đặt WP của bạn. – Kuzeko

Các vấn đề liên quan