 |
| 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 |
03.01.2006, 10:49
|
#1
|
|
TP-Veteran
Registriert seit: Sep 2004
|
Vertriebstruktur - zuordnung von Id's
hallo,
ich habe eine Vertriebstruktur (Baumstruktur) nachgebildet und es wird zu jedem mitarbeiter in der struktur sein vertrag angezeigt und alle verträge von mitarbeitern unter ihm...soweit alles ok. nun hole ich mir die verträge anhand der ID und da ist das problem, man kann in der adresszeile des browsers eine andere ID angeben und bekommt den vertrag zu sehen. Ich kann ja in der DB-Abfrage nicht in einer WHERE-Bedingung nur die ergebnisse abfragen wo z.Bsp.: verträge des angemeldeten benutzers angezeigt werden, da ich ja sonst nicht die verträge bekommen von den Mitarbeitern unter ihm in der struktur
wie kann ich das lösen, das man nicht einfach jeden vertrg sehen kann wenn man im browser die id ändert?
|
|
|
03.01.2006, 10:55
|
#2
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Sowas macht man nicht mit GET-Parametern, das lädt ja zu Manipulation ein.
Der bessere und sichere Weg ist über Sessions.
|
|
|
03.01.2006, 17:26
|
#3
|
|
TP-Veteran
Registriert seit: Sep 2004
|
ja hab das vorher so gar nich bedacht... habe jetzt erstmal eine funktion gemacht, die prüft, ob die angegebene id auch zu den eigenen verträgen oder darunterliegender verträge passt, wenn diese id dort ncht vorkommt, dann wird die seite nicht angezeigt, aber hast schon recht mit sessions wäre das besser.
nur ich lese ja aus der Db die id's aus und änge die an den link, damit ich beim anklicken ne id habe. wenn ic hes über sessions mache. wie bekomme ich da beim anklicken die richtige id, wenn ic hsie nicht hinten anhäng?
Geändert von alexf812 (03.01.2006 um 17:33 Uhr).
|
|
|
03.01.2006, 18:55
|
#4
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
indem Du sie in die Session schreibst:
$_SESSION['vertragsid']=$id;
|
|
|
03.01.2006, 19:24
|
#5
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Eine Session ist zwar sicherer als $_GET-Parameter aber auch manipulierbar.
Da müsste meiner Meinung nach ein Login-System mit Rechteverwaltung drumrumgebaut werden. Nur so würde es wirklich sicher werden.
|
|
|
03.01.2006, 20:22
|
#6
|
|
TP-Veteran
Registriert seit: Sep 2004
|
na ein login system gibt es, aber ich kann ja in er db-abfrage keine where-bedingung benutzen, wo auf den angemeldeten benutzer eingeschränkt wird, dann wäre es ja auch mit get-parametern nicht möglich zu manipulieren, weil die abfrage dann keine ergabnisse bringen würde.
|
|
|
03.01.2006, 20:26
|
#7
|
|
TP-Veteran
Registriert seit: Sep 2004
|
Zitat:
|
Zitat von St@eff.en
indem Du sie in die Session schreibst:
$_SESSION['vertragsid']=$id;
|
aber ich habe ja mehrere verträge die ich per übersicht in kurzform anzeigen lasse und wenn ich auf den link gehe dann kommt die ausführliche ansicht zu dem jeweiligen vertrag. woher weiss ich nun wenn ich auf einen link klicke welcher vertrag gemeint ist? ich habe es bisher so gemacht:
while{
<a href="vertrag.php?id=$row['id']">Link</a>
}
|
|
|
03.01.2006, 21:29
|
#8
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
mehrere Mögliuchkeiten:
1. Auswählen per Form mit POST
2. erstell ein Array in $_SESSION mit allen verfügbaren Verträgen und übergebe den Arrayindex per GET-Parameter.
|
|
|
03.01.2006, 22:28
|
#9
|
|
TP-Veteran
Registriert seit: Sep 2004
|
ok, ich muss das dan nnochma überarbeiten :-)
aber deine 2 möglichkeit ist ja so ähnlich wie ich es jetzt hab... ich habe ein array von den möglichen verträgen und wenn die id, die per get übergeben wird, in dem array ist, dann wird der inhalt angezeigt,ansonsten nicht... is etwas umständlicher aber werde deinen vorschlag auf alle fälle noch mit umsetzen....
danke dir mal wieder für deine schnelle und unkomplizierte hillfe immer wieder
|
|
|
03.01.2006, 22:42
|
#10
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
nichts zu danken, dafür bin ich ja hier
Die Gefahr Deiner Lösung ist halt die Manipulationsmöglichkeit. Nimmst Du den Arrayindex, so kann man höchstens die eigenen Verträge wechseln, niemals aber einen fremden.
Die meisten Lösungen die ich kenne basieren aber auf der POST-Variante, da gibts auch nicht die Möglichkeit von Bookmarks etc, eben nur den vorgeschriebenen Weg.
Geändert von steffenk (03.01.2006 um 22:44 Uhr).
|
|
|
03.01.2006, 22:48
|
#11
|
|
TP-Veteran
Registriert seit: Sep 2004
|
also so wie ich es jetzt habe, da gibt es ein array wo alle vertrags-id's drinstehen und wenn die nicht im array drin is gibts auch nix zu sehen, also vom prinzip her genauso... und auch hier kann ich nur zwischen den eigenen wechseln.
bei der variante mit post stört es mich etwas das man bei aktualisieren des browsers immer das fenster bekommt das erneut die post-daten gesendet werden müssen, oder passiert das mittels speicherung in einer session variablen und dann ner weiterleitung mittels header?
|
|
|
03.01.2006, 22:54
|
#12
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
ja, letzteres ist der beste Weg - das ist dann incl. einer Reloadsperre.
Kann man auch in einer Zeile machen: $_SESSION['POST']=$_POST;
Mit den Vertragsnummern - Du gibst zwar die verfügbaren Nummern vor, aber liest Du nachher nicht den Vertrag anhand der übermittelten Nummer aus ? Und das wäre doch die Sicherheitslücke.
|
|
|
03.01.2006, 23:12
|
#13
|
|
TP-Veteran
Registriert seit: Sep 2004
|
ich habe es jetzt so gemacht:
1. array mit allen mitarbeiter_id ab einem bestimmten punkt in der struktur
2. ich übergeb per get die vertrags_id und hole mir über eine abfrage die mitarbeiter id zum vertrag. nun überprüfe ich ob diese id in dem array vorhanden ist, wenn nicht kann ich davon ausgehen, das manipuliert wurde, denn wenn jemand ne andere vertrags_id in der adresszeile eingibt bekomm ich eine mitarbeiter_id die nicht im array vorhanden ist oder man gibt eine vertrags_id ein, wo man aber ohnehin nur den eigenen vertrag sieht
müsste ja sicher sein
|
|
|
03.01.2006, 23:19
|
#14
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
ja, wenn Du gründlich bist
Aber wie sicher ist es, wenn ich nachher an Deinen Rechner geh und die Url aus dem Verlauf öffne ? dann kann ich fleissig weitermachen.
Daran siehst Du, das es oft nicht nur mit der Überprüfung getan ist, oder Du musst zig Schlösser einbauen.
Da ist doch die Post-Lösung immer noch am sichersten, das wird nirgends gecachet und ist so auch nicht reproduzierbar.
|
|
|
03.01.2006, 23:25
|
#15
|
|
TP-Veteran
Registriert seit: Sep 2004
|
mit dem verlauf haste recht, aber das jemand an nen fremden rechner geht ist zwar nic hauszuschliessen aber nich so wahrscheinlich...sind alles aussendienstmitarbeiter mit eigenem laptop, aber trotz allem werde ich das mal umbauen auf die post variante...is wirklich am sichersten. dann würde es ja (wenn mich das fenster beim aktualisieren des browsers nicht stören würde) auch ganz ohne session gehen, weil du am anfang sagtest mit ner session machen.
was mir noch eingefallen ist, es sollte sich ja jeder immer wieder korrekt abmelden und wenn ich dann an nen fremden rechner gehe und den verlauf öffne, wird das auch nix bringen, weil ich ja immer gegen den angemeldeten user prüfe
Geändert von alexf812 (03.01.2006 um 23:31 Uhr).
|
|
|
|
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 06:23 Uhr.
|
 |