ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Помогите настроить скрипт
  #1  
Старый 28.07.2009, 21:32
andreipup
Постоянный
Регистрация: 21.08.2007
Сообщений: 408
Провел на форуме:
1105135

Репутация: 35
Отправить сообщение для andreipup с помощью ICQ
По умолчанию Помогите настроить скрипт

Название скрипта
Member_Zone_1.5

ссылка на скрипт

Файлы
папка img <---- Тут картинки
папка db <---- Тут как я понял генеряца ключи

x-sms.php
Код:
<?php

require_once(dirname(__FILE__).'/lib.inc.php');

//////////////////////////////////////////////////////////////////////////////////////////////////

$RESPONSE = array();
$RESPONSE[]= "smsid:".$_GET['smsid'];
$RESPONSE[]= "status:reply";
$RESPONSE[]= "content-type:text/plain";
$RESPONSE[]= "";

$storage = new Membership_PasswordStorage;
if($storage->isValidNumber()){
  $pw = $storage->GeneratePassword($_GET['smsid']);
  $storage->Add($pw);
  $RESPONSE[] = "Ваш пароль: $pw";
}else{
  $RESPONSE[] = "Вы отправили не на тот номер! Повторите на номер указанный на сайте";
}
echo join("\n",$RESPONSE);

?>
x-cron.php
Код:
<?php

require_once(dirname(__FILE__).'/lib.inc.php');

$storage = new Membership_PasswordStorage;
$storage->Cron();
protected.php
Код:
<?php

/**
 * Указываем путь к библиотеке!
 */
require_once('lib.inc.php');

/**
 * Проверяем пользователя. Если пароль просрочен, выводим сообщение об ошибке
 */
$t = new Membership_Credentials();
if( false == $t->IsAuthenticated() )
{
 echo 'Введите пароль, вы не вошли в систему';
 exit;
}
// Ниже размещается код закрытого раздела, нами показан простой пример вставки ссылки

echo '

<html>

<head>
<title>Закрытая зона</title>
</head>
<body>
<p>Скачать данный файл:</p>
<p><a href="http://your_site.com/member_zone/primer_file.zip">Cкачать</a></p>
</body>

</html>

';

?>
operators.php
Код:
<?php
$PREFIX = 'SMSPROXY'; // Введите ваш префикс 

// Необходимо поставить короткие номера в соответствии со странами. По умолчанию выставлены номера максимальной стоимости.

$ru = '3649' ; // Введите короткий номер для России 
$au = '0930399999' ; // Введите короткий номер для Австрии
$est = '17013' ; // Введите короткий номер для Эстонии
$be = '7796' ; // Введите короткий номер для Бельгии
$gb = '79067' ; // Введите короткий номер для Великобритании
$cz = '9090199' ; // Введите короткий номер для Чехии
$sp = '5339' ; // Введите короткий номер для Испании
$fi = '179479' ; // Введите короткий номер для Финляндии
$fr = '83868' ; // Введите короткий номер для Франции
$de = '80888' ; // Введите короткий номер для Германии
$hu = '090645045' ; // Введите короткий номер для Венгрии
$kg = '1171' ; // Введите короткий номер для Киргизии
$kz = '9915' ; // Введите короткий номер для Казахстана
$lv = '1874' ; // Введите короткий номер для Латвии
$lt = '1645' ; // Введите короткий номер для Литвы
$nl = '7117' ; // Введите короткий номер для Нидерландов (Голландии)
$no = '2322' ; // Введите короткий номер для Норвегии
$pl = '7910' ; // Введите короткий номер для Польши
$pr = '4565' ; // Введите короткий номер для Португалии
$se = '72170' ; // Введите короткий номер для Швеции
$tj = '1171' ; // Введите короткий номер для Таджикистана
$ua = '5014' ; // Введите короткий номер для Украины
lib.inc.php
Код:
<?php

error_reporting(E_ALL & ~ E_NOTICE);

require_once(dirname(__FILE__).'/config.php');

/// DEFINITIONS //

define('MEMBERSHIP_PASSWORD_LIFETIME_SEC',MEMBERSHIP_PASSWORD_LIFETIME * 3600 * 24);

define("MEMBERSHIP_PASSWORD_VALID", 0);
define("MEMBERSHIP_PASSWORD_EXPIRED",1);
define("MEMBERSHIP_PASSWORD_INVALID",2);

/// CLASSES ///

class Membership_Credentials
{
	function Membership_Credentials()
	{}

	function IsAuthenticated()
	{
		if( $_COOKIE['timem'] == $this->_Sign($_COOKIE['time']) && $_COOKIE['time'] >= time() )
		{
			return true;
		}
		return false;
	}

	function Save($password)
	{
		$ps = new Membership_PasswordStorage();
		$o = $ps->Expires($password);
		$this->_SetCookie('time',$o);
		$this->_SetCookie('timem',$this->_Sign($o));
	}

	function _Sign($s)
	{
		return md5($s . $_SERVER['SERVER_SOFTWARE'] . $_SERVER['HTTP_USER_AGENT'] . __FILE__ );
	}

	function _SetCookie($key,$val)
	{
		setCookie($key,$val,time() + MEMBERSHIP_PASSWORD_LIFETIME_SEC,'/',".".$_SERVER['HTTP_HOST']);
	}

}

class Membership_PasswordStorage
{

	var $db = '';
	
	/**
	 * Constructor
	 */
	function Membership_PasswordStorage()
	{
		$this->db = dirname(__FILE__).'/db';
	}
	
	/**
	 * @return void
	 */
	function Add($password)
	{
		file_put_contents($this->file($password),time() + MEMBERSHIP_PASSWORD_LIFETIME_SEC);
	}

	/**
	 * @return int
	 */
	function Expires($password)
	{
		return file_get_contents($this->file($password));
	}

	/**
	 * @return boolean
	 */
	function Get($password)
	{
		if( !preg_match('/^[a-zA-Z0-9]{'.MEMBERSHIP_PASSWORD_LENGTH.'}$/',$password) )
		{
			return MEMBERSHIP_PASSWORD_INVALID;
		}
		if( file_exists($this->file($password)) && is_file($this->file($password)) )
		{
			$time = file_get_contents($this->file($password));
			if( $this->isValid($time) )
			{
				return MEMBERSHIP_PASSWORD_VALID;
			}
			else
			{
			//	@unlink($this->file($password));
				return MEMBERSHIP_PASSWORD_EXPIRED;
			}
		}
		else
		{
			return MEMBERSHIP_PASSWORD_INVALID;
		}
	}

	function isValidNumber()
	{
        $numbers = split(',',trim(MEMBERSHIP_NUMBERS_PAY));
		if( !in_array($_GET['num'],$numbers) )
        {
            return FALSE;
        }
        else
        {
            return TRUE;
        }
	}

	function file($pw)
	{
		return $this->db . '/' . $pw;
	}

	function isValid($time)
	{
		return $time >= time();
	}

	/**
	 * @return void
	 */
	function Cron()
	{
		if ($handle = opendir($this->db))
		{
			while (false !== ($file = readdir($handle)))
			{
				if ($file != "." && $file != "..") 
				{
					$t = file_get_contents($this->file($file));
					if( !$this->isValid($t) )
					{
						@unlink($this->file($file));
					}
				}
			}
			closedir($handle);
		}
	}

	function GeneratePassword($salt)
	{
		$hash = md5($salt);
		return substr($hash,0,MEMBERSHIP_PASSWORD_LENGTH);
	}

}

class Membership_Printers
{

	function print_js_countries()
	{
		include(dirname(__FILE__).'/operators.php'); 
		$g = array();
		foreach( $operators as $operator ){
			$a = array();
			foreach( $operator as $key => $val ){
				$a[] = "'$key' : '".str_replace("'","\\'",$val)."'";
			}
			$g[] = '{'.join(",",$a).'}';
		}
		echo join(",",$g);
	}

	function print_html_countries()
	{
		include(dirname(__FILE__).'/operators.php'); 
		foreach( $operators as $key => $operator ){
			echo '<option value="'.$key.'">'.$operator['country'].'</option>';
		}
	}
}

if( !function_exists('file_put_contents') )
{
	function file_put_contents($file,$conts)
	{
		$fp = fopen($file,'wb');
		fwrite($fp,$conts);
		fclose($fp);
	}
}
index.php
Код:
<?php

require_once(dirname(__FILE__).'/lib.inc.php');
require_once(dirname(__FILE__).'/operators.php');

if( $_POST['action'] == 'login' )
{
	//check credentials
	$storage = new Membership_PasswordStorage;
	$isError = $storage->Get($_POST['password']);
	if( $isError == MEMBERSHIP_PASSWORD_VALID )
	{
		$c = new Membership_Credentials();
		$c->Save($_POST['password']);
		Header("Location: ". MEMBERSHIP_DESTINATION);
		Header("Content-Length: 0"); 
		Header("");
		exit;
	}
}

// printing the template

?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//en">
<html>
<head>

	<title>Получение доступа к сайту</title>
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
	<META NAME="ROBOTS" CONTENT="NOINDEX">
	<META NAME="ROBOTS" CONTENT="NOFOLLOW">
</head>
<body>
<center>
<table cellpadding="0" cellspacing="0" width="500" style="font-family:tahoma;font-weight:bold;font-size:16px;">
	 <tr>
	   <td align="center" valign="top"><img src="img/sms.jpg" align="left"><br>Отправьте SMS с текстом<br><font color="#FF0000"><?echo $PREFIX; ?></font><br>
	     на номер в вашей стране: 
	   </td>
     </tr>
	 <tr>
   	    <td align="center" valign="top">
	  	 <table width="500" border="0" cellspacing="4" style="font-family:arial;font-weight:bold;font-size:12px;">
            <tr>
                <td height="1"></td>
                <td height="1"></td>
                <td align="center" height="1"><img src="img/clear.gif"></td>
                <td height="1" bgcolor="#FFFFFF"></td>
              <td></td>
                <td></td>
                <td align="center"><img src="img/clear.gif"></td>
              </tr>               <tr background="img/bgm.png">
                <td ><img src="img/flags/ru.gif" width="40" height="24"></td>
                <td >Россия</td>
                <td width="90" align="center" ><? echo $ru; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/kz.gif" alt="" width="40" height="24"></td>
                <td >Казахстан</td>
                <td width="90" align="center" ><? echo $kz; ?></td>
              </tr>
               <tr background="img/bgm.png">
                <td ><img src="img/flags/aus.gif" alt="" width="40" height="24"></td>
                <td >Австрия</td>
                <td width="90" align="center" ><? echo $au; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/ua.gif" alt="" width="40" height="24"></td>
                <td >Украина</td>
                <td width="90" align="center" ><? echo $ua; ?></td>
              </tr>
               <tr background="img/bgm.png">
                <td ><img src="img/flags/est.gif" alt="" width="40" height="24"></td>
                <td >Эстония</td>
                <td width="90" align="center" ><? echo $est; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/kirg.gif" alt="" width="40" height="24"></td>
                <td >Киргизия</td>
                <td width="90" align="center" ><? echo $kg; ?></td>
              </tr>
               <tr background="img/bgm.png">
                <td ><img src="img/flags/be.gif" alt="" width="40" height="24"></td>
                <td >Бельгия</td>
                <td width="90" align="center" ><? echo $be; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/la.gif" alt="" width="40" height="24"></td>
                <td >Латвия</td>
                <td width="90" align="center" ><? echo $lt; ?></td>
              </tr>
               <tr background="img/bgm.png">
                <td ><img src="img/flags/br.gif" alt="" width="40" height="24"></td>
                <td >Великобритания</td>
                <td width="90" align="center" ><? echo $gb; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/li.gif" alt="" width="40" height="24"></td>
                <td >Литва</td>
                <td width="90" align="center" ><? echo $lv; ?></td>
              </tr>
               <tr background="img/bgm.png">
                <td ><img src="img/flags/cz.gif" alt="" width="40" height="24"></td>
                <td >Чехия</td>
                <td width="90" align="center" ><? echo $cz; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/nd.gif" alt="" width="40" height="24"></td>
                <td >Нидерланды</td>
                <td width="90" align="center" ><? echo $nl; ?></td>
              </tr>
               <tr background="img/bgm.png">
                <td ><img src="img/flags/esp.gif" alt="" width="40" height="24"></td>
                <td >Испания</td>
                <td width="90" align="center" ><? echo $sp; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/nor.gif" alt="" width="40" height="24"></td>
                <td >Норвегия</td>
                <td width="90" align="center" ><? echo $no; ?></td>
              </tr>
               <tr background="img/bgm.png">
                <td ><img src="img/flags/fin.gif" alt="" width="40" height="24"></td>
                <td >Финляндия</td>
                <td width="90" align="center" ><? echo $fi; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/pol.gif" alt="" width="40" height="24"></td>
                <td >Польша</td>
                <td width="90" align="center" ><? echo $pl; ?></td>
              </tr>
               <tr background="img/bgm.png">
                <td ><img src="img/flags/fr.gif" alt="" width="40" height="24"></td>
                <td >Франция</td>
                <td width="90" align="center" ><? echo $fr; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/port.gif" alt="" width="40" height="24"></td>
                <td >Португалия</td>
                <td width="90" align="center" ><? echo $pr; ?></td>
              </tr>
               <tr background="img/bgm.png">
                <td ><img src="img/flags/ger.gif" alt="" width="40" height="24"></td>
                <td >Германия</td>
                <td width="90" align="center" ><? echo $de; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/swe.gif" alt="" width="40" height="24"></td>
                <td >Швеция</td>
                <td width="90" align="center" ><? echo $se; ?></td>
              </tr>
               <tr background="img/bgm.png">
                <td ><img src="img/flags/hung.gif" alt="" width="40" height="24"></td>
                <td >Венгрия</td>
                <td width="90" align="center" ><? echo $hu; ?></td>
                <td bgcolor="#FFFFFF" >&nbsp;</td>
                <td ><img src="img/flags/ta.gif" alt="" width="40" height="24"></td>
                <td >Таджикистан</td>
                <td width="90" align="center" ><? echo $tj; ?></td>
              </tr>
          </table>

	<p>Полученный код доступа введите в эту форму:</p>
	<p>
				<?php if( !$isError ) { ?>&nbsp;<? } elseif( $isError == MEMBERSHIP_PASSWORD_EXPIRED ){ ?><br>
		  <center><b>Срок действия пароля истек</b></center>
                <? } elseif( $isError == MEMBERSHIP_PASSWORD_INVALID ) { ?>
          <center><b>Такого пароля нет</b></center>
                <? } ?>
	</p>

		<div style="width:323px;background:#e3e3e3;border:1px;">
				<form method="post" action="<?=$_SERVER['REQUEST_URI']?>" >
					<input type="hidden" name="action" value="login" />
					<input type="text" name="password" /> <input type="submit" name="submit" value="Войти" />
				</form>
		</div>

	<p><a href="http://russianbilling.com/abonent.php" title="SMS-доступ, стоимость"><img src="http://russianbilling.com/buttons/2/black.jpg" border="0"></a></p>
</td></tr>
</table>
</center>
</body>
</html>
config.php
Код:
<?php

/**
 * Время жизни пароля, в днях.
 */
define('MEMBERSHIP_PASSWORD_LIFETIME', 30);

/**
 * Страница, на которую попадает пользователь если ввёл правильный пароль
 */
define('MEMBERSHIP_DESTINATION', "./protected.php");

/**
 * Длина пароля, в символах
 */
define('MEMBERSHIP_PASSWORD_LENGTH', 6);

/**
 * Номера телефонов с которого оплата разрешена, через запятую!
 */
define('MEMBERSHIP_NUMBERS_PAY', '3649,17013,0930399999,9014,7796,79067,9090199,5339,179479,83868,80888,090645045,9915,5014,1645,1171,1874,7117,2322,7910,4565,72170');
readme
Код:
Спасибо, что воспользовались услугами SMSProxy.

Установка скриптов не займет много времени и не потребует от Вас специфических знаний.

1. Распаковать себе на сервер архив
   Если Вы разместили скрипты по адресу http://ваш_домен/member_zone/, то настройка будет выглядеть следующим образом.
2. Выставить права на запись для директории /db
3. Разместить контент в файле protected.php 
4. Изменить параметры своего аккаунта, расположенные в /operators.php 
   (добавить свой префикс и при необходимости изменить номера и тарифы, т.к. по умолчанию указаны максимальные)
   В файле config.php перечисляются номера, с которых разрешены запросы (чтобы вас не обманывали, отправляя смс на 
   номера меньшей стоимости), время жизни пароля, длина пароля, страница, на которую необходимо направить пользователя
   после авторизации.
5. Установить раз в сутки cron на запуск файла /x-cron.php, который будет удалять невалидные пароли
   (Как настроить cron читайте здесь: http://masterhost.ru/support/doc/cron/). Вы также можете удалять пароли вручную, сортируя их по дате.
6. Рекламу с ссылкой http://ваш_домен/member_zone/index.php

После ввода пароля на этой странице, пользователь попадет на ваш закрытый раздел.
Установка скриптов на сервере законченa.


Теперь  необходимо настроить Ваш сервис на SMSProxy
1. Создайте новый сервис в Кабинете, в качестве URL пропишите http адрес скрипта http://ваш_домен/member_zone/x-sms.php
2. Протестируйте работу скрипта нажав Тест (не забудьте указать перфиксы)

Остается положить контент в папку на сервере, и закрыть к ней доступ, используя htaccess. 

Пример:

RewriteEngine   On
RewriteCond %{HTTP_REFERER} !^http://ВАШ_ДОМЕН.ru/member_zone/protected.php.*$ [NC] 
RewriteCond %{HTTP_REFERER} !^http://www.ВАШ_ДОМЕН.ru/member_zone/protected.php.*$ [NC] 
# Все ваши файлы можно будет скачать ТОЛЬКО со страницы protected.php
#RewriteCond %{HTTP_REFERER} !^http://ВАШ_ДОМЕН.ru/member_zone/.*$ [NC] 
#RewriteCond %{HTTP_REFERER} !^http://www.ВАШ_ДОМЕН.ru/member_zone/.*$ [NC] 
# Удалите символ перед RewriteCond, чтобы разрешить перемещение по веб-страницам внутри защищенной зоны, и разрешить скачивать контент со всех страниц, лежащих в данной папке

RewriteRule /*  -  [F]




Этот файл нужно положить в папку, где лежит контент. В таком случае, никто не сможет открыть ваше видео/картинки,
не авторизовавшись. 

Шаблон закрытой зоны по умолчанию - protected.php, это единственная страница, с которой пользователь может скачать контент,
кликнув по ссылке. 

Файл htaccess можно создать с помощью блокнота, и переименовать полученный TXT-файл в .htaccess 

Ваш сервис полностью готов к работе. 

По вопросам и пожелания обращайтесь на support.russianbilling.com

История изменений.

v 1.2
Новый файл: protected.php
Установлена защита на файл в закрытой зоне. Ранее пользователи могли запомнить ссылку закрытой зоны и неавторизовавшись посещать ее.

v 1.3 
Исправлен баг со временем действия пароля, теперь он задается именно в днях.

Внимание! 
Скрипт предназначен для раздачи паролей и авторизации пользователей. Как именно закрывать прямой доступ к контенту - решать ВАМ.
Мы рекомендуем использовать ограничение доступа по рефереру, через .htaccess

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

v 1.5
Изменена страница оплаты и выбор коротких номеров для работы.
Вообщем не пойму где генерица ключь для входа.
Примерно понял что в папке db но каким файлом не пойму(((
Подскажите бестолковому)

Последний раз редактировалось andreipup; 28.07.2009 в 21:36..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт на VBS или VBA помогите плиз !!! formatC:vt PHP, PERL, MySQL, JavaScript 3 13.07.2009 17:15
Помогите влить скрипт на сервак ... Sting Чаты 15 21.12.2006 22:39
Помогите отредактировать скрипт [Zarakul] PHP, PERL, MySQL, JavaScript 7 24.08.2006 13:12
Помогите настроить php slider PHP, PERL, MySQL, JavaScript 3 08.06.2006 16:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ