tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
Seite 3 von 5 Erste 1 2 3 4 5 Letzte
  1. #31
    Benutzerbild von Felix Jacobi
    Felix Jacobi Felix Jacobi ist offline do ut des Felix Jacobi hat die Renommee-Anzeige deaktiviert
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    4.965
    Blog-Einträge
    65
    Da es sich eindeutig um eine Zahl handelt (bzw. handeln soll) kannst du statt:

    PHP-Code:
    htmlspecialchars(mysql_real_escape_string($get)) 
    auch

    PHP-Code:
    intval($get
    benutzen.

    Sollten HTML Zeichen drin sein, würde ja deine erste Prüfung bereits false melden, da es dann kein numerischer String mehr ist.
    KIDS Kinderbetreuungsdienst
    Xing

    They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.
    Benjamin Franklin

  2. PHP 5 / MySQL 5 Seminar (22 Stunden Video-Training)

    Preis: früher: 39,95€ - jetzt nur: 7,99€
    Innerhalb Deutschlands versandkostenfrei!

    PHP 5 / MySQL 5 Lernkurs – 22 Stunden Video-Training auf DVD
    - PHP-, MySQL- und PHPMyAdmin-Grundlagen
    - Datenbankprogrammierung, objektorientierte Programmierung
    - Geeignet für Windows XP und Windows Vista


    Hier geht es zum Angebot

    Über 1.000 weitere IT-Bücher zum Sonderpreis lieferbar!


  3. #32
    KD3 KD3 ist offline KD3 befindet sich auf einem aufstrebenden Ast
    Registriert seit
    Apr 2007
    Beiträge
    453
    Zitat Zitat von Felix Jacobi Beitrag anzeigen
    Da es sich eindeutig um eine Zahl handelt (bzw. handeln soll) kannst du statt:

    PHP-Code:
    htmlspecialchars(mysql_real_escape_string($get)) 
    auch

    PHP-Code:
    intval($get
    benutzen.

    Sollten HTML Zeichen drin sein, würde ja deine erste Prüfung bereits false melden, da es dann kein numerischer String mehr ist.
    hmm ok danke, aber auch wenn es ../../../etc/passwd als getvariable eingegeben wäre?

  4. #33
    Benutzerbild von Felix Jacobi
    Felix Jacobi Felix Jacobi ist offline do ut des Felix Jacobi hat die Renommee-Anzeige deaktiviert
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    4.965
    Blog-Einträge
    65
    Wenn dieser Inhalt bei deinem Script reingeht, meldet er einen Fehler, da es kein numerische r String ist.

    Selbst wenn er durchkommen würde, würde intval() daraus eine 0 machen.

    Wenn es jetzt um andere Variablen geht (z. B. einen include) würde ich diese auch nur in einem Switch() benutzen. So kannst du vorgegebene Fälle eintragen, alle anderen werden auf default weitergeleitetet.

    Ansonsten sollte der PHP Safe Mode bei solchen Pfäden eingreifen und eben genau soetwas verhindern.
    KIDS Kinderbetreuungsdienst
    Xing

    They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.
    Benjamin Franklin

  5. #34
    KD3 KD3 ist offline KD3 befindet sich auf einem aufstrebenden Ast
    Registriert seit
    Apr 2007
    Beiträge
    453
    ok danke nochmal für die Antworten Flex Jacobi

  6. #35
    Benutzerbild von Felix Jacobi
    Felix Jacobi Felix Jacobi ist offline do ut des Felix Jacobi hat die Renommee-Anzeige deaktiviert
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    4.965
    Blog-Einträge
    65
    Um den Thread mal wieder ein wenig zu beleben:

    addslashes versus mysql_real_escape_string
    Chris Shiflett über die Probleme addslashes() als Abwehr für MySQL Injektionen (auch wenn das Szenario etwas beschränkt ist)

    Und ein kurzer Blogeintrag über ein MemoryLeak in PHP

    Memory Leaks With Objects in PHP 5
    KIDS Kinderbetreuungsdienst
    Xing

    They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.
    Benjamin Franklin

  7. #36
    bn bn ist offline Mitglied Brokat bn ist ein sehr geschätzer Mensch
    Registriert seit
    Oct 2002
    Ort
    Berlin
    Beiträge
    379
    Danke für den Beitrag bzgl. des Memory Leaks - sehr interessant.
    Eine Lösung hätte ich schon, aber sie passt nicht zum Problem.

  8. #37
    nickiquickie nickiquickie ist offline Mitglied Bronze nickiquickie hat eine blütenweiße Weste
    Registriert seit
    Jul 2005
    Beiträge
    36
    Hallo,

    ich habe mal eine Frage:
    Und zwar verwende ich vor dem Einfuegen einer Variable in die Query einer DB-Abfrage die Funktion strip_tags()
    PHP-Code:
    $var strip_tags($_GET['var']); 
    Ist das ein ausreichender Schutz vor SQL-Injections?
    Oder ist es viel besser eine solche Funktion (siehe unten), wie vorher in diesem Thread schon erwähnt, zu nutzen:
    PHP-Code:
    // Variablen absichern
    function quote_smart($value)
    {
       
    // Ueberfluessige Maskierungen entfernen
       
    if (get_magic_quotes_gpc()) {
           
    $value stripslashes($value);
       }
       
    // In Anfuehrungszeichen setzen, sofern keine Zahl
       // oder ein numerischer String vorliegt
       
    if (!is_numeric($value)) {
           
    $value "'" mysql_real_escape_string($value) . "'";
       }
       return 
    $value;

    Wahrscheinlich ist es schon besser diese Funktion zu nutzen.
    Oder reicht eigentlich die strip_tags()-Funktion aus um einen vernuenftigen Schutz zu schaffen?
    Danke schonmal!

  9. #38
    Benutzerbild von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen
    tutorials.de Moderator
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.310
    Blog-Einträge
    231
    strip_tags() bietet keinerlei Schutz vor SQL-Injections. Vor XSS (Cross-Site-Scripting) schon eher, aber nicht vor SQL-Injections. Dafuer gibt es Funktionen wie z.B. mysql_real_escape_string().
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  10. #39
    nickiquickie nickiquickie ist offline Mitglied Bronze nickiquickie hat eine blütenweiße Weste
    Registriert seit
    Jul 2005
    Beiträge
    36
    Zitat Zitat von Dennis Wronka Beitrag anzeigen
    strip_tags() bietet keinerlei Schutz vor SQL-Injections. Vor XSS (Cross-Site-Scripting) schon eher, aber nicht vor SQL-Injections. Dafuer gibt es Funktionen wie z.B. mysql_real_escape_string().
    Oh oh...
    Gut, dass ich nachgefragt habe. Werde dann mal die oben gepostete Funktion in meine Scripte einbauen.

    Dieser Thread ist uebrigens eine super Sache!

  11. #40
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.506
    Blog-Einträge
    10
    Ich möchte noch einmal darauf hinweisen, dass dieser Thread nicht für Fragen sondern für Antworten gedacht ist.
    Zitat Zitat von Dennis Wronka Beitrag anzeigen
    Wofuer ist dieser Thread nicht gedacht:
    • Fragen ob ein Script sicher ist
      Wir wollen hier eher allgemein zum Thema Sicherheit in PHP diskutieren und nicht auf spezielle Scripts eingehen. Natuerlich wollen wir hier auch Code-Beispiele sehen, aber eben nicht, dass jemand sein Script (oder einen Ausschnitt) postet und fragt ob der Code sicher ist.
    Markus Wulftange

  12. #41
    nickiquickie nickiquickie ist offline Mitglied Bronze nickiquickie hat eine blütenweiße Weste
    Registriert seit
    Jul 2005
    Beiträge
    36
    Zitat Zitat von Gumbo Beitrag anzeigen
    Ich möchte noch einmal darauf hinweisen, dass dieser Thread nicht für Fragen sondern für Antworten gedacht ist.
    Ich denke aber, dass ohne Fragen auch keine Antworten gegeben werden können.
    Schließlich soll der Thread ja helfen auf dem Gebiet der Sicherheit etwas dazu zu lernen. Ich habe ja auch nicht mein Script gepostet, sondern eine recht grundelegende Frage zu zwei Funktionen gestellt.
    Aber das nächste Mal öffne ich auch gern einen eigenen Thread dafür.

  13. #42
    versuch13 versuch13 ist offline Mitglied Brilliant versuch13 hat eine blütenweiße Weste
    Registriert seit
    Feb 2005
    Beiträge
    953
    Zwar nicht speziell auf PHP bezogen, dennoch vllt für den ein oder anderen interessant, heute bei http://entwickler-press.de/ ein kosenloses EBook mit dem Thema "Sicherere Webanwendungen" downloadbar.

  14. #43
    S-lord S-lord ist offline Mitglied Silber S-lord hat eine blütenweiße Weste
    Registriert seit
    Aug 2007
    Beiträge
    74
    http://koandagfx.de/index.php?action...20GUT%3C/h1%3E

    Das ist meine Seite...
    Und den Link hat ein User gepostet...
    Wie hat er das gemacht?
    Auzug aus der Datei...
    PHP-Code:
    if(mysql_num_rows($query))
    {
        while(
    $row mysql_fetch_assoc($query)) {
            echo 
    "<div class='div_title' align='center'>" $row['header'] . "</div>";
            echo 
    "<div class='div_content' align='center'>" $row['content'] . "<br /><br />geschrieben am: " $row['date'] . "</div>";
            }
    } else {
        die (
    "Keine Daten in der Tabelle.");


  15. #44
    Benutzerbild von Felix Jacobi
    Felix Jacobi Felix Jacobi ist offline do ut des Felix Jacobi hat die Renommee-Anzeige deaktiviert
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    4.965
    Blog-Einträge
    65
    Die Sicherheitslücke liegt in dem Bereich, wo die $_GET Variable "action" verarbeitet wird. Diesen Auszug bräuchten wir.
    KIDS Kinderbetreuungsdienst
    Xing

    They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety.
    Benjamin Franklin

  16. #45
    S-lord S-lord ist offline Mitglied Silber S-lord hat eine blütenweiße Weste
    Registriert seit
    Aug 2007
    Beiträge
    74
    PHP-Code:
    switch($_GET['action']){ 
    PHP-Code:
    default: require("inc/news.php"); break;

    Mh stimmt sieht recht unsicher aus.
    Aber was kann ich da machen?
    Wenn ich mich recht entsinne gibts eine Funktion, komme aber nicht drauf.

Ähnliche Themen

  1. PHP-Bild sicherheit?
    Von Sturm im Forum PHP
    Antworten: 4
    Letzter Beitrag: 27.05.07, 12:03
  2. Antworten: 3
    Letzter Beitrag: 10.09.06, 13:29
  3. Mehr Sicherheit fuer PHP
    Von Dennis Wronka im Forum Security (Viren, Trojaner, Spam)
    Antworten: 0
    Letzter Beitrag: 04.11.05, 02:55
  4. Sicherheit / SSL / Ordnerschutz / PHP
    Von liquidbeats im Forum Hosting & Webserver
    Antworten: 0
    Letzter Beitrag: 31.08.05, 14:20
  5. Antworten: 8
    Letzter Beitrag: 02.06.03, 19:41

Lesezeichen

Lesezeichen