Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Allgemeine Frage

Einklappen

Neue Werbung 2019

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

  • #16
    lool

    wie meinst du white list array zb in dieser liste ist zb... view=city,street,bla
    und dann überprüfe ich ob dort city bla oder street ist wenn jemand eingibt buffpäng dann wird exit gemacht

    wie ist dann das mit dem pfad wa du gesagt hast? ist das somit auch geschützt weis nicht genau was du damit meintest

    Kommentar


    • #17
      Du weißt von vornherein, welche Pfade gültig sind. Diese speicherst du in einem Array. Dann prüfst du, ob der von User übergebene Pfad in diesem Array vorhanden (also gültig ist). Ist er es nicht, brichst du rigoros ab und zeigst dem Hacker eine lange Nase.
      Um evtl. Vertipper durch unbedarfte User nicht so enden zu lassen, würde ich aber eine Meldung "Falscher Parameter" ausgeben.
      Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

      Kommentar


      • #18
        grins

        was meinst du mit pfade wie würde denn bei dir so eine white lis aussehen?

        Kommentar


        • #19
          Nehmen wir das Beispiel von nikosch:
          PHP-Code:
          include ('pfad/' $_GET['view'] . '.php'); 
          Das sollte man jetzt sicherer gestalten.
          Zuerst erstellt man ein Array mit allen gültigen Dateinamen (in diesem Falle ohne Endung, da die ja nicht in $_GET['view'] enthalten ist) und prüfen die Eingabe dann gegen dieses.
          PHP-Code:
          $valid_paths = array (
              
          'index',
              
          'imprint',
              
          'login',
              
          'news'
          );

          if (
          in_array($_GET['view'], $valid_paths) === false) {
              exit(
          'Falscher Parameter!');
          }

          include 
          'pfad/' $_GET['view'] . '.php'
          Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

          Kommentar


          • #20
            ach so danke für das beispiel

            naja pfad hab ich bisher noch nicht gebraucht da alle dateien im selber verzeichnis waren deshalb etwas verwirrt.

            Wäre es nicht auch noch sinnvoller beim $_GET das real escape string zuzufügen oder ist das komplett überflüssig?

            mal ne andere frage wieso macht ihr bei der if abfrage nie

            else
            {
            }

            Hab das jetzt schon mehrmals gesehen dass die klammern und der befehl else gar nicht geschrieben werden.

            Kommentar


            • #21
              mysql_real_escape_string() ist hier komplett überflüssig, da es nix mit Datenbanken zu tun hat.

              Den else-Zweig muss man nicht schreiben, wenn man ihn nicht braucht und da der Code ja komplett abgebrochen wird, wenn die if-Bedingung wahr ist, besteht auch keine Gefahr, dass der Code nach dem if ausgeführt wird, wenn er es nicht soll.
              Wenn du hingegen nicht abbrichst, sondern weiter machst, solltest du das include natürlich in ein else setzen.
              Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

              Kommentar


              • #22
                ich hab irgendwo gelesen das man else zweige immer machen sollte zwecks beserer verständlihkeit und weils schöner(besser) programmiert ist

                Kommentar


                • #23
                  Halte ich für Quatsch.
                  Ich glaube, bei phpfriend.de gab es mal eine lange Diskussion darüber. Aber jeder normale Mensch, der halbwegs Ahnung vom Programmieren hat, versteht ifs auch ohne else. Außerdem schafft das nur einen Overhead an Quellcode. Den Parser interessiert das nicht unbedingt, aber ich als Programmierer würde die Krise bekommen, wenn der Quelltext mit leeren elses vollgemüllt wäre. Fehlt nur noch, dass man alle möglichen elseifs hinschreiben muss.
                  Ich halte es nur für sinnvoll, wenn man eine Art Todo verdeutlichen möchte. Also z.B.
                  PHP-Code:
                  if ($x == $y) {
                      
                  // do something
                  } else {
                     
                  // more code is coming soon

                  Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                  Kommentar


                  • #24
                    nein klar wenn nix bei else komt dann schreibt man die nicht ich meine natürlich nur wenn bei else was stehen soll so wie dein include was ja im else teil steht. ob man nicht da besser die klammern und else macht damits verständlicher wird... das hab ich mal irgendwo gelesen

                    ich habs jetzt verstanden dass das der else teil ist aber denke ein absoluter neuling wüsste nicht dass das der else teil ist... mal angenommen darunter kommen noch mehr sachen hin müsste man das mit den klammern auch wieder machen weil sonst weis der parser nicht wann der else teil fertig ist und würde bis ans ende des scriptes oder bis zur nächste if anweisung gehen nehm ich mal an

                    Kommentar


                    • #25
                      In diesem Fall ist das ja gewollt, dass das Skript bis zum Ende durchläuft. Auch alles danach soll ausgeführt werden. Nur wenn das if erfüllt ist, wird eben vorzeitig abgebrochen.
                      Wenn man den anderen Krams danach in das else setzen würde, müsste der gesamte folgende Code des Programms im else stehen und das würde die Übersichtlichkeit eher verschlechtern als fördern.
                      Du darfst das in diesem Fall nicht verstehen als "Tue dies oder sonst das" sondern als "Durchlaufe das Programm und brich evtl. zwischendurch ab".
                      Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                      Kommentar


                      • #26
                        Oh bitte nicht wieder diese Diskussion!! Kannst ja dort nachlesen: Schaden leere else-Zweige der Performance? - phpfriend.de

                        Und was heißt hier:
                        Aber gib ihm bitte nich den Tipp, eine GET-Variable in in einem Include zu benutzen...
                        Nehmen wir das Beispiel von nikosch:
                        Ich hab doch klar und deutlich geschrieben: "Hüten solltest Du Dich vor Konstrukten wie dem" und habe sogar ne Erklärung hinterhergeschoben.
                        [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


                        • #27
                          Zitat von nikosch77-new Beitrag anzeigen
                          Oh bitte nicht wieder diese Diskussion!! Kannst ja dort nachlesen: Schaden leere else-Zweige der Performance? - phpfriend.de
                          Wie schon gesagt geht es ja nicht um leere else zweige sondern um gefüllte else zweige sprich

                          PHP-Code:
                          if (view == bla)
                          {
                          echo:
                          "bla";
                          }
                          echo:
                          "blabla"
                          ist dasselbe wie

                          PHP-Code:
                          if (view == bla)
                          {
                          echo:
                          "bla";
                          }
                          else
                          {
                          echo:
                          "blabla";

                          Dies meinte ich

                          Kommentar


                          • #28
                            @nikosch: sorry, habe ich überlesen. Dachte dann, es sollte ein schnelles Beispiel sein, bei dem noch nicht viel Wert auf den Rest gelegt wird, nur um das Prinzip zu verdeutlichen. Irgendwie ist der Tag heute aber auch verhext. Ich sollte für heute Schluss machen.

                            @robydog: nein, es ist nicht zwingend dasselbe, nur in diesem Falle. Außerdem solltest du die Doppelpunkte durch Leerzeichen ersetzen, sonst klappt es nicht.
                            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                            Kommentar


                            • #29
                              lol ja klar ist wohl wirklich verhext der tag

                              Kommentar


                              • #30
                                So, bevor ich hier nur noch Mist schreibe, lasse ich es lieber, schlafe mich aus und überlasse nikosch das Feld. Manmanman!
                                Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                                Kommentar

                                Lädt...
                                X