जवाबों:
वर्डप्रेस 3.5 के बाद से यह विकल्प ( 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 सर्वर ब्लॉक से फ़ाइल तक पहुंच को अक्षम करने के लिए इसका उपयोग करें ।
# nginx block xmlrpc.php requests
location /xmlrpc.php {
deny all;
}
ध्यान रखें कि अक्षम करने से मोबाइल के माध्यम से लॉगिन पर भी प्रभाव पड़ सकता है। अगर मैं सही हूँ WordPress मोबाइल ऐप को इसकी आवश्यकता है। के उपयोग के बारे में अधिक जानकारी के लिए कोडेक्स
देखें ।XML-RPC
- कृपया संपादित / जोड़ने से पहले हमेशा फ़ाइल का बैकअप लें।
@Prosti, -आप बिल्कुल सही हैं- उन विकल्पों के बारे में जो RESTful API
वर्डप्रेस के लिए पेश करेंगे!
मैं यह उल्लेख करना भूल गया। इसे पहले ही कोर ( वर्डप्रेस संस्करण 4.1 ) में एकीकृत किया जाना चाहिए था जो उस समय संभव नहीं था। लेकिन जैसा कि लगता है, वर्डप्रेस 4.5 में कोर होगा।
पल के लिए विकल्प यह प्लगइन है: वर्डप्रेस रीस्ट एपीआई (संस्करण 2)
आप इसका उपयोग तब तक कर सकते हैं जब तक Restful API
कि वर्डप्रेस के लिए भी कोर न हो।
वर्डप्रेस ४.५ की रिलीज की लक्ष्य तिथि। (12 अप्रैल 2016 (+ 3w))
जो लोग Stackoverflow
RESTful
पर रुचि रखते हैं , उनके लिए एक बहुत अच्छा समुदाय विकि है।
X-Pingback
सिंगल पोस्ट / पेज के लिए हेडर प्राप्त करते हैं । हमें इसे पूरी तरह से हटाने के लिए एक और फिल्टर का उपयोग करने की आवश्यकता है add_filter('pings_open', '__return_false', PHP_INT_MAX);
:।
functions.php
विषयों को बदलते समय उस तरह की चीजों को जोड़ना सभी प्रभाव खो देगा। function.php
केवल डिज़ाइन उद्देश्यों के लिए है, एक प्लगइन का उपयोग करें!
=
nginx conf कोड की पहली पंक्ति में एक समान चिह्न ( ) गायब है। इसने मेरे लिए काम किया: location = /xmlrpc.php {
हम इसे हैकर्स से बचाने के लिए htaccess फाइल का उपयोग कर रहे हैं।
# BEGIN protect xmlrpc.php
<files xmlrpc.php>
order allow,deny
deny from all
</files>
# END protect xmlrpc.php
जब आपके पास अपने वेब सर्वर के कॉन्फ़िगरेशन के माध्यम से इसे ब्लॉक करने की क्षमता है, तो @Charles के सुझाव अच्छे हैं।
यदि आप इसे केवल php का उपयोग करके अक्षम कर सकते हैं, तो xmlrpc_enabled
फ़िल्टर सही तरीका नहीं है। यहाँ प्रलेखित की तरह:
https://developer.wordpress.org/reference/hooks/xmlrpc_enabled/
यह केवल xml rpc विधियों को निष्क्रिय करता है जिन्हें प्रमाणीकरण की आवश्यकता होती है।
इसके बजाय xmlrpc_methods
सभी विधियों को अक्षम करने के लिए फ़िल्टर का उपयोग करें :
<?php
// Disable all xml-rpc endpoints
add_filter('xmlrpc_methods', function () {
return [];
}, PHP_INT_MAX);
यदि आप xmlrpc.php पर पोलिंग सामग्री के साथ POST अनुरोध भेजकर काम कर रहे हैं, तो आप इसका परीक्षण कर सकते हैं:
<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
सबसे अच्छी बात यह है xmlrpc.php
कि फ़ाइल को हटाने या अक्षम करने के बजाय एक प्लगइन के साथ कार्यों को अक्षम करना है । फ़ाइल को स्वयं ही वर्डप्रेस कोर अपडेट में बदल दिया जाएगा, जबकि एक प्लगइन कोर अपडेट के बाद इसे डिसेबल रखेगा और यदि आप थीम बदलते हैं।
विभिन्न प्लगइन्स के लिए https://wordpress.org/plugins/search.php?q=disable+xml-rpc देखें । उन सभी में मामूली अंतर है।
ये प्लगइन्स वही कार्य करते हैं जो थीम की functions.php
फ़ाइल में जोड़े गए या एक order,allow deny
नियम को जोड़ने के लिए .htaccess (जैसा कि अन्य उत्तरों में उल्लिखित है), अंतर होने के साथ एक प्लगइन या फ़ंक्शन xmlrpc.php
पीएचपी के माध्यम से कॉल को निष्क्रिय करता है , और .htaccess में नियम। mod_rewrite को वेबसर्वर (यानी, Apache या Nginx) में बदलकर। आधुनिक सर्वर पर PHP और mod_rewrite का उपयोग करने के बीच कोई सराहनीय प्रदर्शन अंतर नहीं है।
चरम अल्पसंख्यक के लिए जो IIS में वर्डप्रेस होस्ट कर रहे हैं, आप इसी तरह के htaccess जैसे प्रतिबंधों को करने के लिए IIS URL रिवाइटर मॉड्यूल का उपयोग कर सकते हैं। नीचे दिए गए उदाहरण में माना जाता है कि सच्चा क्लाइंट IP एक्स-फॉरवर्डेड-फॉर हेडर में आ रहा है, ज्ञात श्वेतसूची आईपी 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>
पहले तरीके से आप कोड add_filter('xmlrpc_enabled', '__return_false');
को फ़ाइल functions.php
या साइट विशिष्ट प्लगइन में डाल सकते हैं । फ़ाइल को संपादित करने की तुलना में स्पष्ट रूप से इसे साइट विशिष्ट में रखने की अधिक अनुशंसा की जाती है functions.php
।
मैंने हाल ही में Wordfence स्थापित किया है, जो कि 6.3.12 के संस्करण के रूप में किसी भी स्थान तक सीधी पहुंच को अवरुद्ध करने की क्षमता रखता है। प्रतिबंधित एक्सेस IP की सूची में विकल्प पृष्ठ पर /xmlrpc.php डालते हुए "इन URL तक पहुँचने वाले IP को तुरंत ब्लॉक करें" अब हर 15 मिनट में ब्लॉक किए जा रहे एक प्रयास को दिखा रहा है।
यह उन pesky बॉट से बचने के लिए URL को ब्लॉक करने में सक्षम होने का भी लाभ है जो एक अलग आईपी पते के साथ बार-बार वापस आते हैं।
मुझे नहीं पता कि यह वैध संचालन के लिए Apps द्वारा xmlrpc.php के उपयोग की अनुमति देता है या नहीं।
मैं कुछ मुद्दों के साथ पहले सर्वर पर 504 टाइमआउट और 502 बैड गेटवे त्रुटियों का उत्पादन कर रहा था, लेकिन लगता है कि यह बस गया है।
अब तक के परिणाम से बहुत प्रभावित हैं और यह वर्डफ़ेंस स्थापित करने से पहले साइट हैक होने के बाद और हमेशा वर्डप्रेस और प्लगइन्स के नवीनतम संस्करण होने के बावजूद एक मूल्यवान क्लीनअप प्रोफ़ाइल का उत्पादन करता है।
/xmlrpc.php
एक सुरक्षा नियम यह है कि का उपयोग ऐसा लगता है जैसे कि यह वैध यातायात ब्लॉक सकता आईपी पर प्रतिबंध लगाने के लिए। यदि आपकी साइट के लिए पिंगबैक के लिंक वाली साइट सक्षम है, तो वह साइट उस URL पर एक अनुरोध भेज देगी और तुरंत अवरुद्ध हो जाएगी ... ऐसा लगता है कि यह समस्या पैदा कर सकता है।