[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Класс защиты [ 0.3 Version ]
Istsam
Выкладываю свой первый класс.
Для чего он?
Для защиты, от XSS и SQL-INJ.
Применяем так:

$text = "<b>Тест</b>";
Anti_Xak::no_sql_inj(); // от SQL-INJ
echo Anti_Xak::output($text); // Для вывода текста
echo Anti_Xak::input($text); // Для заноса в БД
echo Anti_Xak::num($text); // Для фильтра цифр
echo Anti_Xak::outtext($text); // Для текста


Жду от кодеров, правильных советов по улучшению :)



Спустя 7 минут, 21 секунда (12.05.2011 - 15:38) ApuktaChehov написал(а):
А нафих класс, когда это делается 2-мя функциями?

Спустя 3 минуты, 19 секунд (12.05.2011 - 15:41) Семён написал(а):
Цитата (ApuktaChehov @ 12.05.2011 - 16:38)
А нафих класс, когда это делает 2 функциями?

laugh.gif

Спустя 14 минут, 56 секунд (12.05.2011 - 15:56) Istsam написал(а):
ну так расширять никто не запрещал
P.S.Как его можно улучшить?

Спустя 3 минуты, 44 секунды (12.05.2011 - 16:00) ApuktaChehov написал(а):
Istsam - пока я не вижу в нем смысла.

Спустя 7 минут, 58 секунд (12.05.2011 - 16:08) Istsam написал(а):
Обновил файл)

Спустя 42 минуты, 17 секунд (12.05.2011 - 16:50) Mirexzpalich написал(а):
Istsam
Жжешь =)
Тоже поставлю тебе + =)

Спустя 1 час, 11 минут, 15 секунд (12.05.2011 - 18:01) alex12060 написал(а):
Цитата
$text = "<b>Тест</b>";
$xak = new Anti_Xak(); // Создаём класс
$xak->no_sql_inj(); //защита от SQL-INJ
echo $xak->output($text); // Фильтр для вывода из БД
echo $xak->input($text); // Фильтр для ввода в БД
echo $xak->num($text); // Фильтр чисел
echo $xak->outtext($text); // Фильтр для вывода текста без переноса



Он что, работает? оО
Жесть то какая)

Спустя 12 минут, 40 секунд (12.05.2011 - 18:14) Nikitian написал(а):
no_sql_inj() - жесть. Ничего в базу нельзя записать. Вместо экранирования вырезание, вместо анализа sql-запросов непоятный редирект при наличии обычных слов в параметрах, причём только $_GET. $_POST, $_COOKIE не подделываются?

Спустя 3 минуты, 18 секунд (12.05.2011 - 18:17) alex12060 написал(а):
Метод num() вообще ничего не пропустит толком. А если, например, я хочу ввести -12, то он введет 12

Оо
Не вариант..

Спустя 1 час, 4 минуты, 47 секунд (12.05.2011 - 19:22) XCross написал(а):
Ну вас...вы просто ничего не понимаете biggrin.gif
Смысл этой темы заклюключается не столько в том, что этот класс именно "защищает" от всевозможных угроз, а в том, что это первый класс автора!


Спустя 3 минуты, 59 секунд (12.05.2011 - 19:26) Istsam написал(а):
alex12060, метод num как раз и защищает от таких запросов
site.ru/cat.php?id=1 - нормальный запрос
site.ru/cat.php?id=1 OR 2 - ненормальный запрос
фильтрация методом num - не позволит так сделать

зачем держаьт в базе отрицательные значения?
Если это только не голосование

Спустя 2 минуты, 15 секунд (12.05.2011 - 19:28) Istsam написал(а):
kmaks, меня класс устраивает, полностью)

Спустя 1 минута, 29 секунд (12.05.2011 - 19:30) Istsam написал(а):
Nikitian, с помощью этих "обычных слов" можно провести SQL-атаку, с помощью обьединения запросов к MySQL, с помощью JOIN

Спустя 38 минут, 5 секунд (12.05.2011 - 20:08) Nikitian написал(а):
Цитата (Istsam @ 12.05.2011 - 19:30)
Nikitian, с помощью этих "обычных слов" можно провести SQL-атаку, с помощью обьединения запросов к MySQL, с помощью JOIN

Знаю, но я о другом. Нельзя обрабатывать так полностью все гет (почему только гет?) параметры. Иначе такой примерной поисковой формой не отправить что-нибудь типа "Insert my legs in the selected mouth":

<form action="" method="get">
<input
type="text" name="search" />
<input
type="submit" value="Иcкать" />
</form>


Спустя 6 минут, 14 секунд (12.05.2011 - 20:14) Istsam написал(а):
я такой текст, через $_GET не передаю)
только $_POST

Спустя 11 часов, 17 минут, 36 секунд (13.05.2011 - 07:32) alex12060 написал(а):
Istsam

А ты думаешь что через $_POST нельзя выполнить инъекцию?

Спустя 33 минуты, 58 секунд (13.05.2011 - 08:06) Семён написал(а):
Цитата (Istsam @ 12.05.2011 - 20:26)
зачем держаьт в базе отрицательные значения?
Если это только не голосование

Запрос на уменьшение баланса

Спустя 36 минут, 27 секунд (13.05.2011 - 08:42) linker написал(а):
Istsam
Знаешь как из не номального site.ru/cat.php?id=1 OR 2 запроса сделать нормальный site.ru/cat.php?id=1?
$id = (int)$_GET['id'];

Спустя 1 час, 37 минут, 30 секунд (13.05.2011 - 10:19) Basili4 написал(а):
Istsam
Цитата (Istsam @ 12.05.2011 - 20:26)
зачем держаьт в базе отрицательные значения?

Ты чего это серьезно ???????

тогда вообще зачем в базе держать значения ? Пусть будет пустая и защищенная а еще лучше комп что бы был выключен. 100% защита

Спустя 1 час, 26 минут, 1 секунда (13.05.2011 - 11:45) linker написал(а):
Цитата
зачем держаьт в базе отрицательные значения?

Жесть ohmy.gif

Спустя 3 часа, 13 минут, 53 секунды (13.05.2011 - 14:59) Istsam написал(а):
я вас чтото не пойму
зачем всё таки держать отрицательные значения в базе?
Можео ведь, записывать так:

Поле: +
Значение: 1

Поле: -
Значение: 1

И когда выводишь, Минусов: '.$sql['-'].' / Плюсов '.$sql['+'].'
Или вы про чтото другое говорите?

Спустя 2 минуты, 38 секунд (13.05.2011 - 15:02) Nikitian написал(а):
Istsam
Можно и суп вилкой кушать, только вот нужно ли?

Спустя 4 минуты, 6 секунд (13.05.2011 - 15:06) Istsam написал(а):
Nikitian, плохое сравнение)
я остался при своём мнении

Спустя 21 минута, 58 секунд (13.05.2011 - 15:28) linker написал(а):
Istsam
Ок, допустим у тебя сайт климатического характера. У тебя в базе хранятся температурные показатели по дням. Тебе надо получить из базы: среднюю температуру за год, минимальную и максимальную за год, среднюю за зиму, среднюю за лето и т.д. А теперь вопрос, через какую жопу (извините не смог удержаться) ты будешь всё это дело кодить?

Спустя 20 часов, 50 минут, 46 секунд (14.05.2011 - 12:19) Istsam написал(а):
ничего трудного не вижу
запрос в бд
берёшь всё значение где поле -
складываешь и вычитаешь среднее
так же и с +

а на выводе:
Средняя температура: - $sql['-'] и + $sql['+']

Спустя 1 час, 9 минут, 8 секунд (14.05.2011 - 13:28) Nikitian написал(а):
Мышки плакали и кололись, но продолжали кушать кактус

Спустя 1 день, 19 часов, 50 минут, 20 секунд (16.05.2011 - 09:18) linker написал(а):
Ок, ты складываешь например - 12С и + 15С, т.к. у тебя жопа с отрицательными числами, то ты будешь складывать 12 и 15 и получишь х...ню в виде +/-27, вместо положенных + 3С.
Ппц, советую завязать с кодингом и переключиться на другую область или таки слушать, что тебе говорят умные люди.

Спустя 41 минута, 23 секунды (16.05.2011 - 10:00) alex12060 написал(а):
eeeee)
Посмеялся от души)

Istsam

Ты водолей?

Спустя 1 час, 37 минут, 43 секунды (16.05.2011 - 11:37) ApuktaChehov написал(а):
Istsam - а вы в школе учились. Вы знаете что существуют отрицательные числа? Так вот, отрицательные числа - это не положительные числа, перед которыми стоит знак "минус", это реально отрицательные числа.

Я вообще советую вам использовать другой подход. Выделяете один столбец под число от 0 до 9, с возможностью хранить много много цифр после запятой(дробь). И выделяете еще одно поле, где указываете число на которое умножается предыдушее число. Таким образом все ваши числа будут от нуля и до девяти. Не гениально ли!!! laugh.gif


Istsam - ваш подход будет на ура воспринять на govnokod.ru. Я очень надеюсь, что это была шутка.

Спустя 2 часа, 14 минут, 1 секунда (16.05.2011 - 13:51) Krevedko написал(а):
повеселили. спасибо biggrin.gif

Спустя 48 минут, 52 секунды (16.05.2011 - 14:40) Basili4 написал(а):
на ГК такого добра более 2000 постов хватит уже.

Спустя 12 минут, 59 секунд (16.05.2011 - 14:53) linker написал(а):
Basili4
Не, подобное хранение отрицательных и положительных чисел на ГК будет впервые. smile.gif

Спустя 6 дней, 1 час, 17 минут, 33 секунды (22.05.2011 - 16:11) Istsam написал(а):
возможно, метод num(), передалаю.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.