Xmlrpc.php নির্মূল করার সেরা উপায়?


25

আপনার যখন প্রয়োজন নেই তখন ওয়ার্ডপ্রেস থেকে xmlrpc.php ফাইলটি সরিয়ে দেওয়ার সর্বোত্তম উপায় কী?

উত্তর:


26

ওয়ার্ডপ্রেস ৩.৫ থেকে এই বিকল্পটি ( XML-RPC) ডিফল্টরূপে সক্ষম করা হয়েছে এবং ওয়ার্ডপ্রেস থেকে এটি বন্ধ করার ক্ষমতা dashboardচলে গেছে।

এতে ব্যবহারের জন্য এই কোড স্নিপেট যুক্ত করুন functions.php:

// Disable use XML-RPC
add_filter( 'xmlrpc_enabled', '__return_false' );

// Disable X-Pingback to header
add_filter( 'wp_headers', 'disable_x_pingback' );
function disable_x_pingback( $headers ) {
    unset( $headers['X-Pingback'] );

return $headers;
}

যদিও এটি যা বলে তা তাই করে, কোনও সাইটকে আঘাত করে আক্রমণ করা হলে এটি নিবিড় হতে পারে।
আপনার .htaccessফাইলে নিম্নলিখিত কোড স্নিপেট ব্যবহার করা ভাল ।

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>

অথবা xmlrpc.phpএনজিআইএনএক্স সার্ভার ব্লক থেকে ফাইল অ্যাক্সেস অক্ষম করতে এটি ব্যবহার করুন।

# nginx block xmlrpc.php requests
location /xmlrpc.php {
    deny all;
}

সচেতন থাকুন যে অক্ষম করাও মোবাইলের মাধ্যমে লগইনগুলিতে প্রভাব ফেলতে পারে। আমি সঠিক হলে ওয়ার্ডপ্রেস মোবাইল অ্যাপ্লিকেশনটির এটির দরকার নেই। এর ব্যবহার সম্পর্কে আরও তথ্যের জন্য কোডেক্স
দেখুন ।XML-RPC

  • সম্পাদনা / যোগ করার আগে দয়া করে সবসময় ফাইল (গুলি) এর ব্যাকআপ রাখুন।


সম্পাদনা করুন / আপডেট

@ প্রস্টি, -আপনি একেবারে সঠিক - বিকল্পগুলির জন্য যা RESTful APIওয়ার্ডপ্রেসের জন্য অফার করবে!

আমি এটি উল্লেখ করতে ভুলে গেছি। এটি ইতিমধ্যে মূল ( ওয়ার্ডপ্রেস সংস্করণ 4.1 ) এ একীভূত করা উচিত ছিল যা তখনকার সময়ে সম্ভব ছিল না। তবে যেমনটি মনে হয়, ওয়ার্ডপ্রেস ৪.৫-এ মূল হবে।

এই মুহুর্তের বিকল্প হ'ল এই প্লাগইন: ওয়ার্ডপ্রেস রিস্ট এপিআই (সংস্করণ 2)
আপনি এটি Restful APIওয়ার্ডপ্রেসের জন্য মূল অবধি ব্যবহার করতে পারবেন ।
ওয়ার্ডপ্রেস 4.5 প্রকাশের জন্য লক্ষ্য তারিখ। (এপ্রিল 12, 2016 (+ 3 ডাব্লু))

যারা করার জন্য আগ্রহী RESTful, উপর Stackoverflow একটি খুব সুন্দর সম্প্রদায় উইকি নেই।


2
যদি আমি সঠিক ওয়ার্ডপ্রেস am মোবাইল অ্যাপ্লিকেশন এই প্রয়োজন আছে এই ভবিষ্যতে প্রয়োজন হবে না একবার আমরা ওয়ার্ডপ্রেস RESTful API রূপান্তরটি (ওয়ার্ডপ্রেস 4.5) থাকতে সম্ভাব্য -
prosti থেকে

2
যারা এখনও X-Pingbackএকক পোস্ট / পৃষ্ঠার শিরোনাম পান । আমরা সম্পূর্ণরূপে এটি অপসারণ করতে অন্য ফিল্টার ব্যবহার করতে হবে: add_filter('pings_open', '__return_false', PHP_INT_MAX);
MinhTri

1
functions.phpথিম পরিবর্তন করার সময় এর মতো জিনিসগুলি যুক্ত করা সমস্ত প্রভাব হারাবে। function.phpশুধুমাত্র নকশা উদ্দেশ্যে, একটি প্লাগইন ব্যবহার করুন!
ডেভিড

@ ডেভিড, নিশ্চিত তবে পিপিএল এর পরে এই জাতীয় প্লাগইন তৈরির পরিবর্তে মিউ-প্লাগইন ফোল্ডারটি আরও ভাল ব্যবহার করুন। পিপিএল যখন এই জাতীয় কোনও ক্রিয়াকলাপের প্রয়োজন / ব্যবহার করে তখন তাদের কোনও কারণ থাকতে পারে এবং কারও কাছে (কোনও প্রশাসকও নয়) একটি প্লাগইন ডি-অ্যাক্টিভেট করার বিকল্প থাকতে চায় না।
চার্লস

দেখে মনে হচ্ছে =এনগিনেক্সের কনফিড কোডটির প্রথম লাইনে একটি সমান চিহ্ন ( ) নেই। এটি আমার পক্ষে কাজ করেছে: location = /xmlrpc.php {
ডেভ

6

আপনার ওয়েব সার্ভারের কনফিগারেশনের মাধ্যমে যখন এটিকে ব্লক করার ক্ষমতা আপনার হাতে রয়েছে তখন @ চার্লসের পরামর্শগুলি ভাল।

আপনি যদি কেবল পিএইচপি ব্যবহার করে এটি অক্ষম করতে পারেন তবে xmlrpc_enabledফিল্টারটি সঠিক উপায়ে নয়। এখানে নথিবদ্ধ মত: https://developer.wordpress.org/references/hooks/xmlrpc_enabled/ এটি কেবলমাত্র xML আরপিসি পদ্ধতি অক্ষম করে যা প্রমাণীকরণের প্রয়োজন।

পরিবর্তে xmlrpc_methodsসমস্ত পদ্ধতি নিষ্ক্রিয় করতে ফিল্টারটি ব্যবহার করুন :

<?php
// Disable all xml-rpc endpoints
add_filter('xmlrpc_methods', function () {
    return [];
}, PHP_INT_MAX);

ফলিং সামগ্রী সহ xMLrpc.php এ একটি পোষ্ট অনুরোধ প্রেরণ করে আপনি এটি পরীক্ষা করতে পারেন:

<methodCall>
    <methodName>system.listMethods</methodName>
</methodCall>

যদি ফিল্টারটি কাজ করে তবে কেবল 3 টি পদ্ধতি থাকতে হবে:

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
    <params>
        <param>
            <value>
                <array>
                    <data>
                        <value>
                            <string>system.multicall</string>
                        </value>
                        <value>
                            <string>system.listMethods</string>
                        </value>
                        <value>
                            <string>system.getCapabilities</string>
                        </value>
                    </data>
                </array>
            </value>
        </param>
    </params>
</methodResponse>

আপনি এটি দ্রুত কার্ল দিয়ে পরীক্ষা করতে পারেন:

curl -X POST \
  -H 'Cache-Control: no-cache' \
  -H 'Content-Type: application/xml' \
  -d '<methodCall><methodName>system.listMethods</methodName></methodCall>' \
  https://your-wordpress-site.com/xmlrpc.php


4

সবচেয়ে ভাল কাজটি হ'ল xmlrpc.phpফাইলটি মোছা বা অক্ষম করার চেয়ে প্লাগইন সহ ফাংশনগুলি অক্ষম করা। ফাইলটি নিজেই ওয়ার্ডপ্রেস মূল আপডেটগুলিতে প্রতিস্থাপন করা হবে, যখন একটি প্লাগইন এটি কোর আপডেটের পরে অক্ষম রাখে এবং আপনি থিম পরিবর্তন করেন।

বিভিন্ন প্লাগইনগুলির জন্য https://wordpress.org/plugins/search.php?q=disable+xML-rpc দেখুন । তাদের সবার মধ্যে সামান্য পার্থক্য রয়েছে।

এই প্লাগইনগুলি থিমের functions.phpফাইলে কোনও ফাংশন যুক্ত করা বা order,allow deny.htaccess (অন্য উত্তরগুলিতে বর্ণিত হিসাবে) একটি বিধি যুক্ত করার সাথে একই জিনিসটি করে, পার্থক্যটি প্লাগইন বা ফাংশন হিসাবে xmlrpc.phpপিএইচপি এর মাধ্যমে কলগুলি অক্ষম করে , এবং .htaccess কাজ করে ওয়েব সার্ভারে মোড_উইরাইট (যেমন, অ্যাপাচি বা এনগিনেক্স) ব্যবহার করে। একটি আধুনিক সার্ভারে পিএইচপি এবং মোড_উরাইট ব্যবহারের মধ্যে কোনও প্রশংসনীয় পারফরম্যান্স পার্থক্য নেই।


3

আইআইএসে ওয়ার্ডপ্রেসকে হোস্ট করছে এমন চরম সংখ্যালঘুদের জন্য, আপনি একই রকম এইচটিসেসের মতো বিধিনিষেধগুলি করতে আইআইএস ইউআরএল পুনর্লিখন মডিউলটি ব্যবহার করতে পারেন। নীচের উদাহরণটি ধরে নিয়েছে যে সত্য ক্লায়েন্টের আইপিটি এক্স-ফরওয়ার্ড-ফর শিরোনামে আসছে, পরিচিত শ্বেতলিস্টের আইপি 55.55.555.555, এবং আপনি কোনও HTTP 404 দিয়ে নন-হোয়াইটলিস্ট আইপিতে প্রতিক্রিয়া জানাতে চান।

<rule name="wordpress-restrictions" enabled="true" stopProcessing="true">
    <match url="(^xmlrpc.php)|(^wp-admin)|(^wp-login.php)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTP_X_FORWARDED_FOR}" pattern="(^55\.55\.555\.555$)" negate="true" />
    </conditions>
    <action type="CustomResponse" statusCode="404" subStatusCode="44" statusReason="File or directory not found" statusDescription="The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable." />
</rule>

0

প্রথমবারে আপনি add_filter('xmlrpc_enabled', '__return_false');ফাইল functions.phpবা সাইট নির্দিষ্ট প্লাগইনে কোড রাখতে পারেন । স্পষ্টত সাইটের নির্দিষ্ট এটি নির্বাণ আরো সম্পাদনা ফাইল চেয়ে বাঞ্ছনীয় functions.php

এবং এক্সএমএলআরপিসি অপসারণের অন্যান্য উপায়


0

আমি সম্প্রতি ওয়ার্ডফেন্স ইনস্টল করেছি যা সংস্করণ 6.3.12 এ যে কোনও জায়গায় সরাসরি অ্যাক্সেস ব্লক করার ক্ষমতা রয়েছে to নিষিদ্ধ অ্যাক্সেস আইপিগুলির তালিকার বিকল্প পৃষ্ঠায় /xMLrpc.php স্থাপন "" এই ইউআরএলগুলি অ্যাক্সেস করে এমন আইপি অবিলম্বে অবরুদ্ধ করুন " এখন প্রতি 15 মিনিটের মধ্যে একটি প্রচেষ্টা অবরুদ্ধ রয়েছে showing

এটি আবারও আবার বিভিন্ন আইপি ঠিকানার সাথে ফিরে আসা সেই পেস্কি বটগুলি থেকে পালাতে কোনও ইউআরএল ব্লক করতে সক্ষম হওয়ার সুবিধা রয়েছে।

আমি জানি না এটি বৈধ ক্রিয়াকলাপগুলির জন্য অ্যাপ্লিকেশন দ্বারা xmlrpc.php ব্যবহারের অনুমতি দেয় কিনা।

সার্ভারে এটি প্রথমে 504 টাইমআউট এবং 502 ব্যাড গেটওয়ে ত্রুটি তৈরি করে নিয়ে আমার কিছু সমস্যা হয়েছিল তবে মনে হয় এটি স্থির হয়ে গেছে।

ওয়ার্ডফেন্স ইনস্টল করার আগে এবং সর্বদা ওয়ার্ডপ্রেস এবং প্লাগইনগুলির সর্বশেষতম সংস্করণ থাকা সত্ত্বেও সাইটটি হ্যাক হওয়ার পরে এটি ফলাফলের সাথে খুব মুগ্ধ হয়েছে এবং এটি একটি মূল্যবান ক্লিনআপ প্রোফাইল তৈরি করেছে।

ওয়ার্ডফেন্স https://www.wordfence.com/


/xmlrpc.phpসুরক্ষার নিয়মে যুক্ত হওয়া আইপিগুলিতে নিষেধাজ্ঞা রয়েছে যা দেখে মনে হয় এটি বৈধ ট্র্যাফিক অবরোধ করতে পারে। পিংব্যাকস সহ কোনও সাইট যদি আপনার সাইটে লিঙ্কগুলি সক্ষম করে, তবে সেই সাইটটি সেই URL টিতে একটি অনুরোধ প্রেরণ করবে এবং অবিলম্বে অবরুদ্ধ হয়ে যাবে ... মনে হচ্ছে এটি সমস্যার কারণ হতে পারে।
অ্যাডাম-এসএসএফ

0

আমি এই ছোট কোডটি এনজিনেক্সের জন্য ব্যবহার করি এবং এটি 100% কাজ করে

location ~* (/wp-content/.*\.php|/wp-includes/.*\.php|/xmlrpc\.php$|/(?:uploads|files)/.*\.php$) {
deny all;
access_log off;
log_not_found off;
return 444;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.