ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

06.08.2010, 16:31
|
|
Новичок
Регистрация: 28.11.2009
Сообщений: 4
Провел на форуме: 10575
Репутация:
0
|
|
is_array это остатки от старой функции,которая обрабатывала $_POST, $_GET целиком, даже не заметил когда правил.
PHP код:
PHP: [COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]function[/COLOR][COLOR="#0000BB"]security[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]){
if ([/COLOR][COLOR="#0000BB"]is_numeric[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"])) {
return[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"];
}
if([/COLOR][COLOR="#0000BB"]get_magic_quotes_gpc[/COLOR][COLOR="#007700"]()){
[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]stripslashes[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]);
}
[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]strip_tags[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]htmlentities[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]ENT_QUOTES[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"windows-1251"[/COLOR][COLOR="#007700"]);
[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]mysql_real_escape_string[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"]);
return[/COLOR][COLOR="#0000BB"]$value[/COLOR][COLOR="#007700"];
}
[/COLOR][/COLOR]
Приведите свой конкретный пример, и тогда "изобретении велосипеда" закончиться, и можно будет вообще тему закрывать =)!
Спасибо за помощь.
|
|
|

06.08.2010, 16:39
|
|
Новичок
Регистрация: 28.11.2009
Сообщений: 4
Провел на форуме: 10575
Репутация:
0
|
|
Сообщение от Gifts
Gifts said:
ByGreez
mysql_real_escape_string($value); - you need nothing else для запроса к базе.
=). Всё, спасибо. Только ещё нужно будет теги повырезать.
|
|
|

06.08.2010, 16:58
|
|
Участник форума
Регистрация: 31.12.2007
Сообщений: 279
Провел на форуме: 1725509
Репутация:
114
|
|
Сообщение от None
1) Если поле в базе числовое, то: (int) (ну или intval()). Можно по модулю взять при использовании в LIMIT, но это не секурити-дырка.
а вот у тов ette есть статья там абзац про intval() вернет Тру если в передаваемом параметре есть хоть одна цифра. юзайте is_numeric для цифровых полей типа id и т.д
|
|
|

06.08.2010, 17:05
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
-=Zhenek=- насчет intval - ложь и провокация или пруфлинк с примером кода, когда intval вернет True - то есть булево значение.
intval возвращает целочисленное значение, причем если строка с произвольными данными - то возвращается число идущее в начале строки. Например
PHP код:
PHP: [COLOR="#000000"][COLOR="#0000BB"]$a[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'1234asdasdasdasd'[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]intval[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$a[/COLOR][COLOR="#007700"]));[/COLOR][COLOR="#FF8000"]// вернет int(1234)
[/COLOR][COLOR="#0000BB"]$b[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]'asdsa1234asdasds'[/COLOR][COLOR="#007700"];
[/COLOR][COLOR="#0000BB"]var_dump[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]intval[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$b[/COLOR][COLOR="#007700"]));[/COLOR][COLOR="#FF8000"]// вернет int(0)[/COLOR][/COLOR]
ByGreez тему стоило закрыть если не после первого поста, то после 1-2 страницы. Но всегда найдутся люди, которые не поверят, что простое решение - самое эффективное, и постараются показать монструозную функцию, которая "спасет от всех проблем". Таких людей надо вовремя отлавливать и наставять на путь истинный, пока болезнь не распространилась
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|

06.08.2010, 19:21
|
|
Новичок
Регистрация: 28.11.2009
Сообщений: 4
Провел на форуме: 10575
Репутация:
0
|
|
|
|
|

23.10.2010, 18:30
|
|
Познающий
Регистрация: 03.01.2010
Сообщений: 42
Провел на форуме: 162143
Репутация:
3
|
|
я когда еще не знал про intval делал так: $_GET[id] += 0; При арифметических операциях php, как известно, отбрасывает "нецифры"
|
|
|

23.10.2010, 18:48
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
SHiNiGaMi и радовали хеккеров раскрытием путей. При передаче массива (http://localhost/?id[]=bang) получите:
Код:
Code:
Fatal error: Unsupported operand types in [путь]/index.php on line 5
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|

30.04.2011, 09:23
|
|
Новичок
Регистрация: 15.05.2010
Сообщений: 0
Провел на форуме: 2268
Репутация:
0
|
|
Сообщение от nc.STRIEM
nc.STRIEM said:
а не прощи ли сделать
PHP код:
PHP: [COLOR="#000000"][COLOR="#0000BB"]$str[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"'"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"\'"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$str[/COLOR][COLOR="#007700"]);
[/COLOR][/COLOR]
Никогда не подумаю что в МОА такие люди. Этот код не защищаеть от SQL-inj.
Представим что в эту функцию:
PHP код:
PHP: [COLOR="#000000"][COLOR="#0000BB"]$str[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"'"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"\'"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$str[/COLOR][COLOR="#007700"]);
[/COLOR][/COLOR]
Мы передадим строку:
Тогда что получиться? Кавычка экранируется и получается вот это:
Тут мы видим что кавычка не за экранирована, поскольку \ стоящая перед ней экранирует \ стоящую после кавычки. Разумееться тут возникнут небольшие сложности, но SQL-inj остаёться возможно провести.
И всё же посоветую конвертировать в htmlspecialchars до помещения в БД.
|
|
|

30.04.2011, 11:52
|
|
Постоянный
Регистрация: 26.07.2009
Сообщений: 321
Провел на форуме: 444589
Репутация:
123
|
|
Сообщение от XAMEHA
XAMEHA said:
И всё же посоветую конвертировать в htmlspecialchars до помещения в БД.
htmlspecialchars использовать нужно для защиты от XSS, а не от sql injection.
И не до записи в базу (от чего объем увеличивается), а перед выводом пользователю.
Читай еще раз первый пост:
mysql_real_escape_string()
|
|
|

30.04.2011, 14:23
|
|
Новичок
Регистрация: 15.05.2010
Сообщений: 0
Провел на форуме: 2268
Репутация:
0
|
|
Ну это я имел ввиду немного для другого случая - просто админам иногда полезно разрешать HTML код, Перегонять ББ-коды в HTML при каждой загрузке странице тоже будет вести большую нагрузку на сервери т. .
Сообщение от Gifts
Gifts said:
XAMEHA
со дня поста, который вы сейчас прокомментировали - прошло 3 года. Причем автору поста уже ответили что он не прав. Внимание вопрос - зачем вы это написали?
Насчет htmlspecialchars первый пост:
Темы в разделе программирования закрываются редко, т.к. любую программу можно сделать более быстрой, код более коротким. Поднятие старых тем под флагом оптимизации их кода лишь приветствуется.
А функцию htmlspecialchars я имелл виду использовать не для защиты от sql-inj.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|