Kai Diefenbach: Accesscontrol und Zuordnung von Daten

Hallo Ihr Experten,

kann mir jemand den groben Lösungsweg zu folgenden Problem schildern.

User identifiziert sich anhand Username und Passwort, und kommt in sonst nicht zugänglichen Bereich..
User kann nun Eingaben machen, die Ihm zugeordnet und abgespeichert werden sollen.

Mein Ansatz ist:

Ist User Ok  ?

Ja:

open (HTML,'</.../Eingabe.html');       //Sonst nicht zugänglicher Bereich  
@html = <HTML>;  
close(HTML);  
foreach (@html) {print;}  

Nein:

Print 'Sorry, hier geht nix.';  

In Eingabe.html ist eine weitere form, in der der User nun die Eingaben machen kann.
Wie kann ich diese Eingaben dem angemeldeten User zuHallo,

kann mir jemand den groben Lösungsweg zu folgenden Problem schildern.

User identifiziert sich anhand Username und Passwort, und kommt in sonst nicht zugänglichen Bereich.
User kann nun Eingaben machen, die Ihm zugeordnet und abgespeichert werden sollen.

Mein Ansatz ist:

...

Ist User Ok

Ja:

open (HTML,'</.../Eingabe.html');	  
@html = <HTML>;  
close(HTML);  
foreach (@html) {print;}  

Nein:

Print Sorry, hier geht nix.  

...

In Eingabe.html ist ein weiteres form, in der der User nun die Eingaben machen kann. Wie kann ich diese Eingaben dem angemeldeten User zuordnen.

Gruß und Danke
Kai

  1. User identifiziert sich anhand Username und Passwort, und kommt in sonst nicht zugänglichen Bereich..
    User kann nun Eingaben machen, die Ihm zugeordnet und abgespeichert werden sollen.
    Mein Ansatz ist:
    Ist User Ok  ?
    Ja:

    »»  open (HTML,'</.../Eingabe.html');       //Sonst nicht zugänglicher Bereich
    »»  @html = <HTML>;
    »»  close(HTML);
    »»  foreach (@html) {print;}

    Nein:

    »»  Print 'Sorry, hier geht nix.';

    In Eingabe.html ist ein weiteres form, in der der User nun die Eingaben machen kann. Wie kann ich diese Eingaben dem angemeldeten User zuordnen.

    Ich würde die beiden Bereiche "Authentifizierung" und "benutzerspezifische Speicherung" trennen.

    a) Authentifizierung: siehe <../schroepl01.html>.

    b) Eingabeformular in einem Verzeichnis, in dem nur authentifizierte Benutzer zugreifen können (siehe a). Wer die URL ansprechen kann, der darf also automatisch auch schreiben; das Eingabeformular kann also statisch sein.
    Um die geschriebenen Daten benutzerspezifisch zu trennen, würde ich in den Pfadnamen der abzuspeichernden Datei den Benutzernamen (CGI-Variable REMOTE_USER) als Verzeichnisebene einfügen. Zum Speichern braucht man ohnehin eine CGI-Anwendung oder etwas Ähnliches.

    1. 2. Versuch - relative Links auf diesem Server sind irgendwie nicht so ganz trivial ...

      a) Authentifizierung: siehe http://www.teamone.de/selfaktuell/schroepl01.html.

      1. ... und jetzt noch die Endung richtig :-((((

        a) Authentifizierung: siehe http://www.teamone.de/selfaktuell/schroepl01.htm.

        Ich kenne Foren, da kann man seinen Eintrag nachträglich editieren - das könnte glatt das Niveau des Archivs heben. Aber man darf ja hier keine Verbesserungen vorschlagen, ohne sofort auf der Flucht erschossen zu werden ...

    2. User identifiziert sich anhand Username und Passwort, und kommt in sonst nicht zugänglichen Bereich..
      User kann nun Eingaben machen, die Ihm zugeordnet und abgespeichert werden sollen.
      Mein Ansatz ist:
      Ist User Ok  ?
      Ja:
      »»  open (HTML,'</.../Eingabe.html');       //Sonst nicht zugänglicher Bereich
      »»  @html = <HTML>;
      »»  close(HTML);
      »»  foreach (@html) {print;}
      Nein:
      »»  Print 'Sorry, hier geht nix.';
      In Eingabe.html ist ein weiteres form, in der der User nun die Eingaben machen kann. Wie kann ich diese Eingaben dem angemeldeten User zuordnen.

      Ich würde die beiden Bereiche "Authentifizierung" und "benutzerspezifische Speicherung" trennen.

      a) Authentifizierung: siehe <../schroepl01.html>.

      b) Eingabeformular in einem Verzeichnis, in dem nur authentifizierte Benutzer zugreifen können (siehe a). Wer die URL ansprechen kann, der darf also automatisch auch schreiben; das Eingabeformular kann also statisch sein.
      Um die geschriebenen Daten benutzerspezifisch zu trennen, würde ich in den Pfadnamen der abzuspeichernden Datei den Benutzernamen (CGI-Variable REMOTE_USER) als Verzeichnisebene einfügen. Zum Speichern braucht man ohnehin eine CGI-Anwendung oder etwas Ähnliches.

      Hoffe Du lebst noch und kannst mir eine weitere Frage beantworten.
      Ich habe leider vergessen zu sagen, das ich mein Vorhaben ohne serverseitige Zugriffskontrolle durchführen möchte.

      Danke
      Kai

      1. Hoffe Du lebst noch und kannst mir eine weitere Frage beantworten.

        Danke der Nachfrage - ich röchele vor mich hin ... :-)

        Ich habe leider vergessen zu sagen, das ich mein Vorhaben ohne serverseitige Zugriffskontrolle durchführen möchte.

        Eine Zugriffskontrolle, die diesen Namen auch verdient, geht nur serverseitig. Ob .htaccess oder CGI, das ist dann noch noch eine Frage des (Programmier-)Aufwands.

        Alles, was Du auf dem Client "aufführen" könntest (JavaScript), läßt sich durch Abspeichern und Ändern des Quelltextes angreifen.

        1. Hoffe Du lebst noch und kannst mir eine weitere Frage beantworten.

          Eine Zugriffskontrolle, die diesen Namen auch verdient, geht nur serverseitig. Ob .htaccess oder CGI, das ist dann noch noch eine Frage des (Programmier-)Aufwands.

          Alles, was Du auf dem Client "aufführen" könntest (JavaScript), läßt sich durch Abspeichern und Ändern des Quelltextes angreifen.

          OK, wieder mein Fehler. Ich meinte natürlich, ohne die Zugriffskontrolle des WWW - Servers in Anspruch zu nehmen. Aber ich glaube ich habe die Lösung bereits gefunden.
          Unter <selfhtml/sfausles/tsfa_teg.htm#a2>

          Forms mit versteckten Feldern.

          Vielen Dank
          Kai

    3. Moin,

      Um die geschriebenen Daten benutzerspezifisch zu trennen, würde ich in den Pfadnamen der abzuspeichernden Datei den Benutzernamen (CGI-Variable REMOTE_USER) als Verzeichnisebene einfügen. Zum Speichern braucht man ohnehin eine CGI-Anwendung oder etwas Ähnliches.

      ... und was passiert, wenn sich ein Benutzer mit 2 Fenstern einloggen will oder zufällig bei 2 verschiedenen Benutzern REMOTE_USER den selben Inhalt hat? Will man ganz sicher gehen, generiert man zusätzlich noch eine Zufallsziffern/Zeichenfolge oder nimmt die aktuelle Uhrzeit mit Sekunden usw. mit in den Dateinamen der temporären Datei auf.

      Viele Grüße

      ANdreas

      1. ... und was passiert, wenn sich ein Benutzer mit 2 Fenstern einloggen will oder zufällig bei 2 verschiedenen Benutzern REMOTE_USER den selben Inhalt hat? Will man ganz sicher gehen, generiert man zusätzlich noch eine Zufallsziffern/Zeichenfolge oder nimmt die aktuelle Uhrzeit mit Sekunden usw. mit in den Dateinamen der temporären Datei auf.

        Das ist wahr, aber so hatte ich die Frage nicht verstanden.
        Ich ging davon aus, daß jeder Benutzer *seine* Daten speichert.
        a) Wenn er mit sich selbst kollidiert, dann ist das sein eigener Fehler.
        b) Mit jemand anderem kann er nicht kollidieren, wenn er eine eigene Benutzerkennung besitzt (REMOTE_USER enthält nichts "Zufälliges", sondern den Namen der Benutzerkennung, für die sich der Benutzer mit seinem Passwort ausgewiesen hat).