Ankündigung

Einklappen
Keine Ankündigung bisher.

Button PHP Funktion

Einklappen

Neue Werbung 2019

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

  • Button PHP Funktion

    Hallo zusammen,
    Ich habe folgendes Problem.
    Ich möchte das ein Klick auf einen Button eine PHP Funktion auslöst welche die SessionID und eine zweite Gesetze ID benötigt. Das Problem hierbei ist das wenn ich AJAX benutze das man den Wert (also die beiden IDS) ja vor dem abschicken manipulieren könnte. Außerdem soll sich auf der Seite nichts ändern wenn man auf den Button klickt da man mit dem Klick auf dem Button nur ein Gebot auslöst was einen Wert auf in der Datenbank um 1 erhöht.
    Habe das Problem aktuell gelöst indem der Button einen href auf einen iFrame hat welcher die PHP Funktion beinhaltet. Allerdings denke ich das es da schönere und Vorallem performanzere Lösungen gibt.

  • #2
    Alles, was vom Client kommt, kann manipuliert werden. Deswegen sollte man auch Daten vom Client niemals vertrauen. Egal ob AJAX oder nicht AJAX.

    Kommentar


    • #3
      Input sollte validiert werden.
      [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

      Kommentar


      • #4
        hellbringer wie wäre dann dein Lösungansatz. Das Problem ist ja vereinfacht gesagt das ich einfach nur einen Button haben möchte der eine Aktion ausführt die mit der SessionID verknüpft ist. Also die nur von diesen Nutzer ausgeführt werden kann!

        drsoong wie meinst du das ? Validiert heißt doch nur das sicher gestellt wird das ein Input erfolgt ist.

        Der Input bei mir ist übrigens egal der kann meinetwegen gerne manipuliert werden. Es mussnur sicher sein das der Input von diesem einen eingeloggt User kommt.

        Kommentar


        • #5
          Validiert heißt doch nur das sicher gestellt wird das ein Input erfolgt ist.
          Ne, ob der Input gültig und zuverlässig ist. Du solltest schon wissen, was Du für Daten erwartest und die Daten auf Basis Deiner Erwartungen streng genug prüfen.
          [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

          Kommentar


          • #6
            drsoong ich erwarte eine user_id. Wie soll ich die prüfen?
            Also habe schon eine Idee wie du das meinst. Ich könnte theoretisch für jeden Nutzer einen random Key erzeugen. Dieser lässt sich nicht so leicht manipulieren wie eine fortlaufende ID. Aber gibt es da keine andere Methode ?

            Kommentar


            • #7
              Keine Ahnung, wie Deine Anwendung aufgebaut ist, aber...wenn sich ein User einloggt, ist Dir seine ID ab dann bekannt. Wenn der User innerhalb derselben Session ein Knopf drückt, darfst Du davon ausgehen, dass es eben der User war, der sich zuvor per Login authentifiziert hat.

              Oder läßt Du etwa Leute Gebote abgeben, ohne dass Du weist, wer die sind?
              [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

              Kommentar


              • #8
                Zitat von DrizztOne Beitrag anzeigen
                hellbringer wie wäre dann dein Lösungansatz. Das Problem ist ja vereinfacht gesagt das ich einfach nur einen Button haben möchte der eine Aktion ausführt die mit der SessionID verknüpft ist. Also die nur von diesen Nutzer ausgeführt werden kann!
                Die Session-ID ist irrelevant. Du musst ja nur prüfen, ob der User die Aktion ausführen darf.

                Kommentar


                • #9
                  drsoong @hellbring Die Anwendung ist so aufgebaut das es bei jedem Produkt einen Button gibt um ein gebot abzugeben. Dieser Button war mit ajax verbunden und hat bei beim klicken die SessionID des Users und die ID des Produktes zu dem er gehört an eine Funktion übergeben die diese Daten dann weiter an ein PHP Script gegeben hat das die Daten dann verarbeitet und die Datenbank eingetragen hat. Soweit so gut. Jedoch ist es relativ leicht diese POST oder GET übergabe zu manipulieren. Man muss nur die SessionID (also die Zahl die übergeben wird) ändern und schon kann man im Namen andere User bieten.
                  Wie ihr seht ist die SessionID daher sehr relevant.

                  Mein Lösungsansatz nun ist das ich für jeden User noch einen string KEY generiere und diese zusammen mit den anderen Nutzer Daten in der Datenbank abspeichere. Dann könnte ich am anfang der Session außer der SessionID auch noch eben dieses Secret Key setzten. Und ab diesem Zeitpunkt übergebe ich an die Funktion einfach 3 Werte nämlich noch dieses Key.
                  Dann könnte mein PHPScript überprüfen ob die ID mit dem Key übereinstimmt und die Aktion nur dann zulassen.

                  Kommentar


                  • #10
                    Zitat von DrizztOne Beitrag anzeigen
                    drsoong @hellbring Die Anwendung ist so aufgebaut das es bei jedem Produkt einen Button gibt um ein gebot abzugeben. Dieser Button war mit ajax verbunden und hat bei beim klicken die SessionID des Users und die ID des Produktes zu dem er gehört an eine Funktion übergeben die diese Daten dann weiter an ein PHP Script gegeben hat das die Daten dann verarbeitet und die Datenbank eingetragen hat. Soweit so gut. Jedoch ist es relativ leicht diese POST oder GET übergabe zu manipulieren. Man muss nur die SessionID (also die Zahl die übergeben wird) ändern und schon kann man im Namen andere User bieten.
                    Dazu müsste man aber die Session-ID der anderen User kennen.

                    Du siehst ein Problem, das gar nicht existiert.

                    Kommentar


                    • #11
                      hellbringer Die Session-ID ist der Primary der Tabelle. AutoIncrement.... :'D Vllt sollte ich wirklich das einfach abändern!

                      Kommentar


                      • #12
                        Zitat von DrizztOne Beitrag anzeigen
                        hellbringer Die Session-ID ist der Primary der Tabelle. AutoIncrement.... :'D Vllt sollte ich wirklich das einfach abändern!
                        Das ist natürlich Käse. Lass die Session-ID doch einfach von PHP generieren. Wozu da eingreifen?

                        Kommentar


                        • #13
                          hellbringer Ich brauche doch einen Bezug von dem User zu der Datenbank. Schließlich muss in der Datenbank der Bieter erfasst werden.

                          Kommentar


                          • #14
                            Zitat von DrizztOne Beitrag anzeigen
                            Ich brauche doch einen Bezug von dem User zu der Datenbank. Schließlich muss in der Datenbank der Bieter erfasst werden.
                            Dann speicher die User-ID in die Session.

                            Kommentar


                            • #15
                              Zitat von hellbringer Beitrag anzeigen

                              Dann speicher die User-ID in die Session.
                              Das ist doch genau das was ich die ganze zeit mache wo dann aber das problem entsteht das der User sie ablesen kann.
                              Habe jedoch eine Lösung. Ich gebe noch eine 2te ID an die aus 10RandomZiffern plus der eig ID am ende erzeugt wird. Quasi: id2 = randomziffern(10)+""+$id;

                              Kommentar

                              Lädt...
                              X