fastix®: OOP: Aufteilung der Aufgaben innerhalb einer Anwendung

Beitrag lesen

Moin!

Beispiel: Ein einfaches Login-Formular; der Benutzer hat einen falschen Namen oder ein falsches Passwort angegeben.

(1) State: unvollständig/fehlerhaft. Das Formular wird nochmal gezeigt, solange bis alles stimmt.

Schlechtes Beispiel. Schon aus Gründen der Sicherheit ist es immer eine gute Idee alles, was mit Authentifizierungen zu tun hat, so einfach wie möglich zu halten.

Also sieht ein Login-Skript für einen Admin-Bereich bei mir so aus:

<?ebb #execute by brain  
if (Überhaupt erwartete Daten gesendet?) {  
     if (Auth erfolgreich?) {  
           session starten;  
           Auth registrieren;  
           ggf. FailZähler Löschen;  
           ggf. Weiterleitung oder include der Zielseite aus session, sonst standard-Seite  
           exit;  
     }  
     ggf. FailZähler setzen, prüfen, und im Ernstfall reagieren -> (Bei mir gerne: Zugriffsverbot in .htaccess);  
     ggf. mesg setzen;  
}  
  
ggf. {  
     primitives Template laden  
     ggf. mesg. einfügen  
     zeigen;  
} else {  
     Formular + ggf. mesg. zeigen;  
} # immer:  
exit;  
?>

Die zu schützenden Scripte bekommen, bevor irgendetwas anderes getan wird als Einzeiler mit require ein include (Weil es ein Einzeiler + Kommentar ist) auferlegt:

<?ebb  
session starten;  
if (Auth nicht registriert oder ungültig?) {  
     ggf. aktuelle Seite als Zielseite in Session schreiben;  
     ggf. mesg. setzen (z.B. "He! Du MF: Machst Du ScheißCookies an!");  
     ggf. Weiterleitung zum Login; # oder  
     ggf. böses die(); #siehe 2 Zeilen weiter oben # oder:  
     ggf. 403er header; # immer:  
     exit;  
}  
# Wer hier noch "lebt" ist berechtigt: EOI (end of include); auto: back zum #main  

Alles, was hinter "ggf." steht sind optionale Aufgaben, die über die Authentifizierung an sich hinausgehen.

Das sind alles "Wenigzeiler" oder die von mir besprochenen Nägel und ich glaube fest daran, dass jeder hierfür unnötige Befehl eine Fehlerquelle ist. Also sind Login-Geschichten Direktkandidaten für transparentes, schnödes, pragmatisches, prozedurales Programmieren (soweit wie keine nativen Objekte der Sprache oder des Template-Systems) benutzt werden können) ohne formalen Überbau.

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix

1 60

OOP: Aufteilung der Aufgaben innerhalb einer Anwendung

Der-Dennis
  • programmiertechnik
  1. 0
    Sven Rautenberg
    1. 0
      Der-Dennis
      1. 5
        Sven Rautenberg
        1. 0
          Der-Dennis
        2. 0
          fastix®
  2. 2
    fastix®
    1. 0
      Der-Dennis
      1. 0
        fastix®
        1. 0
          Der-Dennis
      2. 0
        Sven Rautenberg
        1. 0
          Der-Dennis
        2. 0
          fastix®
          1. 0
            Tom
            1. 1
              fastix®
              1. 0
                dedlfix
                1. 0
                  fastix®
              2. 0
                Sven Rautenberg
  3. 1
    Tom
    1. 0
      Der-Dennis
      1. 0
        Tom
        1. 2
          Der-Dennis
          1. 0
            Tom
            1. 0
              Der-Dennis
              1. 0
                Tom
                1. 0
                  Der-Dennis
                  1. 0
                    fastix®
                    1. 0
                      flowh
                      1. 0
                        Tom
                        1. 0
                          fastix®
                    2. 0
                      Der-Dennis
        2. 0
          Christian Seiler
          1. 0
            Tom
    2. 3
      Blaubart
      1. 0
        Tom
        1. 5
          Blaubart
  4. 1
    dedlfix
    1. 0
      Der-Dennis
      1. 0
        Der-Dennis
        1. 0
          fastix®
          1. 0
            Der-Dennis
            1. 0
              dedlfix
              1. 0
                Der-Dennis
                1. 0
                  fastix®
                  1. 0
                    Der-Dennis
                    1. 0
                      fastix®
                      1. 0
                        Der-Dennis
                        1. 0
                          fastix®
                          1. 0
                            Der-Dennis
  5. 0
    hotti
    1. 0
      Der-Dennis
      1. 0
        hotti
        1. 0
          Der-Dennis
          1. 1
            hotti
            1. 0
              Der-Dennis
        2. 0
          fastix®
          1. 0
            Tom
            1. 0
              fastix®
    2. 0
      dedlfix
  6. 0

    Danke für Eure Meinungen!

    Der-Dennis