mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 10:38 Benutzername: Passwort: Auto-Login

Thema: Navigationskonzept für Web-Anwendung vom 04.03.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Allgemeines - Nonprint -> Navigationskonzept für Web-Anwendung
Seite: 1, 2  Weiter
Autor Nachricht
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 46
Geschlecht: Männlich
Verfasst Di 04.03.2008 14:54
Titel

Navigationskonzept für Web-Anwendung

Antworten mit Zitat Zum Seitenanfang

Hi

ich sitz gerade an ner kleinen Anwendung mit ner MySQl dahinter. Dabei werden nach erfolghreichem login links in einer Liste die Projekte des Users angezeigt und auf der rechten Seite befindet sich ein menü, welche Aktionen man auf diesen Projekten durchführen kann. Einer Aktion muss ich also sagen, was zu tun ist und auf welchem Projekt. Wie bring ich beide Sachen möglichst sicher zusammen? Projekt-ID in ne Session-variable schreiben und beim Aktions-Aufruf auf diese Session-Var zugreifen? Dann würde ich nach dem Login einfach das erste projekt nehmen und das default setzen. Oder ist das alles totaler quatsch?

Ich versuche übrigens, das ganze möglichst nach dem FuseBox-Modell aufzubauen.

Würde mich freuen, wenn da jemand ne Idee hat. Gerne auch was ganz anderes...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Di 04.03.2008 15:25
Titel

Antworten mit Zitat Zum Seitenanfang

willst du mit der session grundsätzlich vermeiden, dass beim klick auf eine aktion eine verifizierung mit db-abfrage stattfindet? das, denke ich mal, ist eine entscheidende geschichte für die vorgehensweise...

edit: und gleich nächste frage. gibt es also einen festen katalog an möglichen aktionen?


Zuletzt bearbeitet von pixelpapst303 am Di 04.03.2008 15:26, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 46
Geschlecht: Männlich
Verfasst Di 04.03.2008 15:38
Titel

Antworten mit Zitat Zum Seitenanfang

Ja, es gibt einen festen Katalog an Aktionen

ichhab nochmal drüber nachgedacht. ich muss ja verhindern, dass jemand mit böser absicht, sich über Manipulation eines Aufrufes ne fremde ID in die eigene Session schreibt und dann Aktionen darauf ausführt. ich dachte also, ich ruf mit der Aktion nur a la FuseBox ne Funktion auf, die an hand des übergebenen Namens und der ID des Users herausfindet, ob das überhaupt der Besitzer ist und wenn ja, die Projekt-ID in die session schreibt. Die Aktionen selbst suchen sich dann die Projekt-ID aus der Session und eigentlich brauch ich die dann nicht mehr überprüfen, weil ich ja schon das schreiben in die Session abgesichert hab. Oder überseh ich da gerade irgendeine Hacker-Schweinerei?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 04.03.2008 15:43
Titel

Antworten mit Zitat Zum Seitenanfang

Irgendwann wirst du die info, welche projekt-(id) denn nun gewählt ist, auf jeden Fall zum Server senden müssen. D.h. alleine du brauchst das Aktionsattribut und die Projekt-Id (bspw. "index.php?action=projektDetail&pId=1"). Da spricht auch nix dagegen. Ab diesem Zeitpunkt kannst du das Projekt auch gerne in ner Session speichern, warum auch nicht. Dann kannst du CRUD-Operationen (action=delete/edit/retrieve) durchaus auch ohne die pId vornehmen.

Aber: Was passiert, wenn der User in mehreren Browsertabs arbeitet? Das kann dann schonmal zu unvorhergesehenen Ergebnissen führen.

Ne Faustregel ist bei solchen Sachen: Wenn du schon nicht auf eine verschlüsselte Leitung zurückgreifen musst, würde ich mich auf den Login konzentrieren. Ein guter Weg: Userdaten nicht im Klartext übertragen! (Also bspw. ein md5-Javascript saugen.) Zusätzlich noch das verschlüsselte Passwort beim Login mit ner Random-Challenge versehen, damit auch der Hash nicht im "Klartext" übertragen wird. Vorgehensweise. Challenge generieren, in Session ablegen. Beim Login clientseitig aus den Usereingaben bzw. nur ausm Passwort (sorry) + challenge nen hash generieren. Nach dem Absenden diesen Hash mit einem Hash aus PW + challenge aus der Datenbank vergleichen.

Zusätzlich: Niemals die SessionId mit übertragen, sondern ausschließlich mit cookies arbeiten.


Zuletzt bearbeitet von bacon am Di 04.03.2008 15:46, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 46
Geschlecht: Männlich
Verfasst Di 04.03.2008 15:52
Titel

Antworten mit Zitat Zum Seitenanfang

bacon hat geschrieben:
Ne Faustregel ist bei solchen Sachen: Wenn du schon nicht auf eine verschlüsselte Leitung zurückgreifen musst, würde ich mich auf den Login konzentrieren. Ein guter Weg: Userdaten nicht im Klartext übertragen! (Also bspw. ein md5-Javascript saugen.) Zusätzlich noch das verschlüsselte Passwort beim Login mit ner Random-Challenge versehen, damit auch der Hash nicht im "Klartext" übertragen wird. Vorgehensweise. Challenge generieren, in Session ablegen. Beim Login clientseitig aus den Usereingaben bzw. nur ausm Passwort (sorry) + challenge nen hash generieren. Nach dem Absenden diesen Hash mit einem Hash aus PW + challenge aus der Datenbank vergleichen.

Zusätzlich: Niemals die SessionId mit übertragen, sondern ausschließlich mit cookies arbeiten.


Ey Alter, erklär dat mal für Normalsterbliche!

Was ich verstanden habe ist, dass ich den login md5 absichern sollte - hatte ich eh vor. was micht stutzig macht ist der begriff md5-javascript. Ich schreib alles in PHP5. Und was zur hölle ist ne Random-challenge?

Warum mit Cookies arbeiten?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Di 04.03.2008 15:52
Titel

Antworten mit Zitat Zum Seitenanfang

naja, da die aktionen ja eh über ein neuladen der seite aufgerufen werden spräche kurz gesagt wirklich nichts über ein folgendes (sehr einfach gestricktes) modell:

bei projektaufruf die allows aus db holen und dann bspw so speichern.

$_SESSION['Projekt_id'] = array ("aktions_id1" => "true",
"aktion_id2" => "false",
etc etc etc);

bei jedem aktionsaufruf übergibst du dann nur noch projekt_id und aktions_id und prüfst diese, obs erlaubt ist.

wenn du ein sauberes session-handling hast, solltest bezüglich der sicherheit keine probleme haben.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Nimroy
Community Manager
Threadersteller

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 46
Geschlecht: Männlich
Verfasst Di 04.03.2008 15:56
Titel

Antworten mit Zitat Zum Seitenanfang

pixelpapst303 hat geschrieben:
naja, da die aktionen ja eh über ein neuladen der seite aufgerufen werden spräche kurz gesagt wirklich nichts über ein folgendes (sehr einfach gestricktes) modell:

bei projektaufruf die allows aus db holen und dann bspw so speichern.

$_SESSION['Projekt_id'] = array ("aktions_id1" => "true",
"aktion_id2" => "false",
etc etc etc);

bei jedem aktionsaufruf übergibst du dann nur noch projekt_id und aktions_id und prüfst diese, obs erlaubt ist.


Versteh ich nicht. nehmen wir mal an, Projekt_ID ist 1. Dann müssten doch alle Aktionen auf erlaubt stehen. Warum sollten sie auf false stehen?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Di 04.03.2008 15:59
Titel

Antworten mit Zitat Zum Seitenanfang

Nimroy hat geschrieben:
pixelpapst303 hat geschrieben:
naja, da die aktionen ja eh über ein neuladen der seite aufgerufen werden spräche kurz gesagt wirklich nichts über ein folgendes (sehr einfach gestricktes) modell:

bei projektaufruf die allows aus db holen und dann bspw so speichern.

$_SESSION['Projekt_id'] = array ("aktions_id1" => "true",
"aktion_id2" => "false",
etc etc etc);

bei jedem aktionsaufruf übergibst du dann nur noch projekt_id und aktions_id und prüfst diese, obs erlaubt ist.


Versteh ich nicht. nehmen wir mal an, Projekt_ID ist 1. Dann müssten doch alle Aktionen auf erlaubt stehen. Warum sollten sie auf false stehen?


versteh ich nicht Grins warum sollte bei projekt 1 alles erlaubt sein? ich denke, die möglichen (edit) aktionen variieren von projekt zu projekt...


Zuletzt bearbeitet von pixelpapst303 am Di 04.03.2008 16:00, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen DTP Anwendung
IF Anwendung im Excel
Verbindung von .NET-Anwendung zu Webserver
Web-Anwendung konzipieren - praktische Helferlein
Bug-Suche in meiner Flash-Anwendung!
Mac OSX: Zuordnung Datei-Anwendung aufheben
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Allgemeines - Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.