it-swarm.dev

Sicherheit und .htaccess

Vor ungefähr einem Monat habe ich einen WordPress-Blog auf einem gehosteten Server gestartet, der sich auf ein Hobby bezieht. Daher bin ich derzeit neu in diesem Bereich.

Aus Sicherheitsgründen habe ich das Plugin WP Security Scan installiert. Laut den Plugin-Ergebnissen checkt meine Site aus, außer dass ich dies in den Ergebnissen als rote Fahne erhalte:

Die Datei .htaccess existiert nicht in wp-admin/(ich habe sie dort eingetragen und sie existiert nicht)

Ok, also habe ich das Problem gründlich untersucht und zu viele Informationen über .htaccess gefunden. Ich habe Hardening WordPress auf der WordPress.org-Website usw. durchgemacht und bin auch auf diesen Artikel gestoßen: http://digwp.com/2010/07/wordpress-security-lockdown/

Wie auch immer, ich bin im Grunde mit der Fülle der verfügbaren Informationen verwechselt worden.

Was sollte die .htaccess-Datei in wp-admin enthalten? Ich habe gelesen, dass diese .htaccess-Datei das Verzeichnis wp-admin mit einem Kennwort schützen soll, und ich habe auch gelesen, dass dies zu Funktionsproblemen führen kann.

Hilfe dabei wird sehr geschätzt.

Vielen Dank. -wdypdx22

Update Ok, ich bin nicht in meinem Blog angemeldet und benutze einen anderen Computer als gewöhnlich. Ich gebe die URL www.meinesite.com/wordpress/wp-admin/ ein und es gibt eine Umleitung zum Anmelden. Wenn dies der Fall ist, wird dann im Verzeichnis wp-admin überhaupt eine htaccess-Datei benötigt?

8
wdypdx22

UPDATE: Als ich meine Antwort zum ersten Mal veröffentlichte, habe ich den Kern der Frage übersehen. Meine Antwort betraf die Sicherheit von .htaccess im Allgemeinen und ist jetzt unter der doppelten Zeile aufgeführt (schauen Sie nach unten, wenn es Sie interessiert.) Leider habe ich keine besonderen Erfahrungen mit der Sicherung von /wp-admin/ mithilfe von .htaccess, daher liste ich einfach die beiden Ressourcen auf, die ich verfolgen werde wann und ob ich es brauche:

Der erste empfiehlt Folgendes (und hier ist eine Diskussion darüber .)

<Files ~ "\.(php)$">
AuthUserFile /etc/httpd/htpasswd
AuthType Basic
AuthName "restricted"
Order Deny,Allow
Deny from all
Require valid-user
Satisfy any
</Files>

Letzterer enthält viele Informationen, insbesondere in den Kommentaren. Allerdings ist es nicht die Antwort, die Sie gesucht haben, wenn Sie eine Liste zum Lesen bereitstellen.

Entschuldigung, ich hätte nicht hilfsbereiter sein können.

=======================================

In der Regel hat WordPress nur die folgenden Funktionen, die für die Verarbeitung von Permalinks zuständig sind und sich nicht auf die Sicherheit beziehen:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Vor kurzem habe ich das WP htacess Control - Plugin gefunden, das eine Menge .htaccess für Sie verwaltet, und es gefällt mir ziemlich gut. Nach dem Ändern der Einstellungen wurden die folgenden Optionen hinzugefügt:

# WPhtC: Disable ServerSignature on generated error pages
ServerSignature Off

# WPhtC: Disable directory browsing
Options All -Indexes

# WPhtC: Protect WP-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

# WPhtC: Protect .htaccess file
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
</files>

Außerdem wurden die folgenden Optionen hinzugefügt, bei denen es um Leistung und nicht um Sicherheit geht:

# WPhtC: Setting mod_gzip
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

# WPhtC: Setting mod_deflate
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary
</IfModule>

Darüber hinaus gibt es einige Plugins, die ich noch nicht ausprobiert habe, die sich jedoch auf die Sicherheit konzentrieren und die mit .htaccess interagieren. Sie können sie jeweils ausprobieren, um zu sehen, was sie mit der .htaccess-Datei tun:

Darüber hinaus finden Sie die (IMO) # 1 Expertenressource zu Apache-Sicherheit in Bezug auf WordPress auf AskApache.com ; Typ ist Hardcore! Sein Blog löst Ihr "zu viele Informationen" -Problem nicht, aber Sie können es zumindest als maßgebliche Ressource betrachten!

Hier sind einige Beispiele (obwohl nicht alle direkt mit WordPress zusammenhängen, sind sie alle anwendbar):

Wie auch immer, hoffe das hilft.

8
MikeSchinkel

Die Idee dahinter: Wenn Sie Dateien haben, die von früheren Upgrades oder Zero-Day-Angriffen stammen, kann Ihr System gehackt werden. Wenn Sie den wp-admin auch mit einer anderen Methode sichern, können Sie sich vor Brute-Force-Angriffen schützen.

Eine Idee) Wenn Sie nur die Site bearbeiten, können Sie den Zugriff auf den Ordner durch eine IP-Adresse einschränken

<Files *>
Order deny,allow
Deny from All
Allow from 1.2.3.4
</Files>

Um es für dynamische IP-Systeme etwas erträglicher zu machen; Sie sollten in der Lage sein, einen Subblock zuzulassen. Wenn Ihr IP-Pool also immer zwischen 1.2.3.128 und 1.2.3.255 liegt, können Sie so etwas wie 1.2.3.128/25 tun

Eine andere Idee) erfordern HTTPS, geben Sie eine Erlaubnis verweigert, wenn sie es über http versuchen. Leiten Sie sie jedoch nicht an https weiter. Sie können ein selbstsigniertes Zertifikat oder ein Zertifikat von CA Cert verwenden, um ohne Kauf eines Zertifikats auszukommen.

4
Ryan Gibbons

Ich füge in wp-admin immer eine .htaccess-Datei ein, auch wenn ich nie etwas hineingesteckt habe, da dadurch die Datei des Stammverzeichnisses negiert wird. Einige Benutzer verwenden die .htaccess-Datei von wp-admin, um das gesamte Verzeichnis bis auf eine IP-Adresse auszublenden, andere verwenden sie, um das Verzeichnis mit einem Kennwort zu schützen.

Das Passwort, das den Admin-Bereich mit .htaccess schützt, deaktiviert jedoch die Ajax-Kommunikation, da diese mit wp-admin/admin-ajax.php interagiert.

Im Allgemeinen sehe ich keinen Grund, der Admin-.htaccess-Datei etwas hinzuzufügen, es sei denn, Sie sind extrem paranoid. Angriffe richten sich normalerweise ohnehin gegen wp-Inhalte.

0
John P Bloch