ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 09.01.2007, 04:50
Аватар для Xex
Xex
Banned
Регистрация: 10.07.2005
Сообщений: 224
Провел на форуме:
1062041

Репутация: 50
По умолчанию

Цитата:
Сообщение от Zadoxlik  
Это все ясно, только ты не раскрыл тему=)
Согласен,
забыли про грамотное распределение прав в СУБД.
 
Ответить с цитированием

  #12  
Старый 09.01.2007, 10:27
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

вы еще про хранимые функции скажите =)))
 
Ответить с цитированием

  #13  
Старый 09.01.2007, 10:49
Аватар для Dracula4ever
Dracula4ever
Постоянный
Регистрация: 08.05.2006
Сообщений: 559
Провел на форуме:
1593567

Репутация: 354


Отправить сообщение для Dracula4ever с помощью ICQ Отправить сообщение для Dracula4ever с помощью AIM Отправить сообщение для Dracula4ever с помощью Yahoo
По умолчанию

Чтобы защитится от SQL Injection надо, прежде всего надо распределять по его видам.
К примеру, если мы хотим получить целое число (int) надо чтобы шла проверка что это число и правда целое.
Это можно осуществить с помощью функнии IsNumeric в таком виде:
Цитата:
If (not IsNumeric(Request("ID"))) then ...
Так же надо чтобы не показывались ошибки, которые приводят к взлому сайта.
Есть полно путей сделать это, но помойму лучше всего это осуществить с помощью того, что есть ошибка работа не прекратилась.
Цитата:
номер ошибки error resume next
 
Ответить с цитированием

  #14  
Старый 09.01.2007, 14:09
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
надо чтобы шла проверка что это число и правда целое
Во-первых, никаких проверок не надо! Сколько раз повторять?
Во-вторых, int не может быть не целым!
 
Ответить с цитированием

  #15  
Старый 09.01.2007, 14:56
Аватар для k1b0rg
k1b0rg
Тут может быть ваша реклама.
Регистрация: 30.07.2005
Сообщений: 1,243
Провел на форуме:
4520553

Репутация: 1316


По умолчанию

error_reporing(0);
magic_quotes on

и числа передаваемые базе тоже обрамляем ковычками типо
Цитата:
.. where id ='1'

и хакеры прутся полем
 
Ответить с цитированием

  #16  
Старый 10.01.2007, 07:44
Аватар для GHostly_FOX
GHostly_FOX
Участник форума
Регистрация: 04.01.2007
Сообщений: 112
Провел на форуме:
179531

Репутация: 48
По умолчанию

Мой метод защиты:

Если вы передаете только текст и числа в скрипты к примеру:
index.php?modules=news&id=1
то вполне подойдет данный код:

PHP код:
function var_chek($var,$col){
    
$var    =    substr($var0$col);
    
$var    =    preg_replace("/[^\w\x7F-\xFF\s]/"""$var);
    
$good    =    ereg_replace(" +"" "$var);
    
$good    =    strip_tags($good);
    return 
$good;
}

$modules=var_chek($modules,10);
$id=var_chek($id,5); 
Данный код не только удалит все спец символы из передаваемых строк но и обрезает по длинне, ни один XSS или SQL inj... не пройдет через этот фильтр.
 
Ответить с цитированием

  #17  
Старый 10.01.2007, 08:04
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
GHostly_FOX
Воот... прекрысный пример в тему как не надо делать...
 
Ответить с цитированием

  #18  
Старый 10.01.2007, 10:38
Аватар для k1b0rg
k1b0rg
Тут может быть ваша реклама.
Регистрация: 30.07.2005
Сообщений: 1,243
Провел на форуме:
4520553

Репутация: 1316


По умолчанию

Примерно такой же код используется в последних версиях phpbb
 
Ответить с цитированием

  #19  
Старый 10.01.2007, 11:47
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

так действительно делать не надо.
Лучшим средством будет типизирование параметров - явно прописать в скрипте имена параметров и их типы и соответствующе их парсить. Если int - делать intval(), если string - делать mysql_escape_string.
При выводе всех значений на экран обрамлять в htmlspecialchars, а резать это при передаче в БД - маразм.
Тут я на 100% согласен с nerezus'ом
 
Ответить с цитированием

  #20  
Старый 10.01.2007, 15:00
Аватар для nerezus
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
magic_quotes on
Обязательно off.
Т.к. иначе будет двойное экранирование.

И вообще magic_quotes, register_globals и т.д. отменили в PHP6, чтобы криворукие недокодеры не юзали их )

Цитата:
и числа передаваемые базе тоже обрамляем ковычками типо
Зачем?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ