Безопасная запись любых POST в базу данных

Статус
В этой теме нельзя размещать новые ответы.

Serafimer

Создатель
Заблокирован
Регистрация
24 Апр 2014
Сообщения
36
Реакции
17
  • Автор темы
  • Заблокирован
  • #1
Доброго времени суток! Так как новичок, то задался вопросом безопасного хранения пользовательских данных. Так как же всё-таки защититься от SQL инъекций? Пока в голову приходит только хранение в base64 формате. То есть перед записью в базу данных конвертировать данные в base64, а при выводе раскодировывать. Достаточно ли это безопасно? Поиск по базе данных не требуется.
 
  • Автор темы
  • Заблокирован
  • #3
Чтобы защитится, нужно фильтровать пользовательские данные перед добавлением а БД, например вот так, если вы используете PDO

Код:
$item = $pdo->prepare('SELECT * FROM item WHERE title = :title');
$item->execute(array('title'=> $title));

И если вы используете RAW запросы, то можно и нужно использовать `mysql_real_escape_string` или `mysqli:escape_string`.

Вот и все.
 
  • Автор темы
  • Заблокирован
  • #6
И если вы используете RAW запросы, то можно и нужно использовать `mysql_real_escape_string` или `mysqli:escape_string`.
Конкретно меня интересуют именно RAW-запросы, содержащие всевозможные символы и т.п.. При этом необходимо сохранить ихнюю целостность, а Для просмотра ссылки Войди или Зарегистрируйся похоже тупо экранирует опасные символы. Что же я в итоге получу на выходе? Да, я ламер в этом плане. И ещё вопрос - будет ли любая строка, кодированная в Для просмотра ссылки Войди или Зарегистрируйся() 100% безопасной для тупого INSERT INTO `texts` VALUES ('encoded_string'); ?
 
Конкретно меня интересуют именно RAW-запросы, содержащие всевозможные символы и т.п.. При этом необходимо сохранить ихнюю целостность, а Для просмотра ссылки Войди или Зарегистрируйся похоже тупо экранирует опасные символы. Что же я в итоге получу на выходе? Да, я ламер в этом плане. И ещё вопрос - будет ли любая строка, кодированная в Для просмотра ссылки Войди или Зарегистрируйся() 100% безопасной для тупого INSERT INTO `texts` VALUES ('encoded_string'); ?
Просто все данные будут переданы в запрос в безопасном варианте, сама строка не изменится, функция Для просмотра ссылки Войди или Зарегистрируйся только экранирует и все. + прочитайте `Замечания` на странице документации по этой функции.

Вы я так понял, не знаете что такое экранирование. Вот вам простой пример на PHP
Код:
<?php

echo 'This is example of \'escaping\'', "<br>", "This is example of 'escaping'";

?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху