Meinung zu Script

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

  • Meinung zu Script

    Hallo liebe Forumgemeinde!

    Ich habe mir gerade ein Script für eine Fotogalerie erstellt.
    Ein Teil zum Löschen von Verzeichnissen habe ich "geklaut",
    sonst ist alles aus meiner "Feder".

    Jetzt habe ich gelesen, das man dabei sehr viele Sicherheitslücken
    beachten muss und sein Script, um eventuellen Missbrauch zu vermeiden,
    lieber erstmal zur Einsicht z.B. hier (ich habe den gleichen Thread noch im selfhtml-Forum hinterlassen) posten sollte,
    bevor man es auf die Öffentlichkeit "los lässt".

    Also mein Script ist ca. 26kb gross und bevor ich es poste, wollte ich
    euch erstmal fragen ob das ok ist, oder ich nicht lieber eine Datei
    zum download anbieten sollte.? Spam und so.

    Bevor ich Fehler mache, habe ich mich also für diese Variante entschieden.

    Das Script wird über die $_GET Variable $titel = Fotos;
    in einer Seite eingebunden (z.B. a href="link.php?titel=Fotos
    und if($_GET[titel] = "Fotos") include("fotos.php") und geht
    davon aus, dass es in irgend einem domainname.de/VERZEICHNISS/
    liegt, welches die chmod Rechte 777 über FTP bekommen hat,
    die CSS Datei wird wie bekannt verlinkt.
    Es sollte auch funktionieren wenn man ein Unterverzeichniss
    benutzt, solange man den korrekten Pfad zum übergeordneten Verzeichnis
    der Scriptdatei bei der Installation angibt.

    Wer also das Interesse hat, meinen Code nach Sicherheitslücken
    und sonstigen Fehlern abzusuchen und mir Verbesserungsvorschläge
    machen kann, dem wär ich sehr dankbar.

    Falls doch jemand den Code gepostet haben möchte, erfüll ich den Wunsch gern.

    Danke und Grüße,
    Bandylegs
    Angehängte Dateien
    und nun zu etwas völlig anderem

  • #2
    eieiei-.....


    also:
    1. whitespaces sind echt nicht schlimm.. niemand wird dich dafür steinigen und sie helfen dem unbescholtenen leser enorm!!
    2. auch für schließende klammer (}) eine eigene zeile hilft enorm wenn man wissen will wo der block aufhört!
    3. gewollt mehrzeilige strings sind irgendwie immer unübersichtlich...
    4. riesige if-elseif blöcke sind ja schön und funktionieren auch.. aber: ein simples switch und mehrere funktionen sind a) kein beinbruch beim programmieren b) überhaupt kein performanceverlust und c) lesbarer

    soo das wars zur form...
    jetzt zum code:
    PHP-Code:
    $aalesweg rec_rmdir('../pics');
            switch(
    $res){
                case 
    0:                
                break;
                case -
    1:             
                break;
                case -
    2:             
                break;
                case -
    3:             
                break;
                default:             
                break;} 
    ??? ja watt wird denn da im switch-block getestet? auch wenn der code nicht von dir ist... das heißt nicht das du ihn nicht lesen und ohne verstand einsetzen musst.
    usw...

    und zur sicherheit:
    also wenn das script an sich läuft gibt es grundsätzlich nur EIN sicherheitsloch: die benutzereingabe! und die sollte man prüfen.

    und noch eins: wenn du schon mit javascript arbeitest (javascript:history.back()) dann kannst du die überprüfung der vollständigkeit der formulare auch gleich in js machen.
    blllubb

    Kommentar


    • #3
      Optimierungstipps

      Hallo frodenius!

      Danke für deine Anwort!

      1. Wo sollte ich denn Leerzeichen einfügen? (klingt vielleicht dumm, mein ich aber ernst)

      2. 3. 4. Gut, an der Übersichtlichkeit des Codes lässt sich arbeiten,
      da muss ich dir Recht geben.

      Auch Zeilen wie

      PHP-Code:
      $var 1;
      function(
      $var); 
      könnte man abkürzen. Daran kann ich sicher noch arbeiten.

      Hm, also nur ein Sicherheitsloch - die Benutzereingabe.
      Die habe ich soweit unter Kontrolle, denk ich - oder?
      Der Text wird mit htmlspecialchars() und addslashes() formatiert
      und die Bilder auf Größe und richtigen Dateityp überprüft.
      Das sollte es im Großen gewesen sein, oder?

      Und noch eins: Tut mir leid, ich hab von JavaScript und Java so viel Ahnung wie ne Kuh vom Socken stricken. Einen Backlink, ein Popup oder ein onmouseover krieg ich vielleicht noch hin, da hörts aber auch schon auf ;-)

      Danke nochmal für deine Antwort und das du dir die Arbeit gemacht hast.
      Ich hätte gedacht es hagelt schlimmere Kritik ;-)

      Ist das Script denn gut genug das man es als Tutorial verwenden
      könnte?

      Grüße, Bandylegs
      und nun zu etwas völlig anderem

      Kommentar


      • #4
        Re: Optimierungstipps

        Original geschrieben von Bandylegs
        Gut, an der Übersichtlichkeit des Codes lässt sich arbeiten,
        da muss ich dir Recht geben.
        das ist wohl wahr - habe den code nur kurz überflogen, aber er ist extrem unübersichtlich. besonders nervend, ist der ständige wechsel von php- und html-modus.

        dann könnstest du mal das error_reporting auf E_ALL setzen, du greifst bei den arrays immer per konstante zu (strings in anführungszeichen setzen):
        falsch: $_POST[login]
        richtig: $_POST['login'] oder $login = $_POST["login"];

        Kommentar


        • #5
          Hallo 3DMax!

          Danke!
          Ja, das mit den Arrays ist eine dumme Angewohnheit. Tippfaul?
          Ich glaub nicht, wenns um die Arrays der DB-Ausgabe geht mach ichs ja richtig.
          Wie gesagt, dumme Angewohnheit.
          Dadurch gibt es meines Wissens nach aber auch keine Nachteile, oder doch?

          Das mit dem Switch zwischen PHP und HTML mach ich deswegen,
          weil der Parser ja kein HTML parsen brauch.
          Im Prinzip hätt ich damit noch weiter gehen können und alles im HTML-Modus auszugeben.
          Inkl. Fehlerausgaben etc.

          Danke für deine Arbeit!

          Grüße, Bandylegs
          und nun zu etwas völlig anderem

          Kommentar


          • #6
            Original geschrieben von Bandylegs
            Dadurch gibt es meines Wissens nach aber auch keine Nachteile, oder doch?
            im grunde nicht, es sei denn, du hast eine konstante mit zufällig dem selben namen definiert.

            nachteile sehe ich indirekt, da du das error_reporting nicht auf E_ALL hast, sonst würdest du von den notizen erschlagen werden und somit auch keine anderer fehler (tippfehler bei variablennamen o.ä) erkennen kannst.

            Kommentar


            • #7
              Hallo,

              habe das grade mal überflogen:


              Meine Tipps:

              keine Ausgabe bevor der Script Fertig ist.
              Weil hinterher will man z.B. was am headerdrehen und schon hat man das Problem.

              Was bewirkt das:
              if(!mysql_query("SELECT * FROM fotogalerie")){

              stell dir mal vor da sind ganz viele drin. Wenn du nur prüfen willst ob die abfrage "geht" dan mach doch ein Limit rein, weil die ausgabe/Resource verarbeitest du ja auch nicht.

              $_POST[login]
              Hatten wir ja schon. login ist keine Konstante und muss von ' oder " umschlossen werden (besser ')

              echo ();
              benötigt nicht umbedingt die ()

              $SCRIPT_NAME
              Register Globals!?!?! $GLOBALS oder $_SERVER

              HTML noch nicht genaz valide.
              Viele kleine Fehler.

              Und in sachen übersichtlichkeit kann man auch noch einiges machen :-)

              Beste Grüße,
              Tim

              Kommentar


              • #8
                Hallo Spyker!

                Danke für deine Meinung.

                Das mit dem LIMIT ist ein guter Vorrschlag, danke!

                Nun, wenn ich HTML ausgeben will, macht sich echo mit Klammern imho besser.

                An Register Globals hatte ich da gar nicht gedacht. Ei ei ei.
                Aber das zu ändern dürfte ja das geringste Problem sein.

                Wo ist denn das HTML nicht valide?
                Hab eigentlich versucht durchgängig valides XHTML zu schreiben.

                Und was sind die "vielen kleinen Fehler"?
                Damit würdest du mir auch weiter helfen.

                Grüße, Bandylegs
                und nun zu etwas völlig anderem

                Kommentar


                • #9
                  mit vielen kleinen Fehlern....

                  das alles recht heufig auftreffen.

                  XHTMl Fehler habe ich nur beim überfliegen endeckt.

                  einmal habe ich ein <input .... > anstatt <input ... /> gesehen
                  und die ganzen Links sind immer url?var=1&var2=2 anstatt url?var=1& amp;var2=2 (leerzeichen wegdenken :-))

                  Beste Grüße,
                  Tim

                  Kommentar


                  • #10
                    OffTopic:
                    Kleiner Trick fürs Ampersand im Forum: &amp;amp;amp; schreiben. Da wird dann &amp;amp; draus.
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar

                    Lädt...
                    X