Uzyskaj chroniony WordPress: zmienić nazwę folderu plugins
English version: Get WordPress protected: rename the plugins folder
Nadanie folderowi wtyczek nowej nazwy jest jednym z najbardziej niedocenianych sposobów, dzięki którym ochrona WordPress jest silniejsza. A mimo to jest bezpłatny i łatwy.
Dlaczego to ma znaczenie i jak działa
Według naszych badań przeprowadzonych w Cerber Lab większość ataków hakerów i próby wykorzystania luk w wtyczkach zakładają, że wszystkie wtyczki WordPress znajdują się w domyślnym folderze dla wszystkich wtyczek, które są / wp-content / plugins / . Na szczęście nazwę folderu można łatwo zmienić na cokolwiek chcesz w dosłownie dwóch prostych krokach. Czy to oznacza, że cyberprzestępcy mają zerową wiedzę na temat możliwości zmiany nazwy folderu i ślepego ataku na domyślną lokalizację wtyczki? Nie, nie zawsze, ale zdecydowana większość stron opartych na WordPressie korzysta z domyślnej struktury folderów i dlatego cyberprzestępcy wykorzystują tę słabość w prosty sposób.
Nasze analizy pokazują, że większość stron internetowych jest zhakowanych, wykorzystując lukę w przestarzałej wtyczce, aw większości przypadków atakujący wykorzystał lukę w pliku PHP, który znajduje się w domyślnym folderze wtyczek WordPress.
Wskazówka: użyj skanera złośliwego oprogramowania Cerber, aby znaleźć lukę w zainstalowanych wtyczkach .
Jak zmienić nazwę folderu wtyczek WordPress
Przede wszystkim musisz mieć dostęp do plików na swojej stronie za pośrednictwem panelu kontrolnego hostingu, który zwykle ma menedżera plików. Alternatywnie możesz użyć klienta FTP.
Pierwszym krokiem jest zmiana nazwy folderu wtyczek na dowolną nazwę. Załóżmy, że używamy nazwy modułów . Nazwa folderu musi zawierać tylko znaki ASCII. Po prostu „używaj tylko liter alfabetu łacińskiego”.
Drugim krokiem jest dodanie dwóch definiowanych dyrektyw do pliku wp-config.php , który mówi WordPressowi, że używamy nowej nazwy dla folderu wtyczek. Zobacz poniższy przykład i zanotuj:
- Musisz dodać dyrektywy na początek pliku w następnej linii po <? Php .
- Brak końcowych ukośników.
<? php
define ('WP_PLUGIN_DIR', '/ full / path / to / wp-content / modules');
define („WP_PLUGIN_URL”, „https://example.com/wp-content/modules”);
Stała WP_PLUGIN_DIR definiuje pełną ścieżkę bez końcowego ukośnika do folderu wtyczek o zmienionej nazwie.
Stała WP_PLUGIN_URL definiuje adres URL bez końcowego ukośnika folderu wtyczek ze zmienioną nazwą.
Po wykonaniu tych dwóch kroków dodajesz kolejną barierę bezpieczeństwa do WordPressa. Innym mechanizmem bezpieczeństwa, który należy rozważyć, jest włączenie zaplanowanego skanowania złośliwego oprogramowania .
Możliwe problemy i rozwiązywanie problemów
Strona nie ładuje się. Zwykle oznacza to, że wprowadziłeś literówkę w nazwie folderu. Dokładnie sprawdź definicje dodane do wp-config.php, pełną ścieżkę i określony adres URL.
Niektóre funkcje przestały działać. Na stronie internetowej zainstalowano źle zaprojektowaną lub przestarzałą wtyczkę. Najlepszą rzeczą jaką możesz zrobić, to się go pozbyć. Nie ma usprawiedliwień dla słabego rozwijania wtyczki. Programista wtyczek musi przestrzegać standardów kodowania WordPress.
Jak przywrócić domyślną nazwę folderu. Usuń wszystkie linie z dyrektywami WP_PLUGIN_DIR i WP_PLUGIN_URL z pliku wp-config.php, zmień nazwę folderu wtyczki z powrotem na wtyczki .
I tried changing the directory but it didn’t work.
Looking for more information I found something that works.
define( ‘WP_PLUGIN_DIR’, dirname(__FILE__) . /content/mod’);
define( ‘WP_PLUGIN_URL’, ‘http://example.com/content/mod’);
Why this way if it works and not the way you have in the post?
Has anything changed in the latest versions of WordPress?
The same thing happens to me with WP-CONTENT
Thanks
Yes, you can use this way too but it leaves some room for uncertainty because a constant should be constant. The perfect way is to define a static value like a string. It didn’t work for you most likely because the path you specified for WP_PLUGIN_DIR was not correct. Possibly because you had changed the default wp-content path to content. In this case, the full config should be:
// no trailing slashes
define('WP_CONTENT_DIR', dirname(__FILE__) .'/content');
define('WP_CONTENT_URL', 'https://example.com/content');
define('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/mod');
define('WP_PLUGIN_URL', WP_CONTENT_URL . '/mod');
Thanks!
I started by following this other post https://wpcerber.com/turn-wordpress-into-fort-knox/
But I couldn’t get it to work well.
Yes, that approach requires some technical background.