Вернуться   Форум Пустоты.нет - приятное общение ! > Программирование > PHP

Отправка SMS по России и Украине.

.
Ответ
 
Опции темы Опции просмотра
Старый 30.09.2006, 18:41   #1
Owner
 
Аватар для FuseR
 
male
Регистрация: 29.09.2006
Адрес: Украина
Сообщений: 2,342
Провел(а) на форуме:
3 мес 0 нед 3 д
Репутация: 223 Добавить отзыв для FuseR
Лампочка Методы дополнительной защиты сайта

Методами дополнительной защиты сайта, работающего на php. Напишем пассивную защиту для обнаружения web шеллов, подумаем над способами защиты от брутфорса пароля и сделаем ещё несколько полезных вещей. Для начала хочу сказать, что данная статья прежде всего даёт пищу для размышления, так как я в основном буду подавать вам идеи, нежели исходный код. Итак, начнём…

Первый фрагмент кода, который я хочу вынести на ваш суд, «бьёт тревогу» в случае обнаружения в переменной посторонних знаков. Он пригодится для обнаружения попытки проведения sql инъекции и подобных атак.

Листинг 1:


function inj($what,$inj,$error) {
if (ereg(”[^$what]”,$inj)) die($error);
}


Пояснение 1:

Вызывать данную функцию следует так:


inj(’a-z0-9′,$var,$error);


a-z0-9 - символы, которые нужно пропускать (формат регулярных выражений)
$var - переменная, которую нужно фильтровать
$error - сообщение об ошибке (ошибка появится в случае нахождения посторонних символов)

То есть мы видим, что данная функция просто ищет посторонние символы в строке, и, в случае нахождения, выдаёт сообщение об ошибке и немедленно прекращает свою работу. Не стоит сетовать на излишнюю простоту… Всё гениальное просто! Да и вообще, все предлагаемые мною варианты просты, но могут сослужить неплохую службу.

Теперь я предлагаю перейти к теме защиты от брутфорса (подбора паролей). От брутфорса неплохо спасает следующий код:

Листинг 2:


sleep($sleep);


Пояснение 2:

$sleep - количество секунд, на которое сценарий останавливает свою работу.

Данный код рекомендую вставлять перед проверкой пароля. Например, двухсекундная задержка особо пользователю не помешает, а вот брутфорс применять будет бессмысленно. Разве что можно использовать много компьютеров (ботнет) для подбора пароля… Однако и это тоже решаемо. Например, если пользователь неверно ввёл пароль десять раз, можно забанить его по IP адресу (код не привожу). А ссылку для смены пароля отправить на e-mail пользователю. Так можно применять код из листинга 2 в поисковых механизмах сайта - для избежания DDOS атак.

Как идея - можно написать скрипт, который будет отсылать тебе sms/e-mail в случае поступления слишком большого количества запросов к сайту.

Следующий код можно использовать для нахождения web шеллов.

Листинг 3:


function srd($dir,$fn) {
if ($odir=opendir($dir)) {
$cdir=’0′;
while (false!==($file=readdir($odir))) {
if ($file!=”.”&& $file!= “..”) {
$cdir++;
}
}
closedir($odir); if($cdir!=$fn) { echo ‘Error!’; }
}
}


Пояcнение 3:

Вызывать данную функцию следует так:


srd(’test’,'15′);


test - имя папки
15 - число файлов в папке

При вызове данной функции начнётся подсчёт количества файлов и папок в папке и сравнение этого числа со вторым параметром (числом файлов и папок, которое должно быть в каталоге). Если при сравнении числа оказались разными (обнаружен посторонний файл или папка) - скрипт выдаст ошибку. Кстати, к выдаче ошибки рекомендую добавить ещё и функцию которая, будет отсылать e-mail/sms администратору. Чтобы администратор всегда был в курсе дел. Разумеется, приведённый код нужно вызывать в основных скриптах сайта. Если же у вас есть папка куда файлы постоянно добавляются (например, директория для закачки аватар на форуме), то рекомендую так же добавить в написанную мною функцию ещё и проверку типа и расширения файла.

Думаю, я показал вам методы нестандартного подхода к защите сайта. У меня ещё много идей (наверняка они появились и у вас по прочтению данной статьи). Например, можно настроить сервер так, чтобы он записывал все ошибки интерпретатора php в лог файл, который тоже будет парсить какой-нибудь скрипт на наличие фатальных ошибок… Пароли пользователей лучше шифровать алгоритмом md5 и прибавлять к ним (еще до шифрования) сложную комбинацию символов (которая будет зашита где-нибудь в теле скрипта). Так мы добьёмся того, что расшифровать пароль будет почти невозможно, а если в cookies при авторизации идентефикатором использовать не пароль, а что-нибудь ещё, то попасть в админ-панель сайта станет ещё труднее. Так же можно пароли от админ панели тоже зашить в теле скрипта. Тогда sql инъекций вообще можно особо не боятся…
Собственно на этом я заканчиваю статью, только хотелось бы дать последнюю рекомендацию, которой многие почему-то не следуют: всегда ставьте php_value error_reporting равным нулю, когда выкладываете сайт в интернет, и взломщики лишатся массы ценной информации.
FuseR вне форума   Ответить с цитированием

Интересные новости (не создавайте темы из этих новостей!!!)

Бесплатные знакомства в России, Украине.

Покупаешь? Возвращай Кэшбэк за покупки.

Старый 11.05.2008, 22:18   #2
Пользователь
 
Аватар для SergBrNord
 
male
Регистрация: 15.06.2007
Адрес: Баранкавiчы!(БаранОвичи)
Сообщений: 354
Провел(а) на форуме:
2 д 10 ч 9 мин
Репутация: 9 Добавить отзыв для SergBrNord
По умолчанию Re: Методы дополнительной защиты сайта

Цитата:
Сообщение от FuseR
md5 и прибавлять к ним (еще до шифрования) сложную комбинацию символов (которая будет зашита где-нибудь в теле скрипта).

А смысл?Ломаеться скрипт-узнаеться md5 и дело в шляпе.(Опытом установлено: md5-г!(Это еще ооочень мало сказано0))
Цитата:
Сообщение от FuseR
Так же можно пароли от админ панели тоже зашить в теле скрипта.

А вот это опасно.Скрипт можно же вычленить, не так ли?
__________________
Ушел на неопределенный срок, говорят, вернется...
SergBrNord вне форума   Ответить с цитированием

Старый 25.06.2008, 23:40   #3
Уже был
 
Аватар для Вячеслав
 
male
Регистрация: 25.06.2008
Адрес: РОССИИ
Сообщений: 6
Провел(а) на форуме:
2 ч 13 мин 32 сек.
Репутация: 0 Добавить отзыв для Вячеслав
По умолчанию Re: Методы дополнительной защиты сайта

интересно надо попробывать такую операцию со своим сайтом
Вячеслав вне форума   Ответить с цитированием

Старый 31.01.2010, 23:54   #4
Осваивающийся
 
Аватар для t_point
 
male
Регистрация: 23.01.2010
Адрес: Киев
Сообщений: 87
Провел(а) на форуме:
15 ч 44 мин 46 сек.
Репутация: 8 Добавить отзыв для t_point
По умолчанию Re: Методы дополнительной защиты сайта

Подключаюсь к подаче идей!
Я всю логику, которая отвечает за зашиту вынес абстрактным классом, и переменную с пользовательским инпутом прогоняю через методы, которые выбираю в зависимости от ситуации.
__________________
Если бы моя львица - мудрость умела рычать нежно...
t_point вне форума   Ответить с цитированием

Ответ



Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +3, время: 19:34.


© Форум "Пустоты.нет" - общение и знакомства 2006-2024, Мобильный контент
Работает на vBulletin® версия 3.9.15
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Перевод:zCarot. Стиль: vBSkins. Dir

Top100
Страница сгенерирована за 0.11985 секунд с 11 запросами