2014-12-15 3 views
-3

Я просто подумал о безопасности моего php-скрипта и много читал о sql-инъекциях. Теперь у меня есть вопрос, чтобы спасти меня от него. Правильно, когда мой скрипт не принимает символы, такие как ', ; или «? Или я просто поймаю это из своего приложения для Android? Так что я просто вижу проблему в этих персонажах. Правильно ли я? Или нет, я не вижу? Если не то, что было бы самым простым способом она безопасна?Предотвращение SQL-инъекций с if/else

+2

Пожалуйста, будьте более конкретным. Чтобы предотвратить инъекции sql, используйте подготовленные заявления –

+0

Я не спрашиваю конкретно, КАК я его предотвращаю. Я просто спрашиваю, могу ли я достичь того же решения с моей идеей. Поэтому не принимайте символы типа «и» ... –

ответ

1

никогда не проверяют строку для инъекций, все, что вам нужно сделать, это не сцепить переменной.

  1. Используйте Подготовленные выражения.

«пример» в Mysqli экстракт из http://www.wikihow.com/Prevent-SQL-Injection-in-PHP

$name = $_GET['username']; 

if ($stmt = $mysqli->prepare("SELECT password FROM tbl_users WHERE name=?")) { 

    // Bind a variable to the parameter as a string. 
    $stmt->bind_param("s", $name); 

    // Execute the statement. 
    $stmt->execute(); 

    // Get the variables from the query. 
    $stmt->bind_result($pass); 

    // Fetch the data. 
    $stmt->fetch(); 

    // Display the data. 
    printf("Password for user %s is %s\n", $name, $pass); 

    // Close the prepared statement. 
    $stmt->close(); 

} 

чтения: http://www.veracode.com/security/sql-injection


, если ваша идея проверить переменные "или" или;, это тяжелая бесконечная работа, и в конце концов может решить с помощью PDO Постулаты.

Смежные вопросы