Защита приложений на PHP.
Так так..
Когда пишешь зиро дэй для определенного круга личностей хочется чтобы он не вышел из этого круга.
Вот. Значит надо защитить его всякими способами. В этой статье я покажу как это делается в PHP.
Итак. Допустим ты уже написал свой зиро дэй счетчик посетителей и хочешь чтобы только у тебя была
такая черношляпнегская считалка. Тогда открывай его в своём любимом редакторе. Вот. И начинаем кодировать.
В данной (то есть в этой, которую читаешь) статье я покажу наиболее актуальные способы. Их будет 3 (три).
Итак!
1 способ — триальный период. Тут не будут использоваться сложные механизмы с доступом к реестру
и прочее о чем страшно думать. Смотрим код (он ниже).
<?php
$expire = «01.01.2006»;
//Тут устанавливаем дату до которой приложение будет работать
$expire = explode(".", $expire);
//Разбили переменную $expire на одномерный массив с использованием точки в роли разделителя
$expire = $expire[2].$expire[1].$expire[0];
// Преобразуем массив в строку
/*
В вышеуказанном коде можно не понять к чему такая странная замута с изменением формата даты.
Обьясняю. Если поставить дату в формате (год.месяц.число) то в целом значение в скобках будет
с каждым днем увеличиваться, и чтобы сравнить текущую дату с датой окончания триала достаточно
будет сравнить мужду собой эти числа. В общем смотри дальше:
*/
if(date(«Ynd») >= $expire)
//Получили текущую дату и сверили с датой окончания триала
{
die («Пробный период истек.»);
//Если че не так шлем нафиг %/
}
else
{
print («Все нормально. Пока..»);
//Иначе нафиг не шлем
}
?>
Этот способ не актуален в случае если ваш зиро дэй угнали прямо с вашего сервера и издеваются
на локалке(или в другом месте где можно изменить системную дату). Однако, вполне работает на
обычном хостинге потому что там никто не даст поменять локальное время. Можно написать парсер
какого-нибудь проверенного ресурса на котором отображается дата и тогда всех слать нафиг. Вот.
2 способ — привязка к домену. Смотрим код (он ниже).
<?php
$domain = «Y0UR-1337.ORG»;
// Устанавливаем значение домена к которому будем привязывать
if ($domain != $_SERVER['HTTP_HOST'])
//Сравниваем значение указанного домена с тем, на котором хостится зиро дэй
{
die («Работает только на ».$domain."");
//Есле домен не тот шлем нафиг
}
else
{
print («ГГ, привет хозяин!»);
//Есле все ок то все ок
}
?>
И последней описываемый в этой статье механизм под цифрой 3(три) — привязка по ip.
Код вы можите увидеть ниже. А можите и не увидеть =/
<?php
$ip = «17.31.33.7»;
//Указываем ip к которому привязываем
if ($ip != $_SERVER['SERVER_ADDR'])
//Сравниваем значение указанного IP с тем, на котором хостится зиро дэй
{
die («Ты не из нашей помойки =/»);
//Есле че не так — нафиг ))
}
else
{
print («Ваш код здесь»);
//Если зиргут то гуд
}
?>
Вот. выбирайте любую или сразу целую комбинацию из защитных механизмов, и применяйте к
своему зиро дэй. Затем в несколько слоев обфусцируем полученый код от белошляпнегов.
Привязку можно сделать по чему угодно. Например после такой проверки:
if ($_ENV[«COMPUTERNAME»] === «C0D3R-3DFFC348A»)
код запустится только на моей текущей винде. ИМХО в ява скрипте можно вывести инфу о железе
и ничто не мешает полученные данные так же проверить. В общем, вариантов защиты оч. много. Теперь,
надеюсь, ваши личные скрипты останутся личными. Однако все же подумайте перед тем как защищать
свой зиро дэй от остальных. Быть может он принесет пользу окружающим и они, последуя
вашему примеру ответят взаимностью. Да не покарает вас церковь хекеров и будет вам счастье! Аминь!
С уважением, t0rb9k.
Комментарии