Sicherheit Problem

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

  • Sicherheit Problem

    ich habe ein Problem zum Thema Sicherheit und zwar arbeite ich an einen Online Game.

    Leider habe ich noch nicht so viel Erfahrung in Sache PHP usw.
    (Ich weiß diese Projekt ist normaler Weiser für leute die experten in sache PHP sind.)

    Aber ich möchte es versuchen bitte helft mir auch wenn ich noch nicht so fit in diesen Bereich bin.

    Also ich möchte wenn von einer function durch ein link (in dem mit ein Get an gehangen ist) in eine andere function springen.
    z.b action=reisen&' . $nr . '

    Das Problem: Wie kann ich verhindern das ein Spieler die $nr in der URL einfach ändert und damit etwas schaft was er eigentlich nicht dürfte?

    Wie kann man das abfrage ?

  • #2
    solche parameter gehören nicht in die url, sondern in eine session-variable.

    was ist eigentlich deine muttersprache?

    Kommentar


    • #3
      Re: Sicherheit Problem

      Original geschrieben von Linux5
      ... und zwar arbeite ich an einen Online Game.

      Leider habe ich noch nicht so viel Erfahrung in Sache PHP usw.
      OffTopic:
      da bist du nicht der einzige.
      scnr

      Kommentar


      • #4
        Das Problem: Wie kann ich verhindern das ein Spieler die $nr in der URL einfach ändert und damit etwas schaft was er eigentlich nicht dürfte?
        Gar nicht. Der Spieler hat schließlich das recht, die NR zu ändern. Aber es spricht nichts dagegen, den Wert der Variablen vor der Verarbeitung zu überprüfen.

        "Never trust incomeing data!"

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          "Never trust incomeing data!"
          Traue niemandem. Validiere allen Input oder stirb.

          Kommentar


          • #6
            Original geschrieben von TobiaZ
            Aber es spricht nichts dagegen, den Wert der Variablen vor der Verarbeitung zu überprüfen.
            hast du vielleicht ein Beispiel für mich?

            Kommentar


            • #7
              Original geschrieben von Linux5
              hast du vielleicht ein Beispiel für mich?
              Fürs Überprüfen kann Dir keiner ein Beispiel geben, denn was sein darf und was nicht, weiß der Architekt der Software allein.
              Für die sichere Übertragung von Daten am User vorbei beschäftige Dich mit dem Thema Sessions.

              Kommentar


              • #8
                Ja, *verständnislos zuck*

                PHP-Code:
                $types = array('haus','auto','tier');

                if!isset(
                $_GET['type']) || !in_array($_GET['type'],$types)
                die(
                'ungültige Anfrage'); 

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  Ja, *verständnislos zuck*

                  PHP-Code:
                  $types = array('haus','auto','tier');

                  if!isset(
                  $_GET['type']) || !in_array($_GET['type'],$types)
                  die(
                  'ungültige Anfrage'); 
                  ok erst mal danke für das beispiel.
                  Das habe ich verstanden.

                  Um noch mal zu verdeutlichen was ich genau möchte mache ich mal ein Beispiel:
                  ich möchte das ein Spieler wenn er auf den folgenden link klickt:

                  echo '<A HREF="' . $PHP_SELF . '?aktion=spieler_infos&nr=' . $row['nr'] . '">

                  z.b $row['nr'] = 5
                  auch genau da hin kommt . (aktion=spieler_infos&nr=5; )
                  Das er auf keinen Fall z.b zur (aktion=spieler_infos&nr=6; ) gelangen kann.

                  Kann mir da einer eine Überprüfung Vorschlagen?

                  PS: Mit SESSIONS kenne ich mich auch aus.
                  Das Problem ist nur das es langsam zu viele werden.

                  (Das heißt nicht das ich keine neuen verwenden werde, wenn ihr meint das ich es damit machen sollte.)

                  Kommentar


                  • #10
                    Du könntest uns verraten was auf der besagten Seite stehen soll, wenn das die ID des Spielers ist - die sollte doch in der Session stehen und nicht in irgendeiner URL.
                    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                    Kommentar


                    • #11
                      Hi
                      PS: Mit SESSIONS kenne ich mich auch aus.
                      Das Problem ist nur das es langsam zu viele werden.
                      Was soll das denn heissen, zu viele? Bist Du Dir sicher, dass Du Dich mit Sessions auskennst?
                      Ansonsten s. tontechniker.

                      LG

                      Kommentar


                      • #12
                        Original geschrieben von tontechniker
                        Du könntest uns verraten was auf der besagten Seite stehen soll, wenn das die ID des Spielers ist - die sollte doch in der Session stehen und nicht in irgendeiner URL.
                        Ja ok das ist jetzt nur ein Beispiel es soll nicht die id von einen spieler sein.

                        ok ich mache mal ein anderes Beispiel:

                        echo '<A HREF="' . $PHP_SELF . '?aktion=land_besuchen&land=' . $row['land'] . '">

                        z.b $row['land'] = 'Spanien'

                        (aktion=land_besuchen&land='Spanien' )

                        Er/Sie soll dann nicht nach z.b (aktion=land_besuchen&land='Frankreich') gelangen können.


                        Original geschrieben von kuddeldaddeldu
                        HiWas soll das denn heissen, zu viele? Bist Du Dir sicher, dass Du Dich mit Sessions auskennst?
                        Ansonsten s. tontechniker.

                        LG
                        Ja ich bin mir sicher.
                        Ich weiß das Sessions in allen Funktionen funktionieren.
                        (nicht so wie Variablen die nur in der Funktion wo sie angelegt wurden funktionieren.)

                        Ich habe nur bei mir alle Felder aus einer meiner Tabellen in Sessions gepackt, deshalb meine ich das es zu viele werden könnten.
                        Damit wird ja auch der Server langsamer. Oder nicht?

                        Kommentar


                        • #13
                          Und wo steht definiert, in welche Länder der Jenige darf oder in welche er nicht darf?

                          Kommentar


                          • #14
                            Ich habe nur bei mir alle Felder aus einer meiner Tabellen in Sessions gepackt, deshalb meine ich das es zu viele werden könnten.
                            Damit wird ja auch der Server langsamer. Oder nicht?
                            Theoretisch ja, aber nicht wenn du das ganze sinnvoll einsetzt.

                            Kommentar


                            • #15
                              @Linux5: Ich würde dir empfehlen, dir Grundlegende Gedanken über das Sicherheitskonzept zu machen.

                              Welcher Benutzer darf was sehen, und was nicht?
                              Wie kann ich das dann in PHP-Vertäglichen Regeln formulieren?

                              Kommentar

                              Lädt...
                              X