 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
21.11.2002, 10:58
|
#1
|
|
TP-Senior
Registriert seit: Aug 2002
|
Sicherheitsproblem bei Variablenübergabe im Loginbereich
Guten Morgen zusammen,
ich bastel gerade an einer Seite herum, in der ich in einem Memberbereich verschiedene Daten editieren muß. Wenn z.B. die Detailansicht eines Datensatzes erscheinen soll, dann übergebe ich an eine Url die ID des Datensatzes ( detail.php?detailid=5 ).
Nun stellt sich mir eben die Frage, wie ich es verhindern kann, daß ein User auf gut Glück anstatt der 5 z.B. die 10 eingibt und so Zugriff auf für Ihn fremde Daten bekommt.
Habt Ihr da einen praktischen Lösungsansatz ??
Danke schonmal
|
|
|
21.11.2002, 11:02
|
#2
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
irgendwo muss doch in deinem Programm ein Zusammenhang zwischen User und Datensatzid bestehen, oder? Darüber kannst du doch "absichern".
|
|
|
21.11.2002, 11:04
|
#3
|
|
TP-Senior
Registriert seit: Aug 2002
|
Na in gewiesser Weise schon, bzw. ich müßte die Werte (z.B. id des User ) jeweils bei den entsprechenden Datensätzen mit abspeichern. Das erschien mir eben sehr aufwendig. Gibts da nicht was anderes. ? Ich hatte mal was mit der SessionID gelesen.Allerdings hab ich das nicht ganz kapiert 
|
|
|
21.11.2002, 11:10
|
#4
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
ähm... irgendwie versteh ich das nicht... Woher bekommen denn die User diese Detailid? Sind die irgendwo auf einer Seite? Oder wie jetzt?
Um die Sache sicher zu machen MUSS eine Art Verknüpfung zwischen den Daten bestehen, sonst weisst Du oder das Programm ja garnicht, wer welche Details sehen darf/kann.
Mit sessions ansich hat das nichts zu tun, das wäre nur dafür da, den User zu identifizieren. Oder du verpasst ihm beim session-Start (nach dem Login...wenn eins vorhanden ist) seine Userid. Damit mit der checkst du dann immer gegen.
Gruss Jan
|
|
|
21.11.2002, 11:10
|
#5
|
|
TP-Moderator
Registriert seit: Nov 2002
Ort: Hamburg
|
du musst überprüfen, ob der user auch die rechte hat, auf diesen datensatz zuzugreifen
|
|
|
21.11.2002, 11:14
|
#6
|
|
TP-Senior
Registriert seit: Aug 2002
|
Jooo, daß ist mir schon klar  Aber wiegesagt fehlt mir da einfach noch ein praktischer Gedankenanstoss in die richtige Richtung. Ich verteile eben im Moment in meiner Usertabelle den Status Admin oder User. Somit kann ich schon mal verhindern, das ein User in einer Adminseite rumfroschen kann. Aber wie ich eben das innerhalb der Usergruppe sinnvoll handlen kann, ist mir noch nicht ganz klar.
|
|
|
21.11.2002, 11:21
|
#7
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Wenn jeder User nur seine eigenen Sachen bearbeiten kann, dann verbindest du die Die "Artikel" (ich nenn sie jetzt einfach mal so) mit der Userid des Users... so wie du es am Anfang geschrieben hattest.
Wenn du bestimmten Benutzern einen Zugriff auf bestimmte Artikel geben willst musst du mit einer weiteren Tabelle arbeiten, inder die Rechte verteilt sind. Da steht dann z.B. drin
Userid 15 darf Artikelid 82 bearbeiten
Userid 12 darf Artikelid 43 bearbeiten ...usw
|
|
|
21.11.2002, 11:26
|
#8
|
|
TP-Senior
Registriert seit: Aug 2002
|
Hmm, ich seh schon, da hängt für mich noch richtig viel Denkarbeit dahinter. Schade, ich dachte da gibts ne einfachere Lösung  Aber trotzdem mal vielen Dank für die Bemühungen!
|
|
|
21.11.2002, 13:10
|
#9
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
greif doch einfach den ansatz von jan auf:
folgende voraussetzung brauchst du:
- user muss sich einloggen -> so bekommst du seine ID
- diese speicherst in einer session
- die tabelle mit den Artikeln erweiterst du um ein feld -> userID
- beim eintragen eines neuen Artikel einfach im insert die userid mit dem session-wert füllen.
- abfrage passiert dann ebenfalls mittels der session:
select * from tabelle where detailid=$_GET[id] and userID=$_SESSION[userID]
ferdig.
bis auf:
wenn der admin alles sehen können muss, dann musst du dir noch überlegen, wie du den adminstatus rüberbringst und dementsprechend die selectabfrage auf die artikeltabelle öffnen
if($_SESSION[admin])
select * from tabelle where detailid=$_GET[id]
wichtig dabei ist halt, dass du beim login die userdaten irgendwo in die session schiesst. das sollte aber kein problem darstellen.
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
21.11.2002, 13:14
|
#10
|
|
TP-Senior
Registriert seit: Aug 2002
|
Hi,
ok, jetzt kann ich mir das schon ganz gut vorstellen. Nur das mit dem "Reinschießen" der UserID in die Session ist mir noch nicht ganz klar  Im Moment erfasse ich nur den Benutzername folgendermaßen session_register('benutzername');
Muss ich das dann mit der Userid auch so machen ? Oder kann ich auch den Benutzername dazu verwenden. Dieser ist auch eindeutig und wird nur einmal vergeben.
|
|
|
21.11.2002, 16:15
|
#11
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
in der session sollte
- ein eindeutiger Identifier vom user
- der status (admin/user)
enthalten sein.
welchen schlüssel du für den user vergibst, bleibt dir über. wichtig ist nur, dass diese id kein zweites mal vorkommen kann. deshalb nimmt man für solche fälle einen autoincrement, dann ist der user auf alle fälle eindeutig und kann z.b. im falle einer heirat auch noch weiterverwendet werden obwohl sich der username geändert hat.
wenn du aber von dir aus sicherstellen kannst, dass der user immer und ewig eindeutig bleibt und auch den usernamen nicht änderbar ist, dann kannst du natürlich auch den usernamen nehmen.
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
21.11.2002, 16:20
|
#12
|
|
TP-Senior
Registriert seit: Aug 2002
|
Hallo,
ok ich glaub soweit hab ichs. Ich nehme den Benutzername dafür, der ist eindeutig. Hat aber nix mit Vorname und Nachname des Users zu tun.
Ok, kann leider erst Montag dran weiterarbeiten. Bei Bedarf meld ich mich nochmal
THAnX A LOT
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 20:23 Uhr.
|
 |