На прикладі цього хостингу будуть розібрані подібні випадки.
x10hosting.com - безкоштовний PHP CGI mySQL хостинг без реклами.
Майже ідеальний, але c кількома неприємними особливостями.
Одна з його неприємних особливостей - якщо 2 тижні не заходити на форум, то сайт блокується!
На прикладі цього хостингу будуть розібрані подібні випадки.
Так як на хостингу включені CURL (бібліотека для роботи з URL-запитами, зазвичай дозволена частіше ніж fsockopen) і доступні cronи (виконання скриптів за розкладом), то напрошується наступне рішення:
1) У браузер Mozilla Firefox встановіть розширення LiveHTTPHeaders.
(Користувачам інших браузерів залишається тільки аналізувати сторінку авторизації)
2) Відкрийте його.
3) Тепер необхідно авторизуватися на форумі.
4) Подивіться заголовки запиту для сторінки https://forums.x10hosting.com/login.php
Далі було з'ясовано, що для x10hosting.com використовуються наступні параметри POST:
vb_login_username =<логин>vb_login_password =<что-то не похожее на пароль, у автора тут пустота>cookieuser = 1s = securitytoken = guestdo = loginvb_login_md5password =vb_login_md5password_utf =;
5) Напишіть скрипт PHP:
antisuspend
$ Uri = "https://forums.x10hosting.com/login.php?do=login" - // адреса сторінки авторизації $ Ch = curl_init ($ uri) - // ініціалізувавши CURL.
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ ch, CURLOPT_URL, $ uri);
curl_setopt ($ ch, CURLOPT_HEADER, true) - // показує заголовок, можна поставити false
// Curl_setopt ($ ch, CURLOPT_CUSTOMREQUEST, "POST");
// Cookies
curl_setopt ($ ch, CURLOPT_COOKIEJAR, "cook");
curl_setopt ($ ch, CURLOPT_COOKIEFILE, "cook");
curl_setopt ($ ch, CURLOPT_POST, 1) - // запит методом POST
curl_setopt ($ ch, CURLOPT_POSTFIELDS, "vb_login_username =<ваш логин>vb_login_password = cookieuser = 1s = securitytoken = guestdo = loginvb_login_md5password =vb_login_md5password_utf =") - // Встановлюємо змінні POST
$ Res = curl_exec ($ ch) - // виконуємо запит
// Echo $ res;
if (stristr ($ res, "Thank you for logging in")) $ strl = "antisuspended" - // якщо авторизуватися
else $ strl = "FAILED" - // якщо НЕ авторизуватися
echo $ strl-
$ Log = fopen ("antisuspension.log", "a +") - // відкриваємо файл
fwrite ($ log, "$ strl: t" .date ("dmY DH: i: s"). " n") - // скрипт пише рядок в лог
fclose ($ log) - // закриваємо файл
?>
6) Поставте cron на скрипт на щотижня.
Тепер щотижня скрипт автоматично заходить на форум, отже, забанити аккаунт з цієї причини не можна.
Джерело - автор статті.