Sicherheit

Hi @ all

Ich kann ja mit PHP ein Log - Skript schreiben womit ich eigentlich sicher
sein kann das nur der Authentifizierte Nutzer die danach folgenden Daten nutzen kann.

So mein Problem: Wenn jetzt einer den Pfad kennt, dann kann er ja ohne sich zu Authentifizieren einloggen wie kann ich das unterdrücken oder wie muss er sich Authentifizieren wenn er auf diese Seite will.

Muss ich da in jedes Skript was in den Ordner liegt ein check integrieren oder kann ich das anders unterdrücken?

Danke.

MfG Tobias

eine recht knifflige Frage, über die ich auch
schon öfter nachgedacht habe…
Die Frage ist jetzt um was für Daten es sich dabei handelt.
Falls es sich um includierbare Dateien handelt, so könnte Dich ein Unterverzeichnis, auf dem ein file .htaccess liegt schützen
(Inhalt z.B.:

Order Allow,Deny
Deny from All
)
so hat es zumindest auf meinem lokalen Rechner funktioniert. Kritischer wird es wenn Du die Daten zum download anbieten willst. Dafür habe ich im Moment nur eine Lösung im Kopf, die die Daten temporär verschiebt (nach bedarfsanweisung) und nach einer weile wieder löscht…
Das Problem dabei ist dann allerdings dass es beim download probleme geben wird, wenn Du die Daten löschst bevor sie beim Client angekommen sind… Deswegen müsstest Du je nach Dateigrösse Pufferzeiten einräumen. Das löschen könnte dann über cronjobs und angepasste php-scripte geschehen oder eben dass der nächste User der die Seite aufruft immer zuerst Dein reinigungsscript anstösst…
Hilft Dir das weiter?

achja nochwas vergessen…
mittels htaccess könntest Du die Daten generell schützen. Ich habe im Moment nichts dergleichen gefunden aber unter Umständen kannst Du Dich über php so authorisieren, dass der User davon nichts bemerkt, also in etwa so dass Deine Seite die passenden userdaten für den geschützten Bereich übermittelt, falls von Deiner Seite zugegriffen wird. Ob das geht weiss ich leider nicht, zumindest habe ich es auf die Schnelle nicht gefunden.

Allerdings fällt mir im Moment gerade noch eine weitere möglichkeit ein :wink:
Nämlich dass Du Deine Daten nicht versteckst, aber sie regelmässig umbenennst…
So könnte ein script so aussehen (skizziert)…
funktion()
{
if (timestamp>lastdownloaded)
{
if (rename(lastknownnameindatabase,newname)) if (mysql_query(update set newname=newname where name=lastknownnameindatabase)
else rename(newname,lastknownnameindatabase) //update nicht möglich
}
}
wäre natürlich je nach Datenvolumen eine relativ unschöne Sache, aber sollte dennoch funktionieren :wink:

knifflige Frage
Ich habe das schon mal mit htaccess ausprobiert aber nicht wirklich hinbekommen denn danach konnte keiner mehr von außen darauf zugreifen auch mit Authentifizierung.

Wie wäre denn eine richtige conf der htaccess ??

wie gesagt
der Inhalt meiner htaccess-Datei war

Order Allow,Deny
Deny from All


damit konnte ich eine test.txt aus dem Verzeichnis noch includieren, nicht aber direkt darauf zugreifen.
Du musst halt nur sehen dass die Datei dann .htaccess heisst und in Deinem Datenverzeichnis liegt… Aber wie auch schon gesagt: Die Lösung wird nicht funktionieren wenn es nicht includierbare Daten sind um die es sich handelt…
Was willst Du denn für Daten anbieten?

Daten
Ich möchte meinen Rechner ins Netz stellen mit login - skript und nur für angemeldete User sollen auf diese Daten zugriff haben (so was wie eine 2 Page nur im hintergrund) und da sollen dann daten (Bilder, selbst erstellte mp3, .exe dateien usw.) zum Download und angucken bereit gestellt werden.

Dann nimm htaccess
Eine genauere Beschreibung findest Du z.B. hier:
http://selfhtml.teamone.de/diverses/htaccess.htm

in Kurzform. In der .htaccess Datei steht lediglich der Text über dem loginbereich. Diese Loginfenster findest Du oftmals im Internet auf Mitgliederbereichen, wenn Dateien gesichert werden müssen.
In dieser Datei findet sich aber auch der Link zur Datei wo die authorisierten Benutzernamen abgelegt sind. Die Daten können dabei verschlüsselt sein, müssen es aber nicht zwangsläufig (AuthType).
Du kannst die Verschlüsselung von Hand vornehmen (ein online tool ist auf der geposteten Seite), Du kannst dafür aber auch das Tool, das der Apache idR mitliefern sollte. Dazu einfach in das Verzeichnis des Webservers gehen und dann im Unterverzeichnis bin nach htpasswd.exe ausschau halten. Für den ersten User sollte es dann ein Befehl wie
htpasswd -c .htpasswd username
sein. Nach dem Passwort wird dann noch gefragt.
Wenn Du also keine logging-Funktion benötigst ist das der einfachste weg. Alternativ könntest Du einen FTP-Server installieren. Für meine Zwecke war Blackmoon FTP das passendste Programm… Basis der o.g. infos ist Windows (XP), aber auch unter anderen Betriebssystemen sollte die vorgehensweise zumindest sehr ähnlich sein.

lass mich noch etwas ergänzen.
das file mit Deinen usernames sollte im idealfall nicht aus dem Internet erreichbar sein. Die platzierung im gleichen Ordner wie die .htaccess datei ist ratsam, falls das nicht möglich ist.
Die .htaccess Datei bietet dabei das „Feature“ dass alle in der Filehierarchie darunterliegenden Ordner mit geschützt werden. Solltest Du also eine .htaccess Datei auf c:/ befinden und Dein htdocs-root ist in einem dementsprechenden unterverzeichnis, dann wird Dein Webserver für alle Aufrufe den Zugriff verweigern.

Ich probiers
Jo Dank dir ich werds mal so Probieren

Danke.

MfG Tobias

Hallo,

also ich weiß nicht, ob das der ideale Weg ist, aber ich mach das folgendermaßen:

  1. Der User muss sich irgendwo erstmal anmelden.
  2. Durch die Anmeldung wird eine Session erstellt. In dieser Session wird dann eine Variable gespeichert, die durch eine erfolgreiche Anmeldung auf true gesetzt wird.
  3. Alle meine Seiten auf meiner HP sind PHP-Seiten.
  4. Jede Seite überprüft beim Aufruf, ob die Session-Variable auf true steht. Wenn ja, wird die Seite geladen, wenn nein, wird auf die Logon-Seite verwiesen.

Ich befürchte aber, daß du dadurch nur PHP-Dateien schützen kannst, keine HTML-Seiten oder andere Dateien.

Pasqual

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

so hat es zumindest auf meinem lokalen Rechner funktioniert.
Kritischer wird es wenn Du die Daten zum download anbieten
willst. Dafür habe ich im Moment nur eine Lösung im Kopf, die
die Daten temporär verschiebt (nach bedarfsanweisung) und nach
einer weile wieder löscht…
Das Problem dabei ist dann allerdings dass es beim download
probleme geben wird, wenn Du die Daten löschst bevor sie beim
Client angekommen sind… Deswegen müsstest Du je nach
Dateigrösse Pufferzeiten einräumen. Das löschen könnte dann
über cronjobs und angepasste php-scripte geschehen oder eben
dass der nächste User der die Seite aufruft immer zuerst Dein
reinigungsscript anstösst…
Hilft Dir das weiter?

Meinst du nicht dads ist ein wenig umständlich ? :smile:
Standard Dateidownload per PHP hier: http://www.dclp-faq.de/q/q-datei-download.html

Hat denn keiner von euch mal was von Google gehört ? :smile:

mir war halt langweilig *duck*
Dein Vorschlag klingt gut, aber man muss ihn erst mal kennen um ihn vorschlagen zu können :wink: