прямо сейчас я использую подготовленные операторы, чтобы выбрать / вставить данные в MySQL.
Хорошо, мой вопрос, который я узнал о атаках второго порядка.
Так, например, пользователь регистрируется на моем сайте.
И использует в качестве электронной почты или имя пользователя что-то вроде этого
"username '; DELETE Orders;--"
это получает вставки в таблицу MySQL
Поэтому, когда я снова получаю данные через подготовленное утверждение, и снова вставляю / делаю что-то с ним в подготовленном утверждении.
Я был бы в безопасности, потому что я использую подготовленные заявления?
Пример:
Get Bad Data:
$sql = "SELECT * FROM USERS where USERID = 1";
...
$stmt->bind_result($username);
...
Next Query:
INSERT or do other things:
$SQL = "SELECT * FROM email WHERE USERNAME = ?";
....
$stmt->bind_param('s', $username);
...
После моих размышлений я буду в безопасности, если я сделаю это так? Или возможна утечка?
Но я был бы атакован, если бы сделал это:
$sql = "SELECT * FROM email WHERE username = $username";
$stmt = $mysqli->prepare($sql);
$stmt->execute();
Спасибо: -)