[Variablen] sichere Parameterübergabe

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Variablen] sichere Parameterübergabe

    Hallo zusammen,

    ich beabsichtige eine SQL-Anweisung als Variable zu übergeben. Die Anweisung soll allerdings von keinem User verändert werden und sicher übertragen werden. Welche Möglichkeiten stehen da zur Verfügung?

    Grüße

    Boris

  • #2
    Wenn die Query zum User und von dort wieder zu dir geht, kannst du nie von Sicherheit sprechen. Allerdings muß das ja nicht sein. Speicher die Query in einer Session!

    Kommentar


    • #3
      Eine SQL-Anweisung mit dem Query-String zu übergeben, halte ich für sehr gefährlich! Dies kann auf jeden Fall manipuliert werden. Es gibt auch keine Möglichkeit, dies zu verhindern. Ein bösartiger User kann einen Request beliebig verändern. Wenn er z.B. mit Ethereal den Request "mitschneidet" wird er bestimmt hellhörig, wenn ein SQL-Statement überliefert wird.

      Neben der Session könntest du auch die Anweisung selbst in die Datenbank schreiben. Aber wofür benötigst du dies? Vielleicht kann man das komplett übergehen...
      Ich möchte ein Tutorial über ein dynamisches Rechtemanagement-System schreiben (mit Rechtevererbung). Suche nach Freiwilligen! -> php_jan@freenet.de

      Kommentar


      • #4
        Du verwendest Sessions ?
        Warum denn nicht den Query in eine Session Var speichern à la
        PHP-Code:
        $_SESSION['query'] = 'order by name desc'
        Danach hängst du die Session an deine DB Query an et voilà.
        Du kannst es auch per URL machen, dann aber am besten mit einem Switch Statement zur Prüfung
        PHP-Code:
        switch($_GET['query']){
            case 
        'order by name desc':
            
        //Code den du dann ausführst
            
        break;
            case 
        'order by name asc':
            
        //Code den du dann ausführst
            
        break;
            default:
            die(
        'Die Variable zu verändern gilt nicht');

        Du musst einfach sicherstellen, dass du mit den Cases alle erlaubten Möglichkeiten der Query abfrägst und als Default einen Fehler wirfst.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Vielen Dank Tobi,

          ich denke diese Lösung ist die Beste :-)

          Den anderen auch nochmals vielen Dank für die schnelle Hilfebereitschaft!

          Grüße


          Boris

          Kommentar

          Lädt...
          X