Ieri am observat o problema la plugin-ul Contact Form 7, mai exact nu functioneaza. Pe pagina de contact am inserat cod-ul generat de acest plugin, dar formularul nu se mai afiseaza. Am incercat sa dezactivez cateva plugin-uri care ar putea crea probleme, dar nimic. Spre seara am hotarat sa dezactivez toate plugin-urile in idea ca o sa gasesc problema, in loc sa o rezolv am dat de alta. Mai exact pluginul Jetpack de la WordPress nu se mai poate activa. Cu experienta catorva ani de lucru cu WordPress inca gasesc diferite probleme care imi dau batai de cap.
Am inceput sa caut pe internet detalii despre eroarea respectiva. Se pare ca problema este cauzata de fisierul xmlrpc.php situat in radacina site-ului, acest fisier este folosit pentru diferite intrebuintari si in acelasi timp este supus atacurilor DDoS sau script-urilor care incearca sa gaseasca o vulnerabilitate a blog-ului pentru a o exploata. In cazul de fata acest fisier returneaza eroarea 403, am verificat asta accesand direct fisierul din browser. In unele situatii acest fisier este sters tocmai pentru a preveni eventualele atacuri. Saptamana trecuta vorbeam cu Joie care avea fix aceasi problema. El a fost nevoit sa contacteze firma de hosting si problema s-a rezolvat. Eu am hotarat sa incerc cateva trucuri gasite pe internet, dar pana la urma am contactat si eu firma de hosting MxHost. Oamenii de la serviciul tehnic au fost prompti si dupa vreo 15-20 de minute am primit un email cu urmatorul text: “fisierul xmlrpc.php a fost blocat de noi pentru motive de siguranta, insa se deblocheaza pentru clientii care au nevoie de acesta”. Dupa cateva minute am putut reactiva pluginul Jetpack care functiona fara probleme inainte. Ca sa miscorez sansele unui atac am adaugat o regula in fisierul .htaccess din radacina site-ului ce limiteaza accesul la acest fisier.
# securing the xmlrpc.php
<Files "xmlrpc.php">
Order Allow,Deny
deny from all
</Files>
Se pare ca aceasta problema este veche, am gasit comentarii vechi de cativa ani de zile, cumva cei de la WordPress nu au reusit pana acum sa gaseasca o solutie functionala. Mai jos am atasat cateva print screen-uri orientative.