| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||||||
| Erfahrener Benutzer Registriert seit: 15.08.2004
Beiträge: 2.473
![]() | Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
http://www.google.de/search?hl=de&ie...a=lr%3Dlang_de
__________________ mod = master of disaster | |||||
| |
| | |
| Erfahrener Benutzer Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse: Anfänger ![]() | Auzug aus einem forum: _____________________________________- htaccess Schutz für jegliche Dateien ( für Fortgeschrittene) Ich kann nicht genau sagen, welche Anforderung es braucht, um dies zu nutzen, bei mir hat es gedauert, aber ich musste es mir ja zusammenstricken, wohingegen Ihr mein Tutorial nehmen könnt PHP wird hier nicht zwangsweise benötigt, sollte aber für einen vollständigen Schutz beherrscht werden und mindestens rudimentär Verstanden werden. Ich führe hier zwei Arten eines Schutzes vor. Voraussetzung ist, dass Ihr wisst, was ein Server ist und wie man bereits mit .htaccess umgeht. Ich verweise auf SelfHTML Das ist sehr gut! Für alle, die Erfahrung haben, hier weiterlesen: Erste Version: Also, im ersten Beispiel verwende ich .htaccess mit dem Mod_Rewrite Modul, welches für mich ein Optimum darstellt. (Lokal bitte Mod_Rewrite in der httpd.conf vom Apache auskommentieren.) Kurzer Ablauf des Problems: Sensible Daten sollen nur für registrierte oder private User verwendet werden, können diese nicht in eine Datenbank gepackt werden, wie z.B. Bilder, muss man diese extern schützen. Ich gehe von zwei Möglichkeiten aus, erstens: User kommt normal per Link durch PHP oder durch sonst was, muss sich einloggen usw. und wird ggf. dann zu den Bildern(ich nehme in meinem Beispiel Bilder) geleitet. Alles kein Problem, den Passwortschutz der PHP Scripte will ich nicht näher ansprechen, dies kann man nachholen, in dem man z.B. PHP lernt . Jetzt zum Problem (zweite Möglichkeit): Wenn jemand nun den Pfad zum Bild direkt kennt, sei es, der eingeloggte User verrät es, indem er mit der rechten Maustaste auf das Bild klickt oder wenn man irgendwoher sonst die URL kennt, so kann PHP diese Bilder regulär nichtm ehr schützen, da es komplett an der PHP vorbei geht. Hier kommt die erste, gute Variante ins Spiel. Wir haben den Ordner http://meine-adresse.de/privat/bilder/ , in den Bilder Ordner tun wir jetzt die folgende .htaccess Datei rein: Code: RewriteEngine on Options FollowSymLinks RewriteRule .* ../check.php [NC] Kurz gesagt, hiermit aktivieren wir die Rewrite Engine, welche das Modul Mod_Rewrite darstellt. Mit RewriteRule .* ../check.php [NC] wird jeder Zugriff auf diesen Ordner für jede Datei zur check.php umgeleitet, welche eine Ebene höher liegt, hier im Ordner /privat/, das NC bewirkt, dass man auf die Groß- und Kleinschreibung nicht zu achten braucht. Erstellt jetzt eine PHP Datei mit dem Namen check.php, und fügt diesen Inhalt dort komplett ein: PHP-Code: <?php $name=basename($_SERVER['REQUEST_URI']); if ($name=="testbild.jpg"){ readfile(".".$_SERVER['REQUEST_URI']); } else { die("Ungültige Angabe"); } ?> Schickt diese in den Ordner, wo der Bilder Ordner liegt, aber auf keinen Fall in den /bilder/ Ordner! Ruft jetzt mal Testweise den Ordner /bilder/testbild.jpg auf, es spielt keine Rolle, dass das Bild nicht existiert, wenn im Browser "Ungültige Angabe" oder sogar das Bild erscheint (falls Ihr dort eins mit dem Namen testbild.jpg eingefügt habt), so funktioniert die .htaccess tadellos, wenn nicht, müsste ein "Internal Server Error 500" kommen, dass bedeutet, der Server nimmt eure .htaccess nicht an, entweder ist Mod_Rewrite nicht an, oder es liegt ein anderer Fehler vor, aber dass ist erstens nicht Teil dieses Tutorials und zweitens kein Problem, dann geht Ihr einfach zur zweiten Version meines .htaccess Tutorials. Kleine Erklärung: Ruft man irgend ein Bild im Ordner /bilder/ auf, so wird in jedem Fall eine Umleitung zur check.php geschickt, ohne Ausnahme. Die check.php, hier eine sehr simple, prüft, ob das Bild „testbild,jpg“ heißt, oder nicht, wenn nicht, dann kommt "Ungültige Angabe", wenn es doch existiert, dann kommt readfile zum Einsatz und gibt das Bild sofort aus. Vielleicht wundert sich jemand, warum ich dort ".".$_SERVER... geschrieben habe, das ".". ist nötig, weil $name nur noch den Namen des Bildes enthält, und mit readfile($name) würde das PHP Script versuchen das jeweilige Bild aus dem Ordner zu holen, wo die check.php liegt, und da gibt es das Bild ja nicht. Dieser Pfad muss immer an den jeweiligen Pfad angepasst werden! P.S: Man sollte eventuell vor der Ausgabe einer JPG Datei, den header('Content-type:image/jpeg'); setzen oder halt die nötigen header für die jeweilige Dateiausgabe optimieren, denn es kann sein , dass sonst das Bild als ASCII (Plain Text) ausgegeben wird und dass ist nicht zu gebrauchen. Meine check.php kann man, oder besser gesagt, sollte man durch eine gescheite Passwort Abfrage ändern, dies hier ist nur ein Beispiel, wichtig ist die Verwendung von readfile!!! Zweite Version: Es gibt viele Webhoster, die das Mod_Rewrite Modul nicht aktiviert haben, man kann denen eine Mail schreiben oder meine Alternative nutzen. Vorraussetzung ist, dass der Server allgemein .htaccess Passwortabfragen zulässt, was aber in der Regel der Fall ist. Es verläuft im Grunde alles analog zum ersten Beispiel, der Unterschied ist nur, dass in dem Falle keine Umleitung auf die check.php erfolgt, wenn man die direkte URL eingibt. Ist zwar nicht so schön, aber .htaccess via Browser zu knacken würde ein Weilchen dauern. Es gibt unzählige Tutorials, wie man mit .htaccess ein Passwortbereich aufbaut, daher will ich das Rad nicht neu erfinden, sondern verweise wieder auf http://selfhtml.teamone.de/diverses/htaccess.htm Die .htaccess Datei müsste jetzt ungefähr so aussehen: Code: AuthName "geschuetzer Bereich" AuthType Basic AuthUserFile /home/meine-adresse/private/.htpasswd require valid-user Eine zweite .htpasswd Datei, auf die in der .htaccess verweisen wird, wird in diesem Fall in dem gleichen Ordner, wo auch der Bilder Ordner drin ist. Generell sollte man die .htpasswd außerhalb der für Internet-User zugängliche Bereiche legen, aber oft ist dass nicht möglich. Die .htpasswd Datei setzt sich aus PASSWORT:mit_crypt_codiertes_passwort zusammen. Der springende Punkt ist, dass eine PHP Datei, welche die Verwaltung übernimmt, die Datei nur mit readfile lesen kann. Die zweite, hier verwendete, Methode ist keine Verbesserung oder Neuerung des Scriptes. Die Methode soll nur zeigen, wie man ohne die Rewrite Engine an sein Ziel kommt. Fazit: Beides sind gute Methoden um den unautorisierten Zugriff mit der direkten Methode zu unterbinden. Ich bedanke mich bei mal_anders für das Mitlösen des Problems. Fragen und Anregungen bitte hier posten In den beiden Beispielen müsst Ihr die x.htaccess Datei umbenennen in .htaccess. Achtung: Bei der .htaccess muss man den Pfad richtig anpassen und evtl. das x bei x.htaccess entfernen. Bei Windows lokalen Servern müsst Ihr in der httpd.conf den Wert für .htaccess zu x.htaccess umbenennen, da Windows Dateinamen, die mit einem Punkt anfangen, kaum verarbeiten kann. Username und Passwort für die htaccess2 Beispiele ist User "test" und Passwort "test". Beide Beispiele sind sofort verwendbar, einfach uploaden und im Browser aufrufen. Beides wurde von mir getestet. Ich weise darauf hin, dass das anapssen der .htaccess Pfade ein Problem für unerfahrene User sein kann MM Edit: die beispieldaten zu diesem tutorial befinden sich weiter unten (im 10. beitrag)
__________________ "Nobody is as smart as everybody" - Kevin Kelly — The best things in life aren't things |
| |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | vor hackern willst du dich schützen? :P dazu musst du deine mysql-verbindung eigentlcih ncihts sichern, ausserdem ist das zumeist eh eine lokale verbindung, weil der mysql-server auf der gleichen kiste läuft wie dein webserver. abgesehen davon ist der schutz vor hackern viel mehr aufgabe des admins des webservers indem er diesen sauber wartet / pflegt udn updatet.
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| |
| | |
| Gast
Beiträge: n/a
| kann mir jemand dies erklären? AuthType Basic AuthName "dein-Bereich(name)" AuthMySQLHost localhost AuthMySQLCryptedPasswords off AuthMySQLDB datenbankname AuthMySQLUser dein_db_username AuthMySQLPassword dein_db_passwort AuthMySQLUserTable db_tabelle AuthMySQLNameField loginname AuthMySQLPasswordField password AuthMySQLKeepAlive Off <LIMIT GET POST> require valid-user </LIMIT> greetz noxX |
| | |
| Erfahrener Benutzer Registriert seit: 15.08.2004
Beiträge: 2.473
![]() | Der Beitrag wurde verschoben, wegen... ... Postings im falschen Forum. Bemerkung: Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.
__________________ mod = master of disaster |
| |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | das alles geht nur wenn dein apache das passende modul isntalliert hat, was ich bei webspace eher bezweifle. dazu ist dann ein root-server nötig und der kostet zeit, geld und linux-wissen!! :P mfg robo47
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] MySQL Datenbank erstellen, nur wie? | Datenbanken | 9 | 24.04.2012 15:04 | |
| Mit php und mysql baumstrukturartiges-Menü erstellen | BartTheDevil89 | PHP Tipps 2008 | 3 | 11.05.2008 22:44 |
| [Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank | _youngenterpriser_ | Datenbanken | 2 | 05.02.2008 17:56 |
| MySQL Server startet nicht mehr richtig... | Datenbanken | 16 | 03.03.2006 19:40 | |
| [Erledigt] Collations für MySQL selber erstellen? | Datenbanken | 0 | 25.11.2005 19:01 | |
| mysql dump erstellen | PHP Tipps 2005-2 | 4 | 03.09.2005 22:02 | |
| Suche Tipps für Persormance-Steigerung (Geld für Nützliches) | Beitragsarchiv | 18 | 16.08.2005 10:57 | |
| datenbanken in mysql erstellen??? | PHP Tipps 2005-2 | 0 | 05.08.2005 19:41 | |
| Benötige Hilfe - Gästebuch erstellen (php, mysql) | PHP Tipps 2005-2 | 20 | 02.07.2005 13:00 | |
| mysql tabelle erstellen - name variable | möchtegernchegga | PHP Tipps 2005 | 10 | 24.04.2005 21:01 |
| .htaccess mit mySQL und PHP | Soese | PHP Tipps 2005 | 7 | 23.02.2005 23:09 |
| [Erledigt] MySQL User erstellen | Datenbanken | 2 | 17.02.2005 17:23 | |
| mit mysql und php eine datenbank erstellen? Großes Problem | PHP Tipps 2004-2 | 1 | 16.12.2004 14:53 | |
| Erstellen spalten in MySQL tabelle | Datenbanken | 7 | 14.11.2004 19:53 | |
| .htaccess Schutz mit MYSQL User DB abgleichen... | PHP Tipps 2004 | 0 | 28.09.2004 13:14 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| sichere verbindung mittels php, htaccess erstellen, sichere mysql verbindung, mysql htaccess erstellen, http://www.php.de/php-tipps-2005/19769-sichere-vebindung-mit-mysql-htaccess-erstellen-vars.html, htaccess mysql erstellen, mysql sichere verbindung, mysql vor hackern schützen, tutorial sichere passwortabfrage php, php mysql sichere verbindung aufbauen, htaccess mysql verbinden, .htaccess und mysql, sichere htaccess, htaccess sichere verbindung, sichere .htaccess, mit php verschlüsselte verbindung herstellen, authmysqldb php, php mysql schützen test, verbindung zu datenbank herstellen sichre, php .htaccess erstellen |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.