Архив рубрики: статьи fruit farm

Защита админки Fruit Farm.

Согласно практике взломов и аннулирования Ваших счетов через админку Вашей фермы, мною была продумана стратегия защиты админки. Очень простой до безумия способ.
Но вернемся к практике. Насколько Вы знаете (а знать должны), что файлы php чужому пользователю недоступны для просмотра, что они защищены сервером-интерпретатором на стороне хостера. Что в свою очередь позволяет нам не думать о защите кода php. О правильности его исполнения, тут не стоит глагольствовать. У каждого на это есть своя голова или "голова за деньги".

Взлом админки происходит посредством SQL-инъекций и запросов, после которых на экран выводится успешное сообщение с информацией о логинах и паролх пользователей и админа. То есть они выдаются из базы. Если подумать, что бд доступна для просмотра посредствами запросов и инъекций, а файл php не дает такой возможности? Улавливаете, что хранимые актуальные пароль и логин от админа хранятся в файле, а по запросам выдает их из базы? Смотрите код:

В папке admin есть файл login

Приведите код к следующему виду:

if(strtolower($_POST["admlogin"]) == strtolower("Впиши_Логин_Админа") AND strtolower($_POST["admpass"]) == strtolower("А_ТУТ_ПАРОЛЬ") ){

Новые кошельки Payeer.

Платежная система Payeer очень активно начинает развиваться. Сменился даже интерфейс. Пока не очень удобно и привычно, но зато красиво. Как всегда, палка о двух концах.

Что нового в кошельках?
Пользователей, пользующихся системой подросло. И номер кошелька тоже подрос, с длины в 7 символов в длину 8 символов. Это, к сожалению, чревато последствиями для Ваших пользователей с новыми кошельками.

Что именно за последствия? - при заказе выплаты, система укажет, что кошелек введен неверно, и в зависимости от настроек длины строки INPUT TYPE не позволит и то ввести на 1 символ больше, чем задано по умолчанию в настройках кода.

Дабы не разочаровывать игроков на Вашей ферме, следует подготовиться к этому. А именно, в файле _payment.php необходимо исправить кое-что:

function ViewPurse($purse){

if( substr($purse,0,1) != "P" ) return false;
if( !preg_match("/^[0-9]{7}$/", substr($purse,1)) ) return false;
return $purse;
}

Исправить на:
function ViewPurse($purse){

if( substr($purse,0,1) != "P" ) return false;
if( !preg_match("/^[0-9]{7,8}$/", substr($purse,1)) ) return false;
return $purse;
}
Сложного ничего нет. Зато система позволит выплачивать деньги пользователям как со старыми номерами кошельков, так и новичкам!

До встречи!

Скидки на приобретение модулей и скриптов!

Внимание! Всем подписчикам данного блога предусмотрена скидка 10% на приобретаемые модули и скрипты. За исключением уникальных скриптов на заказ. Для того, чтобы получить скидку - просто выберите модуль или скрипт, напишите мне в Google+ с аккаунта, являющимся подписчиком.
Хорошего дня!

Расшифровка файлов и папок стандартной сборки Фруктовой Фермы.

Здесь я представлю Вам список стандартных файлов php, с которыми придется работать, настраивая свою ферму.

Файлы без папок, расположенные в корневой директории Фруктовой Фермы:

  1. .htaccess - Файл настроек директории и вложенных в неё файлов.
  2. captcha.php - Капча. Проверка пользователя на бота. Обычно используется при регистрации или выполнении определенных действий.
  3. cron_job.php - файл настройки расписаний/рассылки на e-mail.
  4. fail.html - страница ошибки. Например, перенаправление на эту страницу, при неудачной попытке оплатить услуги.
  5. favicon.ico - иконка Вашего сайта. Отображаемая пиктограмма, слева на вкладке окна браузера.
  6. index.php - страница по умолчанию. Обычно является главной страницей сайта.
  7. payeer_merchant.php - файл конфигурации оплаты с помощью системы PAYEER. Иными словами - Мерчант.
  8. success.html - страница перенаправления удачного завершения процедуры. Например, платежа.


Папка Casche и хранимые в ней файлы/папки:
Весь хранимый кеш. В зависимости от настроек может хранить кешированную информацию Вашего сайта.

Папка classes:
Папка содержит классы, которые будут применяться на сайте.

  1. .htaccess - Файл настроек директории и вложенных в неё файлов.
  2. _class.config.php - Файл настройки и коннекта с базой данных, API-магазина и пользователя.
  3. _class.db.php - класс, используемых функций и процедур при работе с Базой Данных.
  4. _class.func.php - класс функций, раз или более используемых в Ваших скриптах. Например отправка e-mail, настройка времени сбора фруктов.
  5. _class.isender.php - класс подробной настройки исходящих писем пользователям. Например отправка письма по выполнению процедуры "Забыли пароль".
  6. _class.navigator.php - класс настройки навигации по страницам сайта, а так же нумерация страниц.
  7. _class.rfs_payeer.php - класс настройки работы с рефералами. Получение и привязка страниц регистрации, получение id и построение системы.
  8. _class.webmoney.php - класс настройки приема платежей webmoney.
Папка Cron_Job:
Папка с файлом-страницей (_sender.php) отправки массовой рассылки зарегистрированным пользователям.

Папка Fonts:
Содержит файлы шрифтов, используемых на сайте.


Папка img:
Папка и вложенные в неё папки содержат изображения, используемые на ресурсе. Изображения фруктов, вывесок, указателей, иконок кнопок и т.д.

Папка inc:
Содержит в себе подключаемые файлы/модули/скрипты. Они подключаются в зависимости от каких-либо действий пользователя. Например, страница регистрации не имеет никаких контейнеров по бокам, но после регистрации/авторизации появляется меню пользователя/администратора. Это и есть подклчаемые файлы.

  1. _admin_menu.php - меню администратора.
  2. _footer.php - подвал сайта (низ страниц). Присутствует на всех страницах сайта. Контент в середине экрана может меняться, а подвал остается прежним.
  3. _header.php - голова/шапка сайта. Аналог _footer.php
  4. _login.php - меню кнопок для авторизации (поле логин и пароль)
  5. _menu_left.php - Определение меню слева, как меню администратора или меню пользователя, в зависимости от того, как была произведена авторизация на сайте.
  6. _menu_top.php - меню сверху, обычно располагается в _header.php
  7. _set_referer.php - установка рефера при регистрации по ссылке.
  8. _stats.php - статистика сайта. Время работы, кол-во зарегистрированных пользователе/новых за 24 часа.
  9. _user_menu.php - меню слева от контента. Кнопки: Главная, ферма, торговая лавка, обменник и т.д.


    Папка js:
    Все вложенные файлы и папки содержат js-скрипты и библиотеки, используемые на сайте.

    Папка pages:
    Содержит файлы страниц Вашего сайта.
    1. _404.php - несуществующая страница с ошибкой 404.
    2. _about.php - страница "О сайте".
    3. _account.php - файл, описывающий структуру директории /account и все подключаемые страницы.
    4. _admin.php - файл, описывающий структуру директории /adminи все подключаемые страницы.
    5. _contacts.php - страница с описанием Контактов администрации.
    6. _index.php - "Главная". Страница, куда перекидывает пользователей сразу после авторизации.
    7. _news.php - Страница "Новости".
    8. _payments_list.php - страница, отображающая все выплаты за определенный период и суммирует их.
    9. _recovery.php - страница восстановления доступа к сайту.
    10. _rules.php - правила сайта.
    11. _signup.php - Регистрация.
    12. _users_list.php - Список пользователей сайта. Их ID, ники и e-mail.
    Папка style:
    Содержит файл с настройками стилей на сайте. Таблица стилей, иначе.

    Папка Pages/Account:
    Вложенная папка директории pages содержит файлы, относящиеся к исполнению обычных пользователей. 
    1. _bonus.php - страница получения ежедневного бонуса.
    2. _config.php - страница настроек аккаунта (смена пароля и т.д.).
    3. _farm.php - страница покупки деревьев.
    4. _insert.php - страница пополнения счета.
    5. _market.php - страница продажи фруктов.
    6. _payment.php - страница заказа выплаты
    7. _referals.php - страница рефералов
    8. _store.php - склад фруктов.
    9. _swap.php - обменник серебра со счета для вывода на счет для покупок.
    10. _user_account.php - информация о Вашем аккаунте (дата регистрации, сумма вложений...).

    Папка Pages/Admin:
    Вложенная папка директории pages содержит файлы, относящиеся к настройке системы и снятия статистики обычных пользователей. 

    _about.php - настройка страницы "О сайте". Наполнение.
    _config.php - страница настроек системы (стоимость фруктов, деревьев и т.д.) и пароля администратора.
    _contacts.php - настройки страницы "Контакты администрации". Наполнение.
    _login.php - страница авторизации администратора.
    _news_a.php - настройка страницы новостей. Наполнение.
    _payments.php - статистика выплат пользователями. Баланс Payeer.
    _rules.php - настройка страницы "Правила". Наполнение.
    _sender.php - массовая рассылка.
    _stats.php - статистика баланса пользователей, кол-ва серебра за время игры.
    _story_buy.php - история покупок деревьев
    _story_donations.php - история пожертвований
    _story_insert.php - история пополнений. Статистика по дням, месяцам
    _story_sell.php - история продажи фруктов, статистика полученной прибыли пользователей.
    _story_swap.php - история обмена в "Обменнике" (_swap.php).
    _users.php - список пользователей проекта, их данные (id, логин, пароль, e-mail).








    что? где? когда? Работа с log-файлами фруктовой фермы.

    Ваш хостер должен предоставлять ежедневно файлы активностей Ваших пользователей и в заданные промежутки обновлять информацию в файлах.

    В зависимости от хостера они могут нести разные имена, отличные от тех, пример которых я приведу.
    Как правило, файлы хранятся в корневой директории Вашего сайта.


    ---------------------------------------------------------------------------------------------------------------------
    Рассмотрим пример одного из файлов. Обычно они заполняются одинаково:

    Ваш_сайт.ru 5.255.253.131 - - [30/Aug/2014:06:33:51 +0400] "GET /robots.txt HTTP/1.0404 208 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"

    Ваш_сайт.ru 66.249.64.149 - - [30/Aug/2014:06:44:39 +0400] "GET / HTTP/1.0200 13269 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

    Ваш_сайт.ru 5.255.253.131 - - [30/Aug/2014:07:04:52 +0400] "GET / HTTP/1.0200 13269 "-" "Mozilla/5.0 (compatible; YandexMetrika/3.0; +http://yandex.com/bots)"

    Ваш_сайт.ru 91.221.109.101 - - [30/Aug/2014:07:09:50 +0400] "GET /user/register HTTP/1.0404 211 "-" "Mozilla/5.0 (Windows NT 6.2; WOW64) Runet-Research-Crawler (itrack.ru/research/cmsrate; rating@itrack.ru)"

    Ваш_сайт.ru 134.249.51.93 - - [30/Aug/2014:07:24:10 +0400] "GET / HTTP/1.0200 13269 "http://Ваш_сайт.ru/" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0"

    Ваш_сайт.ru 134.249.51.93 - - [30/Aug/2014:07:24:11 +0400] "GET /signup HTTP/1.0200 12515 "http://Ваш_сайт.ru/signup" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0"

    Ваш_сайт.ru 134.249.51.93 - - [30/Aug/2014:07:24:11 +0400] "GET /captcha.php?rnd=3292 HTTP/1.0200 10857 "http://Ваш_сайт.ru/signup" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0"

    Ваш_сайт.ru 134.249.51.93 - - [30/Aug/2014:07:24:11 +0400] "POST /signup HTTP/1.0200 12630 "http://Ваш_сайт.ru/signup" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0"
    ---------------------------------------------------------------------------------------------------------------------
    Зеленый. Действия, которые производятся на ресурс. В данном случае объектом является Ваш сайт. Конкретнее домен.
    Фиолетовый. С какого IP-адреса производились действия.
    Оранжевый. Время производимых действий.
    Красный. Тип запроса, выполняемый пользователем на Вашем сервере. GET - получение адреса, POST - отправка (submit). Вот тут и следует обращать особое внимание, мошеннические запросы фиксируются тут, но впрочем как и тут будут простые запросы.
    Синий. Код состояния страницы HTTP:
    200 - страница успешно создана/открыта
    404 - страницы не существует.
    Все коды можно посмотреть на wiki
    Розовый. Количество отданного сервером объема (трафик; в байтах).
    Серый. URL-источник выполнения запроса. То есть с какой страницы/адреса Вашего сервера был произведен запрос. Здесь тоже смотрите внимательно. Этот параметр показывает Вам, где у Вас возможна дыра. То есть покажет Вам с какой страницы мошенник произвел запрос и например, снял с Вашего счета деньги.
    Черный. Клиент пользователя. 

    Пример
    Ваш_сайт.ru 134.249.51.93 - - [30/Aug/2014:07:24:11 +0400] "POST /signup HTTP/1.0" 200 12630 "http://Ваш_сайт.ru/signup" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0"
    Перевод:
    30 августа 2014 года, в 7:24:11 На Вашем сайте пользователь с IP 134.249.51.93 авторизовался со страницы Ваш_сайт.ru/signup (использовался метод POST - обработчик кнопки "Войти) с браузера Firefox 27.0.