Du bist nicht angemeldet.

3LiT

Fortgeschrittener

(17)

  • »3LiT« ist der Autor dieses Themas

Beiträge: 270

Renommeemodifikator: 5

Danksagungen: 1

  • Private Nachricht senden

1

Sonntag, 25. August 2013, 23:40

(Tutorial) Administrations-Panel absichern (PHP/htaccess)

Hey,
ich sehe heutzutage immer öfters das irgendwelche Leute Probleme haben, weil Zugriff auf deren ACP erfolgt ist und somit meist auch auf die Datenbank. Wenn man schon sämtliche Steuerung auf einen bestimmten Bereich legt, sollte man auch schauen das man diesen dementsprechend sichert.

Vorrausgesetzt ist ein korrekt eingerichteter Webserver und die neusten Versionen von PHP MySQL und co. um so Standardsituationen seitens des Servers zu vermeiden. Wenn ihr das mitbringt, helfen euch eventuell diese Schritte, um das ACP noch zu sichern:

1. IP-Subnets oder nur komplette IP's zulassen
Diese Idee ist mir vor ein paar Monaten gekommen und ich muss sagen, ich benutze Sie recht erfolgreich. Bei dynamischen IP-Adressen kann man die Subnets (die ersten 2 Ziffern) abspeichern und nur Zugriff auf die Webseite geben, bei statischen die komplette IP. Selbst mit dem Subnet sollten in etwa 70% der Angreifer die irgendetwas versuchen abgeblockt werden. Es kann natürlich auch passieren das sich das Subnet mal ändert, das passiert dann aber nur alle 2-3 Wochen maximal (nach meinen Erfahrungen).

Ein Beispiel:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
<?php
 $ip explode('.',$_SERVER['REMOTE_ADDR']);

 if($ip[0].'.'.$ip[1] != '82.192')
 {
  echo 'Keinen Zugriff';
  exit;
 }
?>


2. Administrationsordner richtig bennen und nicht verlinken!
Der Administrationsordner sollte nicht unbedingt 'admin' oder 'panel' heißen. Eventuell auch ein kleiner Mix aus Buchstaben und Zahlen. Desweiteren sollte man darauf achten das man den Link nicht Public auf die Webseite schreibt (wie >> Zum Administrationsbereich). Wenn überhaupt sollte man dies nur tuen wenn das ganze mit einem Loginsystem für Benutzer verknüpft ist und man den Link dann dementsprechend nur für Administratoren ausgibt.

3. htaccess verwenden
Ein Passwort muss nicht unbedingt genug sein. Ich empfehle hier auf jeden Fall noch ein weiteres Passwort und eventuell einen standardmäßigen Nutzer.

4. Bild anstatt Passwort-Login im ACP
Die Idee kam mir damals und ich finde sie um einiges sicherer als normale Passwörter. Man muss ein Bild hochladen, mit PHP überprüft man dann ob beispielsweise jeder 2. Pixel übereinstimmt und speichert dazu noch namen o.Ä. der Datei verschlüsselt mit ab. Ich habe noch keinen gesehen der 100000 Bilder auf dem PC hat um zu überprüfen ob ein Login stimmt.

5. IP's blocken
Falls das Subnet stimmt, die Person durch die htaccess Datei gekommen ist und nun mit den Bildern rumprobiert wäre es schlau diesen irgendwann zu blocken. Nach 3-5 versuchen mit einem falschen Passwort (kann man ja in der Datenbank abspeichern) sollte man die IP für einen kompletten Tag sperren. Das wechseln der IP wird zwar recht schnell gehen, von daher kann man dann checken ob es wieder das gleiche Subnet ist. Wenn ja, blockt man dieses kurzzeitig für 15 Minuten o.Ä.. Die meisten BOT's/Scripte hören dann auf, bis sie neugestartet werden.

6. Dateien richtig einbinden
Die Seitensysteme wie admin.php?page=members sind noch immer sehr viel benutzt. Man sollte hier aber schauen, wenn man diese über GET einbindet, ob sie auch wirklich über die admin.php eingebunden wurde. Meistens ist der Schutz gegen das einloggen auf der admin.php, aber beispielsweise nicht auf der /pages/members.php wo die Seite eigentlich herkommt. Dafür gibt es eine einfache Möglichkeit: Wir setzen uns eine Variable/Konstante in der admin.php und überprüfen auf jeder Unterseite ob diese Variable gesetzt ist. Wenn nicht, hat der Benutzer keinen Zugriff.

Ich kenne wirklich keinen, der bis jetzt durch all diese Sicherheitsmaßnahmen durchgekommen ist, wobei das sicherlich auch nicht mehr lange dauern wird.

Ähnliche Themen

Social Bookmarks