Sicherheitsfrage bzgl. Parameterübergabe per Link

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

  • Sicherheitsfrage bzgl. Parameterübergabe per Link

    Hallo,
    habe mal wider eine Frage!


    Ich habe auf meiner Seite geschützte Bereiche wo nur Mitglieder per Login zutritt haben!

    Nun habe ich in diesen Bereichen auch einige Unterbereiche wo der User bestimmte Daten (z.B. Angebote) ändern bzw. verwalten kann.

    Jedes dieser Angebote hat seine ID und die wird im Link mitübergeben (wenn der User den Link zum ändern anklickt)

    Ich will nun bei jedem dieser Bereiche abfragen ob die übergebene Angebots-ID auch zu dem User gehört!

    Da überlegte ich mir wie ich vorgehen sollte wenn dies nicht der Fall ist!
    Ich habe mir überlegt per header einfach auf einen 'äusseren' Bereich zu leiten. Geht aber leider nicht da ich davor vom 'Gerüst' bereits etliche Ausgaben habe!

    Dann habe ich mir überlegt ich mache einfach eine META-Umleitung!
    Aber wenn ich mich richtig erinnere kann man das ja auch 'unterbinden' das eine Seite automatisch weitergeleitet wird, oder ?

    Wenn nicht dann werde ich es so machen, wenn man es verhindern kann dann brauch ich eine andere Lösung! Vorschläge sind immer willkommen!

  • #2
    Erweiter deine Angebotsdatenbank um ein Feld "owner" z.B.

    Da schreibst du dann die ID des Users rein. Und so kannst du das ganze absichern.

    Kommentar


    • #3
      @schnoop: das hat er ja vor.

      @nullblicker: wenn du dein programm vernünftig struckturieren (das gehört zur anwendungsentwicklng dazu) würdest, dann hättest du nicht das problem, dass die ausgabe vor der Abfrage erfolgt.
      Wie man die ausgabe unterbinden kann, steht zur not hier im Forum. Auch wenn ich das eher suboptimal finde.

      Kommentar


      • #4
        Nene, du hast das nicht ganz verstanden....

        Was die DB angeht ist alles klar einzuordnen!
        Jedes Angebot hat bereits die zugehörige User-ID!

        Mir geht es nur darum beim klick auf den Link 'Angebot ändern' wird die Angebots-ID mitübergeben!

        Jetzt kann ein ganz schlauer darauf kommen den Link so zu manipulieren das er eine nicht ihm gehörende ID einträgt und den Link abschickt!
        Und wenn er als ein anderer User angemeldet ist klappt das auch weil meine Index.php nur nachprüft ob der User sich angemeldet hat und sich seine User-Id merkt!

        Code:
         
        
        if(isset($HTTP_GET_VARS['section'])) $section = $HTTP_GET_VARS['section'];
        switch($section)
        {
        .
        .
        .
        case "bearbeiten":
        	//Angebote bearbeiten
        	if($_SESSION['angemeldet']=='ja')
        		include "bearbeiten.php";
        	else
        		include "login.php";
        		
        	break;
        .
        .
        .
        }
        Aber hier wird nicht überprüft ob die Angebots-ID dem angemeldeten User entspricht weil das kann ich erst machen in dem 'includeten' Teil weil dieser greade diesen Parameter erwartet!

        Aber, mit geht es darum ob ich per META-Umleitung wieder zurückleiten kann sollte bei der späteren Überprüfung sich herausstellen das die Angebots-ID nicht dem angemeldeten User entspricht!

        Gehen tut das schon bei mir, nur weis ich nicht mehr genau ob man diese META-Umleitung auch 'deaktivieren' kann im Browser.....

        Also ich lasse erstmal den Zielbereich includen und dort gleich am Anfang wird per SQL geprüft ob Angebots-ID dem angemeldeten User entspricht. Falls ja geht das wie gehabt weiter, falls nein eine Umleitung zurück auf die Startseite! Kann man dass als User umgehen ?
        Zuletzt geändert von Master0Blicker; 22.09.2005, 18:39.

        Kommentar


        • #5
          @TobiaZ

          Das Problem ist dabei: es geht nicht anderst!
          Ich hätte auch gleich im Kopf der Index.php abfragen können aber nicht jeder Link beinhaltet Angebots-ID sondern nur ein paar!
          Also muss ich die Überprüfung in ein 'Sub-Bereich' verschieben! Da ist aber bereits etliches Ausgegeben worden wie z.B. das ganze Gerüst und kann daher header nicht mehr nutzen!
          Ist ein wenig Paradox......

          Aber META-Umleitung mit 0 Sekunden verzögerung ist ja auch schon gut, aber nur wenn man das nicht Umgehen könnte.....und das ist eigentlich meine Kernfrage!

          Kommentar


          • #6
            Das Problem ist dabei: es geht nicht anderst!
            Das ist Quatsch!!!

            Ich hätte auch gleich im Kopf der Index.php abfragen können aber nicht jeder Link beinhaltet Angebots-ID sondern nur ein paar!
            Also muss ich die Überprüfung in ein 'Sub-Bereich' verschieben! Da ist aber bereits etliches Ausgegeben worden wie z.B. das ganze Gerüst und kann daher header nicht mehr nutzen!
            Dazu hatte ich dir bereits etwas geschrieben. Bitte ignorier nicht die Hälfte der Hilfe!


            Aber META-Umleitung mit 0 Sekunden verzögerung ist ja auch schon gut, aber nur wenn man das nicht Umgehen könnte.....und das ist eigentlich meine Kernfrage!
            Du hast die antwort doch schon gegeben. ALLES was KLIENTSEITIG abläuft kann man umgehen! Egal, ob man den refresh im browser ausschalten kann oder nicht!

            Im Zweifelsfall (falls du auf ne saubere Lösung verzichten willst), kannst du immernoch erst dein Grundgerüst ausgeben und dann einfach im subbereich prüfen und ggf. nen die(
            hör auf zu manupulieren!) absetzen.

            Aber denk einfach mal logisch über deinen programmablauf nach!

            Kommentar


            • #7
              @TobiaZ

              Mit der gepufferten Ausgabe habe ich da meine Zweifel und somit werde ich nun im Kopt der Index.php eben noch ein Bereich einbauen der bei bestimmten Links eben nachprüft ob diese valide sind (sprich ob Angebots-ID der angemeldetetn User-ID entspricht........) und dann im Fall der Fälle ein Header senden......

              Kommentar


              • #8
                Nachteil: Du brauchst eine zusätzliche Query, die du bei strukturierter Programmierung nicht gebraucht hättest.

                Kommentar


                • #9
                  Wie meinst du das ?
                  Ich brauche das zusätliche Query doch sowieso.......

                  oder ??

                  Kommentar


                  • #10
                    wenn du sie brauchen würdest, würde ich sicher nicht sagen, dass du sie nicht brauchst.

                    Kommentar


                    • #11
                      Nur wie meinst du das ?
                      Hätte ich das so machen sollen das in einem Query alle Werte die benötigt werden ausgelesen werden und dann nacheinander alles abgearbeitet werden in einer. Also in einer Struktur ?

                      Kommentar


                      • #12
                        will dir ja nicht alles verraten, schließlich bist du der programmierer.

                        aber z.B. lösche ich nur, wenn ich löschen darf. und dass kann ich wunderbar in der query abchecken.

                        Kommentar

                        Lädt...
                        X