![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Moin ich habe mir mal so ein ganz simples Beispiel einer Passwortabfrage gecodet: Login.htm HTML-Code: <html> <body> <form action="auswetung.php" method="post"> Benutzername: <input type="text" name="name"> Passwort: <input type="password" name="password"> <input type="sumbit" value="OK"> </body> </html> PHP-Code: PHP-Code: PHP-Code: PHP-Code: So, das Ganze ist ja jetzt mehr oder weniger durchdacht, und auf jeden Fall mal dagegen gesichert, dass die geschützte Datei einfach so aufgerufen werden soll. Jetzt ist aber mein Problem: PHP-Dateien, die am Anfang des Namens ein #-Tragen, können ja nur includiert, aber nicht direkt eingesehen werden (Jedenfalls sagt das meint PHP-Buch). So, wenn ich mit dem Browser jetzt aber das Verzeichnis in dem die geschützte Datei liegt aufrufe, und dann (im FF) auf den Namen der geschützten Datei klicke, öffnet er sie anstandslos - unter dem Namen ...%23inhalt.php! Jetzt wüsste ich gerne, was man tun kann... Man könnte doch z.B. das öffnen der Datei ganz unterbinden, oder einen Code schreiben, der das Anzeigen der Inhalte bei nichtincludieren in die richtige Datei blockiert, oder irgendwie verhindern, dass das Verzeichnis eingesehen werden kann. Meine Testumgebung ist die neueste Xampp-Version. Gruß Bookworm //edit: P.S. Tippfehler im Code bitte ich zu entschuldigen. Ich habe das hier nur aus dem Kopf nachgecodet und nicht getestet. Original funktioniert bis auf das Angesprochene einwandfrei.
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
| | Nach oben #2 |
| Johannes Schlichenmaier Registriert seit: 26.08.2005 Ort: Mannheim
Beiträge: 403
|
Wie wärs, wenn du die zu schützenden Dateien in einen Ordner mit den Rechten 660 packst? Der Besitzer des Ordners muss natürlich der apache-user sein (das kannst du erreichen, indem du den ordner mit einem php-script erstellst) Dann kannst du die Dateien zwar includieren, aber von außen nicht aufrufen...
__________________ In the beginning was the word and the word was content-type: plain/text heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int |
| |
| | Nach oben #3 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Ahja... Moment mal! muss ich dann alle Dateien includieren? Heißt das, ich muss für jede Datei nochmal eine anlegen, jeweils mit dem Inhalt include("blabla.php"); oder wie? Ist ja voll mistig... Gruß BOokworm
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
| | Nach oben #4 |
| Johannes Schlichenmaier Registriert seit: 26.08.2005 Ort: Mannheim
Beiträge: 403
|
Ich versteh jetzt nich so ganz was du willst. Einerseits machst du für eine einzelne Datei "#inhalt.php" eine Überpfüng von Login und andererseits willst du das nicht für alle Dateien machen? Entscheid dich mal Machs am besten anders: Du testest für jede Datei, ob der besucher schon eingeloggt ist (für dein Beispiel reicht jetzt mal ein Cookie mit Namen "login" und dem Wert "true", oder irgendwas) und wenn das Cookie existiert, dann zeigst du die Datei an, und wenn nicht, dann zeigst du ein Login-Form an, das die Daten an auswertung.php weiterleitet. Natürlich ist das ziemlich unsicher für den allgemeinen Gebrauch, denn es ist ziemlich leicht, ein solches Cookie anzuwenden. Wenn du mein Beispiel verstanden und umgesetzt hast, dann kannst du deinen Login-Check noch mal verbessern; z.B. durch den Einsatz von Sessions, o.ä. Grüße, Jojo
__________________ In the beginning was the word and the word was content-type: plain/text heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int |
| |
| | Nach oben #5 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.203
|
nur mal nebenbei, versuch mla bei der entwicklung deiner scripte error_reporting(E_ALL); immer gaaanz oben am anfang deiner scripte zu benutzen. z.b. PHP-Code: du überprüsst ob $login gesetzt ist, und das ist immer gesetzt weil du es oben setzt, ob es NULL oder sonstwas enthält ist dabei egal. mfg robo47 |
| |
| | Nach oben #6 |
| Johannes Schlichenmaier Registriert seit: 26.08.2005 Ort: Mannheim
Beiträge: 403
|
@Bookworm was robo dir sagen möchte ist eigentlich, dass du nciht davon ausgehen kannst, dass das $_COOKIE-Array überhaupt den Index "login" besitzt. Du könntest das ganze dann so lösen: PHP-Code: PHP-Code: Grüße, Jojo
__________________ In the beginning was the word and the word was content-type: plain/text heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int |
| |
| | Nach oben #7 |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.365
|
mal ne Frage, warum willst du überhaupt deinen php-files Namen geben, die scheinbar nur Probleme machen? btw: ggf. für dich interessant
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! Geändert von Jann Hendrik (26.05.2007 um 12:16 Uhr) |
| |
| | Nach oben #8 | ||
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
| Zitat:
Ich könnte doch auch einfach die Login-Datei in "index.php" umbennen, dann wird die automatisch aufgerufen, wenn man nur das Verzeichnis ansteuert. //edit: Zitat:
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! | ||
| |
| | Nach oben #9 | |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.365
| Zitat:
Daher die Frage, warum du dich für derartige Dateinamen entscheiden willst? btw: das Tutorial mag auf den ersten Blick wirr und komplex erscheinen. Es ist aber allemal wert es durchzurarbeiten!
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! | |
| |
| | Nach oben #10 | |
| Dejan Spasic Registriert seit: 05.01.2006 Ort: Düsseldorf
Beiträge: 169
| Zitat:
Code: #Nicht getestet
<FilesMatch "\^#([^\.])+\.(php|inc)$">
order deny,allow
deny from all
</FilesMatch>
http://httpd.apache.org/docs/2.0/mod...ess.html#order Eine abzusichernde Datei mit eine # als Prefix zu markieren, finde ich Persönlich ebenfalls unpassend. Vielleicht wären zwei Unterstriche, oder der Gleichen, besser geeignet. Den Cookie auf seine existens abzufragen ist ebenfalls sehr unsicher, da jeder so ein Cookie selbst Lokal erstellen kann. Da man den Ihnalt des Cookies ebenfalls leicht Lokal manipulieren kann, würde ich daher empfehlen den Inhalt/Wert des Cookies, z.B. durch Blowfish-Algorithmus, zu Verschlüsseln/Entschlüsseln und diese dann abfragen bzw. auf den Client speichern. http://de.php.net/manual/de/ref.mcrypt.php
__________________ Da wir alle in einem Boot sitzen, ist es gut, dass wir nicht alle auf einer Seite stehen... (mir unbekannt) Geändert von dejan_spasic (08.01.2006 um 17:02 Uhr) | |
| |
| | Nach oben #11 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Leute? Mein Buch, mit dem ich PHP lernen will, sagt, dass man Dateien, die man so schützen will, dass man sie nicht direkt aufrufen kann, nur mit einer Raute am Anfang speichern muss. Deswegen habe ich eine Raute an den Anfang gesetzt, damit man sie nicht normal angucken kann. Steht im Buch... Ich dachte, was da steht, stimmt, deswegen...
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
| | Nach oben #12 |
| Johannes Schlichenmaier Registriert seit: 26.08.2005 Ort: Mannheim
Beiträge: 403
|
Schlechtes Buch Was'n das für eins? //edit: bzw. Setzt dein Autor eventuell ene bestimmte httpd.conf vorraus?
__________________ In the beginning was the word and the word was content-type: plain/text heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int |
| |
| | Nach oben #13 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Das da: http://www.amazon.de/exec/obidos/ASI...173780-0636536 Hatte 1a Rezensionen, stelle aber mittlerweile selber fest, das es nicht so toll ist: Man lernt im dritten Kapitel eine Umfrage zu erstellen, die sämtliche Daten noch in eine Textdatei schreibt, anstatt das man mal richtig MySQL lernen würde... Das kann ich immer noch nedd, weil man Computer abstürzt, wenn ich versuche PHPmyAdmin aufzurufen... *man, ich würd das echt gerne mal lernen...* LG Booki
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
| | Nach oben #14 |
| Johannes Schlichenmaier Registriert seit: 26.08.2005 Ort: Mannheim
Beiträge: 403
|
Das is schlecht, wenn dein PC abstürzt, wenn du PHPMyAdmin aufrufst. Hast du dir deinen XAMPP selbst gebastelt? Ich würd dich einfach mal in das Tutorial-Forum schicken. Da lernste sowas...
__________________ In the beginning was the word and the word was content-type: plain/text heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int |
| |
| | Nach oben #15 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Ich habe Xampp runtergeladen, auf CD gebrannt und installiert. So, jetzt rufe ich http://localhost/phpmyadmin auf, dann fängt der comp an u laden und läd und läd und macht sonst garnix mehr, bis firefox irgendwann von alleine abbricht...
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
| | Nach oben #16 |
| Dejan Spasic Registriert seit: 05.01.2006 Ort: Düsseldorf
Beiträge: 169
|
Probier es erstmal mit der Seite http://tut.php-q.net/ |
| |
| | Nach oben #18 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Die Seite oben kenne ich schon und ich komme mit ihr nedd klar... Außerdem habe ich an dem Computer an dem ich die Homepage entwickle keinen Internetzugang. Ja, Apache läuft. MySQL weiß ich nicht, konnte ich nicht ausprobieren weil ich keinen Plan davon habe...
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
| | Nach oben #19 | |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.512
| Zitat:
Grüße Ben. | |
| |
| | Nach oben #20 |
| n00b -.- Registriert seit: 10.11.2005
Beiträge: 318
|
Na, also beim Starten von Xampp kommt doch des DOS-Fenster. Und da steht dann unter anderem drinnen: Apache Server running.... MySQL running... und so weiter und wenn ichs beeende kommt apache killed... mysql killed... ich denke mal es läuft schon....
__________________ Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen! |
| |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |