Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: SQL-инъекции и mysql_escape_string()
 
 автор: Mookapek   (16.11.2008 в 23:34)   письмо автору
 
 

Является ли использование функции mysql_escape_string() полной защитой от SQL-инъекций.
То есть обработать этой функцией все данные, вводимые пользователем, и всё пучком. Или я ошибаюсь?

  Ответить  
 
 автор: Trianon   (16.11.2008 в 23:45)   письмо автору
 
   для: Mookapek   (16.11.2008 в 23:34)
 

http://www.softtime.ru/info/task.php?id_article=81

  Ответить  
 
 автор: Den*s   (17.11.2008 в 00:38)   письмо автору
 
   для: Trianon   (16.11.2008 в 23:45)
 

А почему бы не сделать так:

<?
// Устанавливаем соединение с базой данных 
  
require_once("config.php");  
 
$id_user=@htmlspecialchars(@$_GET["id_user"], ENT_QUOTES);
 
$query "SELECT * FROM userslist WHERE id_user='$id_user' ";
?>

ведь функция htmlspecialchars тоже своего рода безопасность от тегов и прочего?

  Ответить  
 
 автор: DEM   (17.11.2008 в 00:48)   письмо автору
 
   для: Den*s   (17.11.2008 в 00:38)
 

SQL-анъекции - это НЕ тэги... Это... хм... специальные запросы котрые вставляет вместо переменных (или пересылают, через POST-запросы), ну и которые сервер обрабатывает не понимая, что это немного не то :) Что бы обрабатывать числа, нужно использовать $id=intval($id);
А htmlspecialchars() надо исопльзовать для вывода текста на экран...

Кстати, эти три функции (htmlspecialchars(), intval() и mysql_escape_string()) они точно спасут от всех бед? Или еще можно добавить лишние тэги (не помню как функция точно пишется, а редактор лень открывать :) ) и прочее-прочее?

  Ответить  
 
 автор: Den*s   (17.11.2008 в 02:22)   письмо автору
 
   для: DEM   (17.11.2008 в 00:48)
 

Первая мысль как можно навредить в этом коде

<?
// Устанавливаем соединение с базой данных 
  
require_once("config.php");  
 
$id_user=@htmlspecialchars(@$_GET["id_user"], ENT_QUOTES);
 
$query "SELECT * FROM userslist WHERE id_user='$id_user' ";
?> 

id_user передаются например параметры:
 2'  OR id_user>'5 

но тут же кавычки экранируются функцией htmlspecialchars и в итоге получится

<?
 $query 
"SELECT * FROM userslist WHERE id_user='2&middot; OR id_user>&middot;5'  ";
?>

когда поле id_user типа int и в итоге ничего не выводится.
Может я чего то не учёл, и есть другие способы обхода htmlspecialchars и выполнения GET запроса

  Ответить  
 
 автор: DEM   (17.11.2008 в 02:42)   письмо автору
 
   для: Den*s   (17.11.2008 в 02:22)
 

http://softtime.ru/forum/read.php?id_forum=2&id_theme=33492

вот тут мне показывали пример, как мою старую CMS`ку можно взломать...

  Ответить  
 
 автор: Den*s   (17.11.2008 в 03:21)   письмо автору
 
   для: DEM   (17.11.2008 в 02:42)
 

Проверял свои сайты, вроде нормально, отосплюсь и дам какой нибудь на растерзание. Когда сам проверял, то взломать не получалось. Спасибо за ссылку...
К стати на сайте ошибки выпрыгивают, видимо кто то опять постарался

  Ответить  
 
 автор: DEM   (17.11.2008 в 03:33)   письмо автору
 
   для: Den*s   (17.11.2008 в 03:21)
 

Этот сайт уже не мой, ибо второй админ меня на*бал (извините, но другого слова подобрать не могу), перезаргестрировал доменое имя на себя и продал его...

  Ответить  
 
 автор: Mookapek   (17.11.2008 в 16:18)   письмо автору
 
   для: DEM   (17.11.2008 в 03:33)
 

Не огласите ли имя конторки, которая на*бала вас, чтоб другие на те же грабли...?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования