(Mir ist bewusst, dass Sicherheit durch Dunkelheit nicht empfohlen wird).
Ich versuche die Tatsache zu verbergen, dass ich Wordpress verwende. Dieser Beitrag ist hilfreich, befasst sich jedoch nur mit dem Inhalt (Art). Ich bin daran interessiert, dass Folgendes auftritt:
Der Benutzer versucht,
wp*
über seinen Browser auf eine URL mit einer Teilzeichenfolge zuzugreifen .Ergebnis: Auf 404-Seite umgeleitet.
Der Blog-Benutzer / Administrator weiß, dass er sich anmelden muss, um sich anzumelden
http://example.com/blogin/
.Ergebnis: Apache leitet sie an weiter
http://example.com/wp-admin/
.Wenn ein Benutzer versucht, direkt
wp-admin
von seinem Browser aus darauf zuzugreifen , wird er an Nummer 1 gesendet.Ergebnis: Auf 404-Seite umgeleitet.
Dinge, die ich bisher gemacht habe
Bei einer Standardinstallation von WordPress ist mir aufgefallen, dass ich auf alle
wp*
Dateien im (relativen) Stammverzeichnis der WP-Installation zugreifen kann . Insbesonderewp-settings.php
war problematisch, weil es Informationen über meine Einrichtung gab. Wenn ein Benutzer darauf zugreift, werden einige PHP-Fehler ausgegeben und ein Teil der Verzeichnisstruktur angezeigt. Ich habe meine php.ini-Datei bearbeitet, um siedisplay_errors
auszuschalten. Beim Zugriffhttp://example.com/wp-settngs.php
wird eine leere Seite angezeigt.Dies an sich ist nicht ideal, weil es zeigt, dass es
wp-settings.php
existiert. Tatsächlich ist der Zugriff auf alle verschiedenenwp*
Dateien möglich (mit unterschiedlichen Ergebnissen). Ich habe dann folgendes in meine htaccess-Datei eingefügt:RewriteEngine On RewriteBase / RewriteCond %{PATH_INFO} wp* [NC] RewriteRule .* - [F]
Das hat super geklappt! Alles mit einem
wp*
wurde auf meine benutzerdefinierte 404-Seite weitergeleitet. Aber jetzt kann ich nicht auf meine Admin-Seite zugreifen.Ich habe versucht, diese Zeile in den obigen Code einzufügen :
RewriteRule ^blogin wp-admin [NC,R,L]
. Es sollte gleich danach sein,RewriteBase
aber das hat nicht funktioniert.Ich habe versucht:
<Directory /home/example/wp*> Order Allow, Deny Allow from example.com Deny from all </Directory>
Ich hoffe, dass ein Referer von meiner Site (über das Umschreiben der Regel) auf wp-admin zugreifen kann, aber nicht auf jemanden von außerhalb. Das hat auch nicht funktioniert. apache hat sich beschwert, dass Sie diese Anweisung von htaccess nicht verwenden können.
Ich habe die Apache-Dokumentation gelesen. Ich verstehe die Konzepte theoretisch, aber ich brauche praktische Hilfe.
BEARBEITEN: Ich suche nach einer Lösung, die .htaccess anstelle von httpd.conf verwendet, da mein spezielles Setup die Verwendung von httpd.conf inkonsistent macht.
quelle
Antworten:
TLDR; Es ist nicht möglich, WordPress zu verschleiern, indem Sie nur Anweisungen in Ihrer .htaccess-Datei verwenden.
Jetzt kommt eine Geschichte von Leid und Entsetzen. Unser Freund fbh hatte Recht mit der Schwierigkeit, WordPress zu verstecken, nicht für Feiglinge mit gelbem Bauch. Arr! Hier sind die Details dieses (falschen) Abenteuers. Ihr seid gewarnt!
Motivation
Ich bin einer von denen, die Dinge perfekt mögen. Ich werde Zeit
damitverschwenden, etwas zu überarbeiten, um der „richtige Weg“ zu sein. Eines der Dinge, die mir am Standard-WordPress-Setup nicht gefallen haben, war, dass ein Benutzer http://ex.com/wp-settings.php eingeben konnte und dann all dieser PHP-Jargon überall herumspuckte. Ich war schließlich in der Lage, Fehler über PHP auszuschalten, aber das führte zu einem größeren Wunsch, nur Dinge zu haben, die seitdem als lokalisierbare Ressourcen vom Server gemacht wurden ... und dass alles andere auf unserer benutzerdefinierten Suchseite 404 / 3'-bestätigt würde. Danach kam mir die Idee, dass ich das zugrunde liegende Framework (dh WP) vollständig ausblenden möchte ... sowieso ... wenn Sie WP ausblenden möchten, ist dies möglich. Aber es ist wirklich schwer.Schritte in dein Verderben
Ändern Sie Ihre PHP-INI-Einstellungen entsprechend. (dh Anzeigefehler deaktivieren ) Sie denken möglicherweise, dass dies nicht erforderlich ist, da bei Verwendung von .htaccess zum Umleiten von Dingen keine Fehler angezeigt werden, da sie nicht auf die fehlerverursachenden Ressourcen zugreifen können (ich sehe Sie an
wp-settings.php
). Auf den angezeigten Seiten können jedoch Fehler auftreten, sodass Sie sie auf jeden Fall deaktivieren möchten. Nur weilWP_*
Richtlinien festgelegt sind, bedeutet dies nicht unbedingt, dass die Dinge so funktionieren, wie Sie es sich vorstellen. Ich habe festgestellt, dass ich auf meinem Server die display_errors auf false FIRST setzen musste, da WP_DISPLAY_ERRORS davon ausgegangen ist, dass die Standardeinstellung false ist.Das Steuern der PHP-INI-Einstellungen kann so einfach sein wie das Einfügen einer Direktive in Ihre .htaccess-Datei. Oder in meinem Fall so kompliziert wie das Erstellen eines CGI-Handlers und das anschließende Ablegen einer php.ini-Datei. YMMV abhängig von Ihrer Einrichtung.
Entfernen Sie jeglichen Zugriff auf Dateien / Verzeichnisse mit
wp-
Präfix. Die Idee ist, dass es bei Ihrer WP-Bereitstellung um Ihren Inhalt geht, nicht um WP (es sei denn, es ist speziell auf WP ausgerichtet). Es macht keinen Sinn, dass die Leute sehen wollen, was http; // ex.com/wp-cron.php hat ... es sei denn, sie haben nichts Gutes vor. Ich habe dies folgendermaßen erreicht:Erfahren Sie, wie Sie mordor einfach durchlaufen. Wenn Sie den gesamten Zugriff auf entfernen, erhalten
wp-*
Sie keinen Zugriff mehr auf den administrativen Teil von WP. Das ist wirklich scheiße. Zusätzlich zu diesem Wermutstropfen haben Sie gerade festgestellt, dass Sie nicht wissen, wasRewriteCond %{ENV:REDIRECT_STATUS} ^$
wirklich funktioniert. Nun, ich habe versucht, mir eine "geheime" Hintertür zur WP-Administrationsseite zu geben. Ich habe diesen Code verwendet:Die URL: http://ex.com/mordor sollte uns also zur Anmeldeseite bringen. Der Grund, warum wir die
REDIRECT
Zeile im obigen Schritt hatten, ist, dasswp-*
wir nicht möchten, dass die erste Umschreiberegel sie erhält, da diese URL in eine URL umgeschrieben wird . Da es intern umgeleitet wird,REDIRECT_STATUS
wird es richtig eingestellt und es wird uns nicht auf 403/4 Land drängen.Entfernen von wp-Inhalten Wordpress.stackexchange bietet einen großartigen Artikel zum Entfernen von wp-Inhalten. Sie müssen einige WP-Konstanten neu definieren und das funktioniert so ziemlich. Sie müssen auch alle Zugriffe von
wp-content
"Was auch immer-Inhalt" umleiten. Dies ist wahrscheinlich kein Problem, wenn es sich um eine saubere Bereitstellung handelt. Wenn Sie eine bereits vorhandene Bereitstellung ändern, müssen Sie einige zusätzliche Aufgaben ausführen.URLs in wp-content umschreiben optional
RewriteRule (.*)(wp-content)(.*) $1whatever-content$3 [NC,R,L]
. Dies geht in Ihre .htaccess-Datei. Wenn Ihr Benutzer versucht, über einewp-content
URL auf alte Inhalte zuzugreifen , werden diese hier umgeleitet.Grep und ersetzen Sie alle Verweise auf wp-Inhalt in Ihrer DB optional . Sie haben noch
wp-content
in Ihrer Datenbank. Wenn du WP frei haben willst, musst du das Zeug loswerden. Ich habe meine Datenbank exportiert / mysql ausgegeben, eine Suche durchgeführt und diewp-content
Zeichenfolge durch die neue ersetzt. Sie könnten sagen ... warum muss ich das tun, wenn Apache meine URLs neu schreibt? Das Problem ist, dass der Quellcode diese Referenzen enthält. Wenn Sie also wirklich daran interessiert sind, WordPress zu verschleiern, müssen Sie dies tun. Hinweis: Zu diesem Zeitpunkt hätte ich einfach aufhören und die Realität akzeptieren sollen, dass dies nicht funktionieren würde. Aber ich wollte, dass Mr. T mich bemitleidet.Ersetzen Sie alle Verweise auf
wp-includes
undwp-admin
in der Quelle. Ein Großteil der WordPress-Funktionalität hängt von diesen beiden Verzeichnissen ab:wp-includes
undwp-admin
. Dies bedeutet, dass diese Verzeichnisnamen im Quellcode fest codiert sind. Dies bedeutet, dass Sie neue Verzeichnisse erstellen müssen (da PHP das zugrunde liegende Betriebssystem-Dateisystem verwendet, nicht Apache), um auf diese zuzugreifen, und diese dann in das ausgegebene HTML schreiben müssen. Das ist einfach viel zu viel Mühe. Ich gab schnell auf und ging ins Badezimmer, um einen Kot zu machen.Lektion
Klar, ich hätte einfach http://codex.wordpress.org/Hardening_WordPress lesen und diese Schritte befolgen können. Aber ich wollte die perfekte Seite. Jetzt will ich nur noch all diese Stunden zurück. Das Größte, was mich daran hinderte anzuhalten, war, dass ich nirgendwo im Internet gelesen habe, dass dies eine Menge Arbeit war und fast unmöglich zu tun war. Stattdessen las ich von Leuten, die versuchten, es zu tun, ohne zu wissen, ob sie erfolgreich waren oder nicht. Also, an mein früheres Ich, an das ich dies über Apples Time Machine senden werde, versuchen Sie bitte nicht, WordPress zu verschleiern. Es lohnt sich nicht.
quelle
wp-includes
undwp-admin
manuell geschrieben haben. Ich bin mir ziemlich sicher, dass Sie jede einzelne Datei durchsucht und manuell ersetzt haben. Das liegt daran, dass Sie einige nützliche handliche Software verpasst haben. Zum Beispiel hätten Sie Grepwin ausprobieren können , was diese Arbeit einfacher machtWenn Sie versuchen zu verbergen, dass Sie WordPress wegen Crackern verwenden, dann haben Sie wirklich etwas zu tun. Wenn Sie den wp * -Trick ausführen, was ist dann mit wp-content und wp-includes? Ohne diese erreichen zu können, werden Sie die Seite brechen und es wird schrecklich aussehen.
Außerdem gibt es in Wordpress so viele Dinge, dass dies wirklich einige Arbeit erfordert - und Sie werden höchstwahrscheinlich viel davon erneut tun müssen, wenn ein Upgrade installiert wird. (Da einige Weiterleitungen in Apache nicht ausreichen)
Wenn Sie nur versuchen, es vor Herrn und Frau allen zu verbergen, sollten Sie das natürlich etwas mit Dunkelheit tun können.
Haben Sie die Anleitung zum Härten von Wordpress gelesen? Wenn nicht, sollten Sie es sich ansehen : http://codex.wordpress.org/Hardening_WordPress Es bietet eine großartige Einführung in viele Dinge, die Sie tun können.
Wenn Sie die Tatsache, dass Sie Wordpress verwenden, unbedingt verbergen möchten, warum sollten Sie es dann verwenden?
quelle
Versuchen Sie, Ihre Konfiguration in der Apache-Konfiguration vorzunehmen. Dies kann ein Include von Dateien wie sein
/etc/wordpress/htaccess
. Auf diese Weise können Sie dieDirectory
Konfigurationsanweisung verwenden. Sie müssen jedoch Apache neu starten, um Änderungen zu laden. Verwenden Sie den ordnungsgemäßen Neustart, wenn Sie keine Dienstunterbrechungen wünschen.Um Verzeichniszugriffe mit
.htaccess
Dateien einzuschränken , müssen sie sich in den entsprechenden Verzeichnissen befinden. Sie funktionieren ähnlich wie der Inhalt einerDirectory
Konfigurationsanweisung. Möglicherweise müssen Sie die erforderlichen.htaccess
Optionen in Ihrer Apache-Konfiguration aktivieren . Diese Methode ist nicht so effizient wie die Verwendung von Befehlen in der Apache-Konfiguration, da sie häufig repariert werden muss.quelle
.htaccess
Datei im entsprechenden Verzeichnis ablegen . Hinweis: Apache empfiehlt, wenn möglich, die Konfiguration zu verwenden. Verwenden Sie die Versionskontrolle, um sich vor Überschreibungen zu schützen.