kostenloser Webspace werbefrei: lima-city


if bedingungen erweitern

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    Hallo Zusammen,

    Neulich hat jemand versucht meinen Server zu hacken. (abgesprochen) , dazu hat er ein Programm genutzt das automatisierte Angriffe durchzieht. Damit wollte ich testen ob es noch irgendwo möglich ist den Server mittles Javascript oder einer MysQl Injektion zu manipluieren.

    Lange rede kurzer sinn:
    Nach ein paar Tagen bemerkte ich das das Programm auch die Register inputs angegriffen hat mit diversen Javascript codes und Windows verzeichnissen von irgendwelchen .ini Datein.

    Also wollte ich gerne noch meine if Bedingungen erweitern das wenn ein User beim Registrieren HTML,PHP oder Javascript eingeht das die Regisitrierung fehlschlägt und kein eintrag in MySQl vorgenommen wird.

    Also quasi if $text == "html,ect"
    {

    echo"Try again";

    }


    Aber leider weis ich nicht wie ich das so Filtern kann hier ist mal der Register code:
    elseif($action == "register"){
    
    
    if(isset($_POST["register"])){
    
    include("connection.php");
    
    $username = mysql_real_escape_string(htmlspecialchars($_POST["regestrierung_username"]));
    $email = mysql_real_escape_string(htmlspecialchars($_POST["regestrierung_email"]));
    $passcode = mysql_real_escape_string(htmlspecialchars(hash("sha512",$_POST["regestrierung_passwort"]))); 
    $gbaktiv = "Ja";
    $emailaktiv ="Nein";
    
    $Datum = date("d.m.y");
    $Uhrzeit = date("H:i:s");
    $Date = $Datum ." - " . $Uhrzeit;
    
    $ip = getenv ("REMOTE_ADDR");
    
    
    $rechte = "User";
     
    if ($username == "" OR $email == "" OR $passcode == "")
    {
    echo "<p align='center'><font color='red'><b>Bitte füllen sie alle Felder aus!</b></font></p>
    
    ";
    
    }
    
    else
    
    {
    
    echo "<script> alert('Registrierung erfolgreich abgeschlossen!\\n Sie können sich jetzt einloggen!'); </script>";
    $eintrag = "INSERT INTO users (rechte,passwort,username,email,ip,regestrierdatum,gbaktiv,emailaktiv) VALUES ('$rechte', '$passcode', '$username', '$email', '$ip', '$Date', '$gbaktiv', '$emailaktiv')";
    $eintragen = mysql_query($eintrag);
    
    }
    
    
    
    
    }


    LG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Also bei dir irgendwelche Files hochladen über ein
    <input type="text" value="" />
    Feld wäre mir bis jetzt noch nicht bekannt gewesen. Was aber sein kann ist, dass er über unsauber geprüfte Felder Lokale Dateien geladen bzw manipuliert hat, könnte mir vorstellen, dass das mit gewissen Kenntnissen (und unsicheren Formen) möglich ist.
    JavaScript und cracken? JavaScript wird Clientseitig und nicht Serverseitig ausgeführt. (Bitte belehrt mich, wenn ich damit falsch liege, danke)

    Grüße :wave:
  4. Es kommt drauf an, wass dort mit JavaScript/HTML eingeführt wurde.

    Willst du verhindern dass ein Bot sich automatisch registriert? Captcha.
    HTML-Eingaben hast du doch bereits erfolgreich mit htmlspecialchars() weggemacht,
    ansonsten gibt es da nichts zutun.
  5. themind schrieb:
    Es kommt drauf an, wass dort mit JavaScript/HTML eingeführt wurde.

    Willst du verhindern dass ein Bot sich automatisch registriert? Captcha.
    HTML-Eingaben hast du doch bereits erfolgreich mit htmlspecialchars() weggemacht,
    ansonsten gibt es da nichts zutun.

    Hier gibt es erheblich viel zu tun!
    Zunächst sollten veraltete(deprecated) Funktionen wie $eintragen = mysql_query($eintrag); durch aktuellere Funktionen ersetzt werden. Die mysqli-Funktionen, noch besser PDO, in Verbindung mit Prepared Statement gewährleisten einen hohen Schutz vor SQL-Injektionen.
    Captchas sind für Bots nicht wirklich ein Problem.
    Interessant wäre der Eintrag(Injektion) in der/den Datenbanktabelle(n), denn dann lassen sich Rückschlüsse auf das/die schwache(n) Script(e) ziehen.
  6. Autor dieses Themas

    marvinkleinmusic

    Kostenloser Webspace von marvinkleinmusic

    marvinkleinmusic hat kostenlosen Webspace.

    Hallo!

    Ja ich filter derzeit schon alle POST und GET methoden mit mysql_real_escape_string und htmlspecialchars aus.

    Doch ich suche eine möglichkeit das er das Gefilterte nicht in die Datenbank einträgt so das ich dann nicht als username habe <a href="#">FETTE WERBUNG</a> als Beispiel genommen.


    Wie sind denn diese neure methoden aufgebaut? :)

    LG
  7. h**s

    zu mysqli (optimalerweise mit prepared statements) kann ich dir diese beschreibung empfehlen:
    http://www.phpbuddy.eu/mysqli-erweiterung-php-5.html

    du könntest auch die php Sanitize filters einsetzen:
    http://php.net/manual/en/filter.filters.sanitize.php

    oder auch z.b. per hand überprüfen ob deine einzutragenden variablen anders sind als die urspünglich übertragenen POST-Variablen:
    <?php
    	elseif($action == "register"){
    	
    		if(isset($_POST["register"])){
    		
    			include("connection.php");
    			
    			$username = mysql_real_escape_string(htmlspecialchars($_POST["regestrierung_username"]));
    			$email = mysql_real_escape_string(htmlspecialchars($_POST["regestrierung_email"]));
    			$passcode = mysql_real_escape_string(htmlspecialchars(hash("sha512",$_POST["regestrierung_passwort"]))); 
    			$gbaktiv = "Ja";
    			$emailaktiv ="Nein";
    			$Datum = date("d.m.y");
    			$Uhrzeit = date("H:i:s");
    			$Date = $Datum ." - " . $Uhrzeit;
    			$ip = getenv ("REMOTE_ADDR");
    			$rechte = "User";
    			 
    			if($username=="" or $email=="" or $passcode=="") {
    				echo "<p align='center'><font color='red'><b>Bitte füllen sie alle Felder aus!</b></font></p>";
    			}elseif($_POST["regestrierung_username"]!=$username or $_POST["regestrierung_email"]!=$email) {
    				echo "<p align='center'><font color='red'><b>Bitte benutzen Sie nur erlaubte Zeichen!</b></font></p>";
    			}else {
    				echo "<script> alert('Registrierung erfolgreich abgeschlossen!\\n Sie können sich jetzt einloggen!'); </script>";
    				$eintrag = "INSERT INTO users (rechte,passwort,username,email,ip,regestrierdatum,gbaktiv,emailaktiv) VALUES ('$rechte', '$passcode', '$username', '$email', '$ip', '$Date', '$gbaktiv', '$emailaktiv')";
    				$eintragen = mysql_query($eintrag);
    			}
    		
    		}
    	
    	}
    ?>
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!