1 Trackback(s)
- Mrz 31, 2010: 5-Finger-Blog von Hollii » robots.txt
Grundlegendes
6. Juni 2008Auf Grund der Tatsache, das ich vor einigen Wochen sehr viele MySQL-Datenbank-Backups downloaden hätte können, die ich zufällig via Google-Suche gefunden hatte, habe ich mir gedacht, ich erstelle mal einen Leitfaden, was das Thema Website / Homepage / Blog / Forum / Gästebuch angeht. Oder was auch immer du für eine Seite ins Netz stellst. Es gibt Dinge, die sollten einfach nicht vergessen werden! Hier werde ich jetzt hoffentlich alle aufführen, die zum sicheren Betrieb einer Website wichtig sind. Unbedingt wichtig sind! Ich erkläre das natürlich an Hand meiner Website, bzw. meines Blogs.
Anmerkung: Es heisst Website und nicht Homepage. Warum? Weil die Homepage lediglich die Startseite / Homeseite einer Website ist. Am Beispiel meiner eigenen Domain gibts sozusagen 2x die “Homepage”. Und zwar einmal die Startseite selbst sehe ich als Homepage an und zum anderen die erste Seite des 5-Finger-Blog, die gleichzeitig alle jemals geschriebenen Artikel auflistet. Auf der ersten Seite sind die letzten 10 Blog-Einträge zu sehen, die hier veröffentlicht wurden. Somit sollte nur wirklich jeder wissen, der diesen Beitrag hier liest, das es eine Homepage eine Webseite und keine Website ist. Denn eine Website ist ja das gesamte Angebot an Webseiten unterhalb einer Domain. Mehr dazu in der Wikipedia.
Nun aber los. Zur Information: Diesen Beitrag schreibe ich aus dem Kopf. Ich habe mich hingesetzt und einfach angefangen. Ich habe während dessen weder Suchmaschinen benutzt noch bei mir in irgendwelchen Dateien nachgeschlagen. Es könnten sich also Fehler eingeschlichen haben. Natürlich werde ich das vor dem veröffentlichen noch durchchecken, ob ich nichts vergessen habe, so das das letztendlich eine umfangreiche Liste zusammen kommen sollte.
Fangen wir also mal bei null an. Du hast eine Domain registriert und Webspace gemietet. Nun möchtest du z.B. einen Blog installieren. Bevor du anfängst, überlegst du dir, wie du die Ordnerstruktur haben möchtest. Das sind nämlich Dinge, die man nach Möglichkeit nicht alle paar Tage ändern sollte. Denn sonst findet man deine Seite über eine Suchmaschine und dann gibts diese Seite, die in der Suchmaschine verlinkt ist, gar nicht mehr. Erst wenn du einen Plan hast, dann erst fängst du an die Ordner auf dem Webspace zu erstellen. Am Beispiel meiner Domain habe ich mehrere Ordner erstellt. Einen für die Fehlerseiten (/error/), einen für Bilder und Dateien (/temp/), die ich im Web und hier im Blog verlinkt sind und dann natürlich den Ordner vom Blog selbst (/blog/). Nachdem du diese erstellt hast, wird im nächsten Schritt direkt eine Datei mit dem Namen robots.txt angelegt. Das ist nämlich fast immer die erste Datei, die der Bot/Robot einer Suchmaschine aufrufen wird. Warum? Weil man mit dieser Datei der Suchmaschine mitteilen kann, welche Ordner nicht in die Suchmaschinen aufgenommen werden dürfen. Desweiteren kann man sogar für jede Suchmaschine andere Regeln für ein und den selben Ordner definieren. Ich habe in meiner robots.txt über 300 User-Agents gesperrt. Der Begriff User-Agent ist vergleichbar mit einem Auto-Kennzeichen. Man kann also am User-Agent in der Regel erkennen, wer oder was dahinter steckt. Das man den User-Agent fälschen kann, sollte somit jedem klar sein. Wenn man den User-Agent kennt, kann man diesen in der robots.txt angeben und diesem dann sagen, welche Ordner tabu sind. Damit aber niemand eventuelle geheime Ordner auf diese Weise findet, gibt man nicht den kompletten Namen an, sondern nur einen Teil des Namens. Wenn jetzt der Super-geheime Ordner /geheim-ordner/ heisst, dann reicht es aus, in der robots.txt Disallow: /geheim anzugeben. Das verbietet dann sowohl den Ordner /geheim-ordner/ als auch eventuelle Dateien die mit geheim anfangen, wie z.B. geheim.html. Verstanden? Ich denke ja. Wenn nicht, stelle deine Frage in den Kommentaren.
Die Datei robots.txt gehört in das Hauptverzeichnis der Domain. So wie es bei mir auch ist. In anderen Ordnern wird danach nicht gesucht. Somit ist die robots.txt bei mir immer hier zu finden.
Nun musst du überlegen, welche Ordner, bzw. dessen Inhalte auf gar keinen Fall in Suchmaschinen auftauchen sollen. Bei mir sieht das momentan so aus. Und zwar nehme ich jetzt nur “normalen” Regeln aus der robots.txt. Die über 300 User-Agents am Anfang lasse ich jetzt mal weg. Das sind jedenfalls alles Seiten und oder Dienste, bei denen ich nicht einverstanden bin, das die bei mir rumschnüffeln. Gut, ich gebe zu, einige sind überflüssig, weil sich die betreffenden eh nicht dran halten, aber versuchen muss ich es schon.
Daher trage ich da alle ein, die mir nicht passen. Genug zu denen. Jetzt zu Abacho, Googlebot, msnbot, Slurp (Yahoo), Teoma (Ask), Twicler und allen anderen, die nicht aufgeführt sind und mit dem * angesprochen werden.
User-agent: Abacho
User-agent: Googlebot
User-agent: msnbot
User-agent: Slurp
User-agent: Teoma
User-agent: Twiceler
User-agent: *
Disallow: /*/trackback
Disallow: /backups/
Disallow: /blog/feed
Disallow: /blog/page-imprint
Disallow: /blog/page-mail
Disallow: /blog/page-messenger
Disallow: /blog/wp-admin/
Disallow: /blog/wp-content/
Disallow: /blog/wp-includes/
Disallow: /blog/wp-app.php
Disallow: /blog/wp-atom.php
Disallow: /blog/wp-blog-header.php
Disallow: /blog/wp-comments-post.php
Disallow: /blog/wp-commentsrss2.php
Disallow: /blog/wp-config.php
Disallow: /blog/wp-cron.php
Disallow: /blog/wp-feed.php
Disallow: /blog/wp-links-opml.php
Disallow: /blog/wp-load.php
Disallow: /blog/wp-login.php
Disallow: /blog/wp-mail.php
Disallow: /blog/wp-pass.php
Disallow: /blog/wp-rdf.php
Disallow: /blog/wp-register.php
Disallow: /blog/wp-rss.php
Disallow: /blog/wp-rss2.php
Disallow: /blog/wp-settings.php
Disallow: /blog/wp-trackback.php
Disallow: /blog/xmlrpc.php
Disallow: /cgi-bin/
Disallow: /data/
Disallow: /file
Disallow: /goto
Disallow: /podcast/
Disallow: /robots.txt
Disallow: /stati
Disallow: /temp/firefox_erweiterungen/infolister_archiv/
Disallow: /temp/javascript-spielereien/
Disallow: /temp/miranda_version/archiv/
Disallow: /temp/programme/
Disallow: /temp/quarantaene/
Disallow: /temp/radio/
Disallow: /temp/scrapbook_
Disallow: /temp/spam/
Disallow: /temp/upl/
Du siehst nun welche Ordner bzw. Dateien bei mir von den Suchmaschinen igoniert werden sollen. Um auch hier ein Beispiel zu geben. Disallow: /blog/kategorie sperrt die Kategorien für Suchmaschinen. Das ist der Name, den man im Wp-Admin von WordPress für die Kategorien vergeben wurde. Natürlich sollte auch die robots.txt selbst gesperrt werden. Denn meine robots.txt war mal über Google zu finden.
Um nun sicher zu stellen, das die Inhalte in diesen Ordner auch wirklich nicht gefunden werden, sollte man so gut es geht, das Verzeichnislisting zu deaktivieren. Sollte also ein Besucher oder ein Bot/Robot den Ordner aufrufen, sollte nicht zu sehen sen was drin ist. Das kann man auf verschiedenen Wegen realisieren. Die einen legen einfach eine leere Datei (meist index.html) in die Ordner rein. Somit sieht man nur eine weisse Seite. Andere benutzen dazu die Datei .htaccess – denn mit der kann die Ordner richtig schön konfigurieren.
Hier auch mal ein Sccreenshot von meinen Ordnern.. Ich glaube so können einige den Zusammenhang zwischen den Ordnern und dem was in meiner robots.txt steht eher verstehen. Hoffe ich jedenfalls. Denn so siehst du die Ordner wie sie bei mir sind. Nebenbei kann man am Dateidatum der Datei /h75.gif erkennen, seit wann es mein Auge im Internet gibt.
Sofern als Webserver (http) der Apache genutzt wird, reicht in der Regel ein:
Options -indexes
in der .htaccess aus, um die Anzeige der Ordner-Inhalte zu verhindern.
Natürlich kann man hier auch noch weiter gehen, in dem man verschiedene Dateiendungen grundsätzlich nicht anzeigen lässt. Dazu trägt man in der .htaccess im Hauptverzeichnis der Domain dann folgendes ein, um z.B. MySQL-Datenbank-Backups unsichtbar zu machen, die meistens als dateiname.sql oder dateiname.sql.gz in einem Ordner unterhalb der Domain abgelegt werden.
IndexIgnore *.sql *.sql.gz
Sofern man einen Ordner komplett für den Zugriff via Browser sperren möchte, weil er z.b. für Backups genutzt wird, dann sollte man diesen so sichern. Wieder kommt die .htaccess zum Zug. Inhalt:
deny from all
Somit lässt sich weder der Ordner aufrufen/anschauen, noch deren Inhalte. Am Beispiel meiner Domain ist da der Ordner /backups/ zu nennen, in dem ich schon mal Backups speichere.
Natürlich gibt es noch weitere Möglichkeiten, aber ich möchte es ja auch nicht übertreiben. Das ist eigentlich schon das wichtigste in Bezug auf Ordner und Dateien, die nicht für die Öffentlichkeit bestimmt sind. Am besten ist es natürlich, die Backups nicht im Web zu speichern sondern unterhalb der öffentlichen Ordner, was eigentlich unterhalb jeder Domain möglich sein sollte. Bei mir sieht das ja so aus:
/home/hollii_de/www/ – das ist der Ordner mit der Startseite
/home/hollii_de/www/backups/ – hier landen schon mal Backups
/home/hollii_de/www/blog/ – hier liegt der Blog
/home/hollii_de/www/temp/ – hier liegen Bilder usw.
Allerdings hab ich das Archiv für meine Backups hier liegen, genauso wie die Homeverzeichnisse der Benutzer:
/home/hollii_de/mysqldumper-backups/
/home/hollii_de/benutzername/
Diese sind also nicht über den Webbrowser erreichbar. Aber natürlich via FTP / S-FTP / SCP. Sofern man die Zugangsdaten zum Server kennt.
Ich denke das sollte erst mal reichen oder? Das wichtigste in Bezug auf die robots.txt und die .htaccess habe ich angesprochen um Ordner vor Suchmaschinen zu verbergen, bzw. diese daran zu hindern, die Inhalte in die Suchmaschinen aufzunehmen.
Zum Schluss möchte ich noch die über 300 User-Agents ansprechen, die bei mir in der robots.txt stehen. Das sind alles User-Agents, die ich im Laufe der Jahre entdeckt habe. Ich habe diese Liste also selbst erstellt.
Du kannst diese gerne übernehmen. Erklären kann ich aber nicht alle. Um aber mal ein Beispiel zu geben, was ich damit verhindern kann, wenn ich möchte. Jeder kennt www.archive.org das sogenannte Internet-Archiv. Da ich schon seit Jahren den folgenden Eintrag in der robots.txt habe, sind von mir keinerlei Internetseiten zu finden.
User-agent: ia_archiver
Disallow: /
http://web.archive.org/web/*/http://hollii.de/
Das ist nur ein Beispiel von vielen. Alles in allem sind das alles ähnliche Dienste, die ich so versuche zu blocken. Was mir bisher ja auch gelungen ist.
Noch Fragen? Dann stell sie einfach in den Kommentaren oder schreibe mir ne E-mail.


Kommentare/Trackbacks zu “Grundlegendes”
Sehr nützlich, vielen Dank
Dave am 6. Dezember 2008 [Link]