Ankündigung

Einklappen
Keine Ankündigung bisher.

POST-Daten auf 'echtheit' prüfen?

Einklappen

Neue Werbung 2019

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

  • #16
    Also der User kann keine SQL-Abfragen wahllos abfeuern... hoffe ich zumindest

    Die SELECT-Abfragen zur Datensatzansicht sind für den User entsprechend seiner Rechte und Zugehörigkeit gefiltert, klar. DIE UPDATE- und INSERT-Abfragen werde ich mit der vorgeschlagenen SESSION/UniqueID-Methode sichern.
    ALLE SQL-Strings die aus Eingabemasken oder GET/POST kommen, werden vorher durch mysql_real_escape_string() entschärft!

    Zur Anwendung selbst:
    Es geht hierbei um ein System bei dem mehrere Verkäufer ihre Kundentermine und Umsätze einpflegen. Jeder Verkäufer sieht nur seine eigenen Einträge. Der Vorgesetzte sieht wiederum alle Einträge SEINER Verkäufer. Vorgesetzte gibt es mehrere... Und das ganze staffelt sich dann nach oben wie eine Art 'Schneeballsystem'... Ganz oben sitzt dann EINER der ALLES sehen darf.

    Aber ich denke ich bin hier schon mal auf nen ganz ordentlichen Weg

    Kommentar


    • #17
      Ok, dann habe ich dich komplett falsch verstanden.

      Zitat von mikexmagic Beitrag anzeigen
      durch mysql_real_escape_string() entschärft!
      mysqli_real_escape_string?

      Kommentar


      • #18
        Ein Token wie lstegelitz beschreibt, hat allerdings auch seine Schattenseiten:

        1. kann es zu Falschalarmen bspw. beim Tabbed browsing führen.
        2. Kann ein Curl-Call im Vorfeld natürlich genauso ein Token erzeugen. Da das Ding im Form steht, ist es nach einer Analyse des Verfahrens möglich, doch wieder automatisiert Requests abzusetzen.

        Ergo: Es ist vor allem wichtig, auf Empfangsseite zu wissen, welche Daten erwartet sind, welche fehelnden Eingaben valide sind (z.B. durch das Verhalten von Checkboxes) usw.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #19
          Noch ein Punkt sei angesprochen: Man kann es auch anders sehen, ob das Senden von Daten auf anderem Weg überhaupt so manipulativ ist. Wielleicht ist es für den Nutzer so einfacher, oder man hat sich in Ermangelung einer anderen Schnittstelle eine Pseudo-API gebaut o.ä.
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar


          • #20
            @Ferox: ne, alles bisher ohne 'i'-Erweiterung... Warum? Keine Ahnung... Weil ich zu Beginn meines Projekts ein einfaches PHP/SQL-Tutorial online gemacht habe. Und da wurden die 'alten' Befehle behandelt. Und iwie bin ich dabei geblieben

            @nikosch: API? Schnittstelle? Äh, nö... Geht mir auch zu weit... Komm ja so kaum klar

            Kommentar


            • #21
              Zitat von mikexmagic Beitrag anzeigen
              @nikosch: API? Schnittstelle? Äh, nö... Geht mir auch zu weit... Komm ja so kaum klar
              Ich glaube, er meint eher, dass du vlt. ein Problem hast, das garkeins ist. Warum soll es keine Möglichkeit geben, Daten auf anderem Wege an deine Applikation zu senden? (Daher "Pseudo-Api") / Wie: "Musst du überhaupt diesen Aufwand betreiben, ohne tatsächlichen Mehrwert zu haben?" Was für ein Schaden kann dadurch überhaut entstehen?

              Kommentar


              • #22
                Ahsooooo, jetzt schnall ich's

                Ist ja richtig... Ich mach mir glaube ich aktuell zu viele Gedanken. Wie gesagt, bin auf nem guten Weg. Zumindest bin ich jetzt auch wieder etwas schlauer...

                Kommentar


                • #23
                  Ich glaube, er meint eher, dass du vlt. ein Problem hast, das garkeins ist. Warum soll es keine Möglichkeit geben, Daten auf anderem Wege an deine Applikation zu senden? (Daher "Pseudo-Api") / Wie: "Musst du überhaupt diesen Aufwand betreiben, ohne tatsächlichen Mehrwert zu haben?" Was für ein Schaden kann dadurch überhaut entstehen?
                  Korrekt. Wenn DU nicht gerade 10000 Requests pro Sekunde abgesetzt bekommst, prüfe einfach die Gültigkeit der Eingaben, nicht die Herkunft. Ausnahme: Die Eingaben benötigen eine Nuterautorisierung.
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar


                  • #24
                    Zitat von mikexmagic Beitrag anzeigen
                    uniqid() ist natürlich auch noch ne Nummer sicherer
                    uniqid() hat die Aufgabe "eindeutige" Ids für den aktuellen Prozess zu erzeugen. Nicht unvorhersehbare oder auch nur global eindeutige.

                    PHP-Code:
                    for($i=0$i<10$i++) {
                        
                    var_dump(hexdec(uniqid()));
                    }

                    int(1466123545096357)
                    int(1466123545096432)
                    int(1466123545096460)
                    int(1466123545096485)
                    int(1466123545096508)
                    int(1466123545096532)
                    int(1466123545096555)
                    int(1466123545096577)
                    int(1466123545096600)
                    int(1466123545096664

                    Kommentar


                    • #25
                      Du solltest auf jedenfall ein CSRF (Cross Site Request Forgery) Token implementieren und das HTTP Refferer Feld überprüfen.

                      EDIT: Das Token sollte mehr als 8 Zeichen haben und nicht per GET übertragen werden!

                      Kommentar


                      • #26
                        Da ist der wahrscheinlich nach 4 Monaten selbst drauf gekommen..
                        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                        Kommentar

                        Lädt...
                        X