2017-10-16 5 views
0

Bitte sagen Sie mir, wie Sie die Daten (Benutzername, E-Mail, Nachricht) korrekt an den Server von SQL-Injektionen gesendet zu verschlüsseln. Ich kann die Syntax des Datensatzes selbst nicht verstehen.verschlüsseln Sie die Daten von SQL-Injektionen

Mein PHP-Handler

session_start(); 

if (isset($_SESSION['captcha']) && $_SESSION['captcha']===$_POST['captcha']){ 
    if (isset($_POST['username']) && isset($_POST['email']) && isset($_POST['message'])){ 

     $username = $_POST['username']; 
     $email = $_POST['email']; 
     $message = $_POST['message']; 

     $db_host = "localhost"; 
     $db_user = "alekspvn"; // Логин БД 
     $db_password = "123"; // Пароль БД 
     $db_table = "book"; // Имя Таблицы БД 

    $connect_db=mysql_connect(HOST, MYSQL_USER, MYSQL_PASS) 
     or die("No connection with SQL"); 

     mysql_select_db("guests_db",$connect_db); 

     mysql_query("SET NAMES 'utf8'",$connect_db); 

     $result = mysql_query ("INSERT INTO ".$db_table." (username,email,message) VALUES ('$username','$email','$message')"); 
     echo json_encode(['success' => true, 'message' => 'Added to db']); 
    } 
} 
else { 
    echo json_encode(['error' => false, 'message' => 'Wrong captcha']); 
} 
+0

convert Passwort und Benutzernamen, E-Mails Details in md5 –

+0

Ich glaube, "SQL Injection" wird normalerweise verwendet, um auf einen Angriff zu verweisen, bei dem unerwünschter SQL-Code ausgeführt wird ein Server. Was meinst du mit "SQL Injection"? – Cowthulhu

+0

Sie sollten 'mysql_ *' nicht verwenden, sollten Sie parametrieren. 'PDO' oder' mysqli' ermöglichen parametrisierte Abfragen. – chris85

Antwort

1
+0

Sie sollten nie md5() für Passwörter verwenden. Es ist trivial umzukehren. https://secure.php.net/manual/de/faq.passwords.php#faq.passwords.fasthash –

+0

MD5 ist nicht geeignet für das Hashing von Passwörtern, PHP hat ein Passwort Hashing-Bibliothek, die viel besser ist – JimL

+0

@JimL Okk Fine I go to update –

Verwandte Themen