Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Защита сайта от SQL-Injection!

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Защита сайта от SQL-Injection!
Имя
Сообщение << Старые топики   Новые топики >>
Защита сайта от SQL-Injection! - 2011-01-24 18:10:25.856666   
Fliridicter

Сообщений: 34
Оценки: 0
Присоединился: 2011-01-04 12:28:36.730000
Всем привет!
Нашёл такой-вот скрипт:
&lt;!-- sql.php --&gt; &lt;? $get_ar = array_values($_GET); $c_a_g = count($get_ar); for ($i = 0;$i &lt; $c_a_g;$i++){ if(eregi('union(.*)select',$get_ar[$i])){ header("Location: http://site.com"); exit; } if(eregi('order(.*)by',$get_ar[$i])){ header("Location: http://site.com"); exit; } } $post_ar = array_values($_POST); $c_a_p = count($post_ar); for ($i = 0;$i &lt; $c_a_p;$i++){ if(eregi('union(.*)select',$post_ar[$i])){ header("Location: http://site.com"); exit; } if(eregi('order(.*)by',$post_ar[$i])){ header("Location: http://site.com"); exit; } } ?&gt; Обращаюсь к профессионалам - тем, кто хорошо разбирается в этом. Надёжен ли этот скрипт относительно безопасности и защиты?
Ещё я использую такое вот условие:
if (!get_magic_quotes_gpc()){ $variable = mysql_real_escape_string($variable); $variable = mysql_real_escape_string($variable);} $variable = HТМLspecialchars(strip_tags($variable)); $variable = HТМLspecialchars(strip_tags($variable)); Достаточно ли этого?
Post #: 1
RE: Защита сайта от SQL-Injection! - 2011-01-25 18:49:46.530000   
Fliridicter

Сообщений: 34
Оценки: 0
Присоединился: 2011-01-04 12:28:36.730000
ну что? не знаете чтоль?
Post #: 2
RE: Защита сайта от SQL-Injection! - 2011-01-26 11:24:51.903333   
Papa James

Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
Нет, не надежен. Хотя все зависит от запросов в БД
Post #: 3
RE: Защита сайта от SQL-Injection! - 2011-01-26 15:11:21.123333   
Fliridicter

Сообщений: 34
Оценки: 0
Присоединился: 2011-01-04 12:28:36.730000
А какими должны быть запросы к БД?
Post #: 4
RE: Защита сайта от SQL-Injection! - 2011-01-30 02:07:13.946666   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
Скорее всего этот скрипт был приведен там, где ты его нашел, в качетсве примера и автор не парился над безопасностью, что бы показать какую-то другу фичу, однако в серьезных проектах, никто обычно не пишет сырые запросы, а существует свой набор обработчков SQL запросов, которые фильтруют любые инекции. Вот на пример:
$this->db->select_result_array("my_table", "*", array("field"=>"value"));
где в класе db создан метод для того, что бы вынять массивом все значения из таблицы my_table, что отвечают заданным параметрам.
Короче советую посмотреть Codeigniter (http://code-igniter.ru/)
Post #: 5
RE: Защита сайта от SQL-Injection! - 2011-02-21 02:57:40.383333   
sylord

Сообщений: 7
Оценки: 0
Присоединился: 2011-02-21 00:23:08.830000
Всегда лучше «запрещено все что не разрешено» а не «разрешено все что не запрещено» и зачем проверять весь пост и гет? если файл отправить? а если 10 сразу? или строку? скрипт просто сожрет все ресурсы. лучше написать функции валидаторы для конкретных типов и применять для каждого значения.
Post #: 6
RE: Защита сайта от SQL-Injection! - 2011-02-21 05:56:02.510000   
DEH

Сообщений: 195
Оценки: 0
Присоединился: 2007-01-13 22:27:31.370000
А как в codeigniter быть с запросами с джойнами, юнионами и прочим? Ибо сам себя только что словил на мысли что у меня все запросы через db->query() …

Сори за небольшой оффтоп..
Post #: 7
RE: Защита сайта от SQL-Injection! - 2011-02-21 06:21:46.803333   
sylord

Сообщений: 7
Оценки: 0
Присоединился: 2011-02-21 00:23:08.830000
Если это был вопрос ко мне то я понятия не имею как потому как codeigniter не рыл и рыть не собираюсь. Хотя не понимаю суть вопроса, в чем проблема в db->query() написать джойн или юнион ?
Post #: 8
RE: Защита сайта от SQL-Injection! - 2011-02-21 06:59:03.593333   
DEH

Сообщений: 195
Оценки: 0
Присоединился: 2007-01-13 22:27:31.370000
Вопрос не к вам.

Никаких проблем. Agent Smith написал, что лучше работать в CI, где для работы с БД можно использовать функции, в которых предусмотрена валидация и прочее.

Вопрос следующий: как в этих вот кодигнитеровских функциях делать сложные запросы с юнионами, джоинами, даже с банальными директивами типа SQL_CALC_FIND_ROWS, кроме как через эту самую query().

Спасибо.
Post #: 9
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Защита сайта от SQL-Injection!







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.