Здравствуйте, гость ( Вход | Регистрация )

Навигация

Ссылки форума

Навигация по форуму

 
Reply to this topicStart new topic
шара + помощь
MrMario
сообщение 3.6.2009, 21:58
Сообщение #1



Тру падонак
Группа: La2base Clients
Сообщений: 184
Регистрация: 16.11.2008
Поблагодарили: 89 *


Вообщемс есть скриптик для smsexpress.ru, ну там чтобы автоматом выдавать вещи за смс через сайт, но там 1 трабла, хз чо писать в поле $secretkey = 'тут непонял'; // ключ smsexpress

вот сам скрипт
скрипт

<?

// тут настраиваем

$sms = array(30, 60, 99, 130, 200, 300, 475); // стоимость смс в центах
$coins = array( 1, 1, 1, 1, 1, 1, 1); // количество монет за каждую смс
$secretkey = 'тут непонял'; // ключ smsexpress
$mysql_host = '127.0.0.1'; // хост базы
$mysql_user = 'root; // юзер
$mysql_pass = 'root'; // пасс
$mysql_base = 'l2jdb'; // название базы

// дальше не трогаем

$connected = false;
$mysql = null;
$reply = 'Ошибка безопасности. Обратитесь к администрации сервера.';

function connect()
{
global $mysql_host;
global $mysql_user;
global $mysql_pass;
global $mysql_base;
global $mysql;
global $connected;
global $reply;

if ($connected)
return;

$mysql = @mysql_connect($mysql_host, $mysql_user, $mysql_pass, true) or die($reply);
@mysql_select_db($mysql_base, $mysql) or die($reply);
$connected = true;
}

function query($query)
{
global $mysql;

if (is_null($mysql))
connect();

$result = @mysql_query($query, $mysql);
$return = array();

while ($result_line = mysql_fetch_array($result, MYSQL_ASSOC))
$return[] = $result_line;

@mysql_free_result($result);
return $return;
}

function character_exists($nick)
{
$nick = addslashes($nick);
$account = addslashes($account);
$count = query("SELECT COUNT(*) as 'count' FROM `characters` WHERE lower(`char_name`) = lower('$nick')");
return ((int)$count[0]['count'] > 0);
}

function getFreeObjId($srvId)
{
$freeId = query("SELECT MAX(`object_id`) + 1 as 'obid' FROM `temporaryObjectTable`");
return (int)$freeId[0]['obid'];
}

function payCoins($char, $count)
{
// char object id
$charId = query("SELECT `charId` FROM `characters` WHERE lower(`char_name`) = lower('$char') LIMIT 1");
$charId = $charId[0]['charId'];
if ($charId < 1) return -1;

// coins object id
$colId = query("SELECT `object_id` FROM `items` WHERE `owner_id` = '$charId' AND `item_id` = '4037' LIMIT 1");
$colId = $colId[0]['object_id'];

if ((int)$colId > 0)
{
query("UPDATE `items` SET `count`=`count`+$count WHERE `owner_id`='$charId' AND `object_id`='$colId' AND `item_id` = '4037'");
}
else
{
$colId = $this->getFreeObjId($srvId);
query("INSERT INTO `items` VALUES ('$charId', '$colId', '4037', '$count', '0', 'INVENTORY', '0', '0', '0', '-1', '')");
query("INSERT INTO `temporaryObjectTable` VALUES ('$colId')", $srvId);
}
}

$num = $_GET['num'];
$senderid = $_GET['senderid'];
$cost = $_GET['cost'];
$profit = $_GET['profit'];
$text = $_GET['text'];
$test = $_GET['test'];
$sign = $_GET['sign'];
$true_sign = md5($senderid.$cost.$profit.$text.$test.$secretkey);

if ($sign == $true_sign)
{
$char = addslashes(trim($text));
$cost = (int)$cost;
$count = 1;

if (in_array($cost, $sms))
{
for ($i = 0; $i < count($sms); $i++)
if ((int)$cost == (int)$sms[$i])
$count = (int)$coins[$i];

// персонаж существует?
if (character_exists($char))
{
// зачисляем монеты
payCoins($char, $count);
$reply = 'Персонажу зачислено '.$count.' монет удачи.';
}
else
$reply = 'Указанного персонажа не существует на сервере.';
}
else
$reply = 'Сообщение должно быть отправлено на один из номеров, указанных на сайте.';
}

echo $reply;

?>
Go to the top of the page
 
+Quote Post
BlickBoy
сообщение 3.6.2009, 22:18
Сообщение #2



Умелец
Группа: Banned
Сообщений: 273
Регистрация: 20.9.2008
Поблагодарили: 54 *


даже боюсь предположить, т.к. в php скажем мягко не очень, но рискну
Код
$num = $_GET['num'];
$senderid = $_GET['senderid'];
$cost = $_GET['cost'];
$profit = $_GET['profit'];
$text = $_GET['text'];
$test = $_GET['test'];
$sign = $_GET['sign'];
$true_sign = md5($senderid.$cost.$profit.$text.$test.$secretkey);


как я понял метод передачи параметров GET т.е. в строке браузера без шифровки можно узнать всю инфу (senderid - вот например id отправителя)
в данном случае идет шифрование всех этих переменных(данных) в md5, но чтобы сделать это более безопасным сюда добавлен еще secretkey. по этому могу предположить, что в объявлении переменной можно указать просто набор символов, чем он будет сложнее тем безопаснее....
например так
$secretkey = 'zYtH657JklNMt744cd';
если ошибся не ругайте:)))
Go to the top of the page
 
+Quote Post
MrMario
сообщение 3.6.2009, 22:28
Сообщение #3



Тру падонак
Группа: La2base Clients
Сообщений: 184
Регистрация: 16.11.2008
Поблагодарили: 89 *


да но там просит секрет ключь с smsexpress а его я там вообще не видел
Go to the top of the page
 
+Quote Post
BlickBoy
сообщение 3.6.2009, 22:37
Сообщение #4



Умелец
Группа: Banned
Сообщений: 273
Регистрация: 20.9.2008
Поблагодарили: 54 *


ну тогда посмотри в ЛК на их сайте может что и сработает например
Код
После регистрации в системе и проверки ваших данных модератором, вам необходимо войти в систему, в раздел мои счета и в строке с интересующим вас счетом перейти по ссылке Код оплаты. На странице вы сможете получить код для размещения на вашем сайте.

из этого кода возможно что то вытянуть можно?
Go to the top of the page
 
+Quote Post
MrMario
сообщение 3.6.2009, 22:52
Сообщение #5



Тру падонак
Группа: La2base Clients
Сообщений: 184
Регистрация: 16.11.2008
Поблагодарили: 89 *


нету там ничо
Go to the top of the page
 
+Quote Post
MrMario
сообщение 4.6.2009, 11:12
Сообщение #6



Тру падонак
Группа: La2base Clients
Сообщений: 184
Регистрация: 16.11.2008
Поблагодарили: 89 *


ап
Go to the top of the page
 
+Quote Post
SeTuM
сообщение 4.6.2009, 11:19
Сообщение #7



Свой человек
Группа: Advanced Members
Сообщений: 182
Регистрация: 31.1.2008
Поблагодарили: 42 *


Мммм,там не ясно где Айди самой монетки...и secretkeys Это вроде номер счета...либо та цыфра которую должен присылать сам сайт по скрипту....
Go to the top of the page
 
+Quote Post
MrMario
сообщение 4.6.2009, 11:32
Сообщение #8



Тру падонак
Группа: La2base Clients
Сообщений: 184
Регистрация: 16.11.2008
Поблагодарили: 89 *


query("INSERT INTO `items` VALUES ('$charId', '$colId', '4037', '$count', '0', 'INVENTORY', '0', '0', '0', '-1', '')");

У меня вообще ошибку пишет когда пишу скрипт, типо нет конекта к базе, хотя всё верно прописано.
(Ошибка безопасности. Обратитесь к администрации сервера.)

Сообщение отредактировал MrMario - 4.6.2009, 11:23
Go to the top of the page
 
+Quote Post
MrMario
сообщение 6.6.2009, 11:34
Сообщение #9



Тру падонак
Группа: La2base Clients
Сообщений: 184
Регистрация: 16.11.2008
Поблагодарили: 89 *


на правах апа
Go to the top of the page
 
+Quote Post
x3k
сообщение 6.6.2009, 15:50
Сообщение #10



Новичок
Группа: Newbies
Сообщений: 8
Регистрация: 28.4.2009
Поблагодарили: 0 *


$secretkey. Переменная содержит значение указанного в настройках счета секретного ключа, необходимого для проверки достоверности полученного запроса. Вам необходимо изменить ее значение на то, что Вы указали в настройках счета.
Go to the top of the page
 
+Quote Post
MrMario
сообщение 6.6.2009, 15:52
Сообщение #11



Тру падонак
Группа: La2base Clients
Сообщений: 184
Регистрация: 16.11.2008
Поблагодарили: 89 *


непонял crazy.gif
Go to the top of the page
 
+Quote Post
x3k
сообщение 6.6.2009, 15:57
Сообщение #12



Новичок
Группа: Newbies
Сообщений: 8
Регистрация: 28.4.2009
Поблагодарили: 0 *


В настройки свои на smsexpress'е зайди или как его там...
Go to the top of the page
 
+Quote Post
MrMario
сообщение 6.6.2009, 15:59
Сообщение #13



Тру падонак
Группа: La2base Clients
Сообщений: 184
Регистрация: 16.11.2008
Поблагодарили: 89 *


Ничего подобного там нету.
Go to the top of the page
 
+Quote Post
x3k
сообщение 6.6.2009, 16:16
Сообщение #14



Новичок
Группа: Newbies
Сообщений: 8
Регистрация: 28.4.2009
Поблагодарили: 0 *


Блин, так лень, лан... ICQ: 666977
Go to the top of the page
 
+Quote Post
x3k
сообщение 6.6.2009, 17:15
Сообщение #15



Новичок
Группа: Newbies
Сообщений: 8
Регистрация: 28.4.2009
Поблагодарили: 0 *


Код
$num = $_GET['num'];
$senderid = $_GET['senderid'];
$cost = $_GET['cost'];
$profit = $_GET['profit'];
$text = $_GET['text'];
$test = $_GET['test'];
$sign = $_GET['sign'];
$true_sign = md5($senderid.$cost.$profit.$text.$test.$secretkey);

if ($sign == $true_sign)


плакаль :D
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 13.6.2026, 11:43