type hidden wird anscheinend nicht richtig übergeben

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

  • type hidden wird anscheinend nicht richtig übergeben

    Danke schonmal für die ganze Hilfe die ich schon hier im Forum bekommen habe
    hier mein Problem:

    Ich habe ein Seite auf der Kommentare angezeigt werden. Um diese zu löschen werden die erforderlichen Daten mit diesem Formular an eine andere Seite übergeben:

    PHP-Code:
    <form action="index.php?s=changecreation&type=comment&action=delete"
     method="post" name="form_comment_delete_<?echo $comment_id;?>">
        <input type="hidden" name="type_id" value="<?echo $comment_id;?>">
    </form>
    Die Id des Kommentars übergebe ich mit type hidden über POST, damit man sie nicht in der URL ändern kann. Ich weiß allerdings nicht ob es so sicher ist.

    Wenn ich dann versuche die versteckte Übergabe auszugeben mit
    PHP-Code:
    echo $_POST["type_id"]; 
    kommt:
    PHP-Code:
    NoticeUndefined indextype_id in /users/mycreationhost/www/change-creation.php on line 3 
    Ich weiß aber nicht warum die variable nicht belegt ist...
    Was am seltsamsten ist, dass das Script, dass mit dieser Variable arbeitet trotzdem richtig ausgeführt wird und dann eine selbstgeschriebene Fehlermeldung ausgibt, die ebenfalls besagt, dass nicht alle nötigen Angaben vorhanden sind...

    Wäre sehr dankbar für Hilfe

  • #2
    Zitat von Spunk95 Beitrag anzeigen
    Die Id des Kommentars übergebe ich mit type hidden über POST, damit man sie nicht in der URL ändern kann. Ich weiß allerdings nicht ob es so sicher ist.
    Kein bisschen. Auch POST-Werte sind beliebig manipulierbar.
    Du solltest prüfen, ob der jenige, der das Script aufruft, auch dazu berechtigt ist; oder es bspw. mit einem Passwortschutz versehen, so dass es nicht jeder aufrufen kann.

    Zum Problem: Wie schickst du das Formular denn überhaupt ab? Ich sehe da keinerlei Submit-Button, und auch kein Eingabefeld, das den Fokus bekommen könnte, so dass ein Abschicken per Return möglich wäre.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hallo,

      das Formular hat offenbar außer dem Hidden-Feld keine weiteren Elemente, insbesondere keinen Submit-Button. Ich vermute, dass die Seite aber mindestens ein weiteres Formular enthält und nur dieses abgeschickt wird, wobei auch nur dessen Formularfelder übergeben werden. Bau mal in das Formular mit dem Hidden-Feld einfach einen Submit-Button ein und drück dann dort drauf, dann wirst du sehen, dass es funktioniert.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Schau zunächst einmal, was genau für ein HTML-Quelltext generiert wird. Scheint dieser in Ordnung zu sein, würde ich auch noch einmal schauen, was alles im POST-Array zu sehen ist. Zum Beispiel so:

        PHP-Code:
        print_r($_POST); 
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Danke für die vielen, schnellen Antworten

          Zitat von wahsaga Beitrag anzeigen
          Kein bisschen. Auch POST-Werte sind beliebig manipulierbar.
          Du solltest prüfen, ob der jenige, der das Script aufruft, auch dazu berechtigt ist; oder es bspw. mit einem Passwortschutz versehen, so dass es nicht jeder aufrufen kann.
          Ich prüfe vorm auswerten ob die SESSION variable usr_id gesetzt ist, reicht das als Schutz? Und inwiefern kann man POST Werte manipulieren?


          Zitat von wahsaga Beitrag anzeigen
          Zum Problem: Wie schickst du das Formular denn überhaupt ab? Ich sehe da keinerlei Submit-Button, und auch kein Eingabefeld, das den Fokus bekommen könnte, so dass ein Abschicken per Return möglich wäre.
          [/QUOTE]

          Abgeschickt wird das Formular mit javascript, da das Formular in einem jquery Dialog steht und es beim Klick auf den Button des Dialogs abgesendet werden soll. Hat auch in anderen Scripten von mir gut geklappt.

          Dieser Javascript wird in der gleichen Schleife erstellt wie auch das Formular und sich eigentlich genau auf das oben genannte Formular bezieht:

          PHP-Code:
          buttons: {
                                                                  "Na sicher": function() { 
                                                                      document.form_comment_delete_<?echo $comment_id;?>.submit();
                                                                  }, 
                                                                  "Nein doch nicht": function() { 
                                                                      $(this).dialog("close"); 
                                                                  } 
                                                              }

          @AmicaNoctis: Habe ich grade ausprobiert und es hat dann auch geklappt. Irgendwie klappt jetzt alles wieder, auch wenn ich den submit button wieder entferne.
          Eigentlich ist also alles geklärt, auch wenn ich nicht verstehe, warum es auf einmal funktioniert.

          @unset : Danke dir

          Also Zusammenfassend: Problem gelöst, aber wie sieht das mit der Sicherheit aus? Wenn man POSt so leicht manipulieren kann, sollte ich vielleicht etwas anderes nutzen?
          // Jetzt klappt es auf einmal wieder nicht ohne Submit Button... Das Script wird zwar ausgeführt, aber er gibt eine Fehlermeldung aus...

          Danke nochmal an alle
          Zuletzt geändert von Spunk95; 28.12.2010, 14:12.

          Kommentar


          • #6
            Zitat von Spunk95 Beitrag anzeigen
            Und inwiefern kann man POST Werte manipulieren?
            a) Firebug
            b) HTML-Code speichern, ändern, im Browser öffnen, abschicken.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Zitat von AmicaNoctis Beitrag anzeigen
              a) Firebug
              b) HTML-Code speichern, ändern, im Browser öffnen, abschicken.
              Okay, das Script funktioniert jetzt übrigens perfekt.
              Aber wäre ja blöd, wenn man das jetzt so aushebeln kann, was sind denn die alternativen?

              Danke schonmal

              Kommentar


              • #8
                Es ist immer zu prüfen, ob derjenige, der eine bestimmte Aktion ausführen will, dazu auch die nötigen Rechte hat - dazu gibt es keine Alternativen.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Zitat von wahsaga Beitrag anzeigen
                  Es ist immer zu prüfen, ob derjenige, der eine bestimmte Aktion ausführen will, dazu auch die nötigen Rechte hat - dazu gibt es keine Alternativen.
                  Okay, und wie prüft man das?

                  Kommentar


                  • #10
                    Bevor du es prüfen kannst, musst du es erst mal definieren.
                    Wer soll berechtigt sein, Einträge zu löschen, wer nicht?

                    (Oder halt wie schon erwähnt, Script nur passwortgeschützt aufrufbar machen - und dann einfach sagen, wer das Passwort kennt, hat auch die Berechtigung.)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Zitat von wahsaga Beitrag anzeigen
                      Bevor du es prüfen kannst, musst du es erst mal definieren.
                      Wer soll berechtigt sein, Einträge zu löschen, wer nicht?

                      (Oder halt wie schon erwähnt, Script nur passwortgeschützt aufrufbar machen - und dann einfach sagen, wer das Passwort kennt, hat auch die Berechtigung.)
                      Okay, dann prüfe ich im Script nochmal, ob einem das Kommentar wirklich gehört. Danke für eure Hilfe

                      Kommentar

                      Lädt...
                      X