Eternius: Selbstprogrammierte Board-Software

Beitrag lesen

Hallo,

Das reicht nicht, aber das ist auch nicht das Problem.
Was mich bei fast allen Anti-SQL-Injections-Tutorials ($PHP/manual/en/security.database.sql-injection.php ist da eine zwar erfreuliche aber auch noch nicht weit genug gehende Ausnahme), die ich eben auf dis Schnelle durchging stört, ist der Umstand, das niemand darauf eingeht, das das Hauptproblem darin besteht, jeden Mist zuzulassen und dann rauszusieben, was man _nicht_ haben möchte. Das ist verkehrtherum.

sehe und handhabe ich schon lange so. Ist eigentlich auch recht einfach umzusetzen: Ich transportiere die Information über die Variablen im Variablen Namen: z.B.
name="int_10_formularfeld" oder
name="str_255_test" oder
name="txt_comment".

für kleine Projekte ist das ganze natürlich nicht nötig, da kann man das auch für alle Variablen per Hand festlegen.

dann geh ich jetzt her und splitte den namen auf:
(variablen, die nicht dort hineinpassen, werden gelöscht, oder es wird gestorben (die))
für int_10_forumlarfeld ergibt das:
type='int';
length=10
regexp="/[^0-9]/";

danach wird das ganze überprüft ob diese sachen auch zutreffen.
unterschiedliches Verhalten bei nichtzutreffen lässt sich ja implementieren, wie variable löschen, variable cleanen (gefahrenträchtig), oder das skript gar abbrechen.

der trick daran ist eigentlich das die variable auch im program per $hash{'int_10_formularfeld'} angesprochen werden muss, das heisst die sache lässt sich nicht umgehen, wenn jemand jetzt z.b. einfach int_25_formularfeld als name schickt, hat das keine auswirkung (weil die variable nirgendwo benutzt wird).
natürlich fordert das auch disziplin vom programmierer.

Das Ganze habe ich noch auf "trust" klassen verteilt, also z.b. darf "getrusteter" user andere zeichenklassen benutzen als ein als "untrusted" eingestufter.

gruss

--
no strict;
no warnings;
79.78 cups of Coffee (Brewed) + Me = Death
Kalorien sind winzig kleine nachtaktive Tiere, die unbeobachtet menschliche Kleidung enger nähen.
0 49

Selbstprogrammierte Board-Software

Andavos
  • meinung
  1. -1
    Ludger
    1. 0
      Andavos
      1. 0
        Ludger
        1. 0
          Andavos
  2. 0
    sungirl2005
    1. 2
      Fabian St.
      1. 0
        sungirl2005
    2. 0
      Andavos
      1. 0
        sungirl2005
        1. 1
          Andavos
          1. 0
            sungirl2005
            1. 0
              Andavos
              1. 0
                sungirl2005
            2. 0
              Thomas J.S.
              1. 0
                Andavos
                1. 0
                  Thomas J.S.
              2. 0
                Dennis
          2. 0
            Fabian St.
  3. 4
    Eternius
    1. 0
      Andavos
      1. 0
        Dennis
        1. 0
          Andavos
          1. 0
            wahsaga
            1. 0
              Andavos
              1. 0
                wahsaga
                1. 0
                  Andavos
                  1. 1
                    Christian Kruse
              2. 0
                Christian Kruse
          2. 0
            Alexander Brock
      2. 2
        Christoph Zurnieden
        1. 0
          wahsaga
          1. 0
            Christoph Zurnieden
        2. 1
          Eternius
          1. 1
            Christoph Zurnieden
            1. 0
              Eternius
              1. 0
                Christoph Zurnieden
                1. 0
                  Eternius
                  1. 0
                    Eternius
                  2. 0
                    Christoph Zurnieden
                    1. 0
                      Eternius
                      1. 0
                        Christoph Zurnieden
                        1. 0
                          Eternius
      3. 0
        Christian Kruse
        1. 0
          Andavos
    2. 0
      Jeena Paradies
      1. 0
        Andavos
        1. 3
          Sven Rautenberg
    3. 0
      Andavos