seite öffnen nur wenn referrer stimmt

dewey

Gewürzluiken
Registriert
01.05.06
Beiträge
5.721
hallo,

ich habe eine kleine seite so übungsweise gebastelt wo man sich über ein formular.html anmeldet und dieses dann mittels "post" übertragen wird. die output.php übernimmt dann das eingegebene kennwort bzw. benutzernamen und leitet falls diese stimmen auf www.beispiel.de/geheimedaten um, wenn die eingegebenen daten nicht stimmen wird auf www.beispiel.de/error umgeleitet. nun würde ich es gern so machen, dass man nur auf die /geheimdaten zu greifen kann wenn man die richtigen logindaten eingegeben hat.

wie kann ich das am besten lösen. ich habe schon was von der .htaccess datei gelesen aber komme damit nicht ganz klar bzw. verstehe nicht wie das gemeint ist. ich habe auch keine datenbank sondern das pw nur im klartext im if befehl eingetragen.

ich hätte mir das so vorgestellt, dass ich nach erfolgreichen login auf eine seite umleite und von dieser dann sofort wieder auf die geheimdaten und diese nur angezeigt werden, wenn man von der zwischenseite kommt. ist das halbwegs verständlich? :D bzw gibts da ne elegantere lösung

lg, dewey
 

stonie10

Welscher Taubenapfel
Registriert
31.10.05
Beiträge
760
Baue deine "geheimedaten"-Seite direkt in die output.php ein. In etwa so:
<?php
if ($_POST['User']="Max" && $_POST['PW']="geheim") {
?>
der html-code deiner geheimen seite

<?
} else {
?>
deine fehlerseite
<?php
}
?>

Übernehme keine Gewähr für Syntaxfehler ;)
 

dewey

Gewürzluiken
Registriert
01.05.06
Beiträge
5.721
die geheimeseite ist aber ein apachte ftp server. dh es wird auf eine url verwiesen wo dann dateien liegen...dh das kann ich ja dann nicht einbauen im html code schätz ich oder?
 

stonie10

Welscher Taubenapfel
Registriert
31.10.05
Beiträge
760
hm, du könntest das über einen <iframe> machen:
<iframe src="http://deinegeheimeseite.de" height="200">
Das geht aber nur, wenn du eine HTTP-Seite einbinden willst (Apache). Einen Apache-FTP-Server gibt es nicht ;) Vielleicht meinst du einfach eine Auflistung von Dateien eines FTP-Servers? Wichtig ist eigentlich nur, dass du ein http oben stehen hast, dann müsste es mit dieser Methode funktionieren :)
 

dewey

Gewürzluiken
Registriert
01.05.06
Beiträge
5.721
hm, du könntest das über einen <iframe> machen:
<iframe src="http://deinegeheimeseite.de" height="200">
Das geht aber nur, wenn du eine HTTP-Seite einbinden willst (Apache). Einen Apache-FTP-Server gibt es nicht ;) Vielleicht meinst du einfach eine Auflistung von Dateien eines FTP-Servers? Wichtig ist eigentlich nur, dass du ein http oben stehen hast, dann müsste es mit dieser Methode funktionieren :)
jop genau diese auflistung mein ich;) wohin hau ich denn den iframe? hab noch nie mit iframes gearbeitet:-[
 

stonie10

Welscher Taubenapfel
Registriert
31.10.05
Beiträge
760
Müsste so funktionieren:
Code:
<?php
if ($_POST['User']="Max" && $_POST['PW']="geheim") {
?>
[B]<iframe src="http://deinserver.de">[/B]
<?
} else {
?>
deine fehlerseite
<?php
}
?>
 
  • Like
Reaktionen: dewey

dewey

Gewürzluiken
Registriert
01.05.06
Beiträge
5.721
sry für doppelpost aber wenn ich jetzt das so mache mit height 100% und widh 100% dann sieht man ja die links trozdem noch wenn man über einen link auf der apache seite fährt :( bzw. man kann die seite ja dann betreten wenn man diesen link weis. ich würds halt gerne so machen das man nur auf diese seite kommt wenn man von einer bestimmten login erfolgreich seite kommt oder so.

edit: noch ne idee. ich gebe im if befehl wenn das pw und der benutzername stimmt eine variable $session mit und die apache seite überprüft dann ob diese variable vorhanden ist. wie könnte man das machen? eventuell mit so einer htaccess datei?
 

stonie10

Welscher Taubenapfel
Registriert
31.10.05
Beiträge
760
Öhm, das wird dir aber alles nicht viel bringen - die Links wirst du unmöglich komplett verstecken können; jedenfalls wäre mir keine Möglichkeit bekannt, wie das ginge. Es gibt bestimmt irgendein JS-Codestück, mit dem man den Link aus der Statusleiste und aus dem Tooltip, der beim Drüberfahren erscheint, entfernen kann, aber dann könnte man immer noch den Link im Quelltext erkennen können.
Ich glaube auch kaum, dass sich das über eine .htaccess realisieren lässt. Dein Browser muss an den Zielserver ja schließlich ein Kommando schicken "ich will jetzt zur Seite x", und ohne einen Ziellink, der deinem Browser bekannt sein muss, wird das schwierig werden ;)
Vielleicht ist da jetzt auch ein Denkfehler meinerseits drin, ich glaube aber nicht, dass das möglich ist, so wie du das beschrieben hast.

Muss ich also leider passen, sorry :(

P.S.: Trotzdem Danke fürs Karma ;)
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
Na, du könntest

.htaccess
und
.htpasswd

benutzen um das Verzeichnis zu schützen in der sich die Auflistung der Dateien befindet.
Beim Aufruf der Url muss dann ein Benutzername und ein Kennwort eingegeben werden. Du kannst dabei mehr als einen Benutzer anlegen.

Der hier vorgeschlagene Lösungsweg mit einem iframe ist mehr als schwachsinnig. Jeder der die Seite kennt die im iframe dargestellt wird kann uneingeschränkt darauf zugreifen. Es findet dann ja kein Check mehr statt ob der Benutzer die erforderlichen Berechtigungen hat.


Edith sagt:
Beide Dateien kannst du dir z.B. mit http://www.coolix.com/htaccess-htpasswd-generator.php generieren lassen.
 

dewey

Gewürzluiken
Registriert
01.05.06
Beiträge
5.721
Na, du könntest

.htaccess
und
.htpasswd

benutzen um das Verzeichnis zu schützen in der sich die Auflistung der Dateien befindet.
Beim Aufruf der Url muss dann ein Benutzername und ein Kennwort eingegeben werden. Du kannst dabei mehr als einen Benutzer anlegen.

Der hier vorgeschlagene Lösungsweg mit einem iframe ist mehr als schwachsinnig. Jeder der die Seite kennt die im iframe dargestellt wird kann uneingeschränkt darauf zugreifen. Es findet dann ja kein Check mehr statt ob der Benutzer die erforderlichen Berechtigungen hat.
dann muss ich das mal probieren mit den .htaccess nur habe ich das eben nicht ganz verstanden wie man diese dateien braut.o_O
 

Peitzi

Blutapfel
Registriert
07.08.07
Beiträge
2.595
Ich habe Loginbereiche bisher immer mit ner Datenbank und Sessions gemacht. An sich eine relativ sichere Angelegenheit, wenn auch mit recht viel Aufwand.

Wie schauts denn da mit .htaccess aus? Der Aufwand ist ja extrem gering, aber wie stehts mit der Sicherheit?
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
Mit deiner Methode sicherst du ja auch nur das Frontend. Mit .htpasswd ist das nicht anders, es ist nur nicht ganz so kompliziert aber auch nicht ganz so flexibel. :)

Sobald jemand auf den Server zugreifen kann hast du verloren, aber das ist ja bei einer Speicherung der Daten in einer Datenbank auch nicht anders.
 

Peitzi

Blutapfel
Registriert
07.08.07
Beiträge
2.595
Hab grad mal ein bisschen im Netz gesurft und nicht wenige Leute behaupten, ein Login mit .htaccess sei nicht sonderlich sicher.

Ich denke ich bleibe bei meiner Datenbanklösung (auch wenn sie für das aktuelle Projekt noch nicht richtig funktioniert :mad:), nicht zuletzt, weil ich .htaccess nicht ans laufen bekommen habe ;).
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
Hast du noch einen Link parat? Mich würden mal die Argumente interessieren. :)
 

Peitzi

Blutapfel
Registriert
07.08.07
Beiträge
2.595
Hmpf... hätteste mal heute Nachmittag gefragt, jetzt sindse natürlich alle wieder weg.

Es ging aber um das Passwort, welches sich wohl einfach abgreifen ließe. Wie ist mir zwar unklar (zumal es ja ohnehin MD5 verschlüsselt ist), aber darauf wurde dort auch nicht genauer eingegangen.

Brute-Force wäre sicher denkbar, lässt sich aber aber unterbinden.

Lange Rede, garkein Sinn, ich hab keine Ahnung warum es unsicher sein soll, vielleicht wollten sich da auch nur ein paar Leute wichtig machen.
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
Lange Rede, garkein Sinn, ich hab keine Ahnung warum es unsicher sein soll, vielleicht wollten sich da auch nur ein paar Leute wichtig machen.


Sicherheit ist ein wichtiges Thema. Aber Daten die in Sicherheit sein sollten gehören eh nicht auf einen Webserver. :)

dewey: Hat es geklappt?