Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Туториал [урок] привенчиваем проверку md5 к клиенту

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем sashok724, 27 ноя 2011.

  1. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    @qwertyYy2, используй свой joinserver.php добавь то что нужно для проверки и все.
     
  2. Хостинг MineCraft
    <
  3. Eugene1997

    Eugene1997 Активный участник

    Баллы:
    88
    @alexandrage, скинь пожалуйста свою прогу для md5 просто к клиенту 1.4.5, и инструкции , благодарю... Лайков накидаю)
     
  4. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    @Eugene1997, при чем тут прога какая то о_О.
     
  5. Eugene1997

    Eugene1997 Активный участник

    Баллы:
    88
    Ну ты вроде понял)
     
    zuma2 нравится это.
  6. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    @Eugene1997, все файлы тут.
     
  7. Eugene1997

    Eugene1997 Активный участник

    Баллы:
    88
    Мне Forge как бы не нужен))) а инструкцию можно , сейчас скачать не могу)
     
  8. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Там есть под чистый 1.4.5 даже без модлоадера.
    И есть сорци чтоб переделать под любой майн. Все что нужно я выделил.
     
  9. qwertyYy2

    qwertyYy2 Старожил

    Баллы:
    103
    помогите, куда, как правильно добавить код alexandrage...
    <?php
    define('INCLUDE_CHECK',true);
    include ("connect.php");

    $sessionid = mysql_real_escape_string($_GET['sessionId']);
    $user = mysql_real_escape_string($_GET['user']);
    $serverid = mysql_real_escape_string($_GET['serverId']);
    //**********************************************************************
    $md5 = $_GET["s"]; //
    $realmd5 = md5(file_get_contents("MinecraftDownload/minecraft.jar")); // Сверяем MD5
    //**********************************************************************
    $result = mysql_query("Select $db_columnUser From $db_table Where $db_columnSesId='$sessionid' And $db_columnUser='$user' And $db_columnServer='$serverid'") or die ("Запрос к базе завершился ошибкой.");
    //**********************************************************
    if($md5 == $realmd5 or die ("Нарушение безопасности.")) // Ответ клиенту при неверном MD5
    //**********************************************************
    if(mysql_num_rows($result) == 1)
    {
    echo "OK";
    } else {

    $result = mysql_query("Update $db_table SET $db_columnServer='$serverid' Where $db_columnSesId='$sessionid' And $db_columnUser='$user'") or die ("Запрос к базе завершился ощибкой.");

    if(mysql_affected_rows() == 1){
    echo "OK";
    } else {
    echo "Используйте Лаунчер";
    }
    }
    ?>
    Родой от webCMR
    <?php
    require_once('../system.php');

    if (!empty($_GET['sessionId']) and !empty($_GET['user']) and !empty($_GET['serverId'])) {

    $sessionid = mysql_real_escape_string($_GET['sessionId']);
    $login = mysql_real_escape_string($_GET['user']);
    $serverid = mysql_real_escape_string($_GET['serverId']);

    if (!preg_match("/^[a-zA-Z0-9_-]+$/", $login)) {

    $str = "Join Server [Bad symbols Login] ";
    echo "Bad login";

    } elseif (!preg_match("/^[0-9]+$/", $sessionid)) {

    $str = "Join Server [Bad symbols SessionId] ";
    echo "Bad login";

    } elseif (!preg_match("/^[a-z0-9_-]+$/", $serverid)) {

    $str = "Join Server [Bad symbols ServerId] ";
    echo "Bad login";
    } else {

    $str = "Join Server [Info] Session [$sessionid] | User [$login] | Server [$serverid]\r\n";

    $result = BD("SELECT $bd_aUsername FROM $bd_table_accounts WHERE $bd_aSession='$sessionid' AND $bd_aUsername='$login' AND $bd_aServer='$serverid'");

    if(mysql_num_rows($result) == 1){
    $str .= "Join Server [Result] Relogin OK";
    echo "OK";
    } else {

    $result = BD("UPDATE $bd_table_accounts SET $bd_aServer='$serverid' WHERE $bd_aSession='$sessionid' AND $bd_aUsername='$login'");

    if(mysql_affected_rows() == 1){
    $str .= "Join Server [Result] Login OK";
    echo "OK";
    } else {
    $str .= "Join Server [Result] Bad Login NO";
    echo "Bad login";
    }
    }

    }


    } else {

    $str = "Join Server [Result] GET parameter empty ";
    if (empty($_GET['user'])) $str .= "LOGIN parameter is empty | ";
    if (empty($_GET['sessionId'])) $str .= "SESSIONID parameter is empty";
    if (empty($_GET['serverId'])) $str .= "SERVERID parameter is empty";

    echo "Bad login";

    }

    vtxtlog($str);
    ?>
     
    Сникерсни нравится это.
  10. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    Код:
    <?php
    require_once('../system.php');
     
    if (!empty($_GET['sessionId']) and !empty($_GET['user']) and !empty($_GET['serverId'])) {
     
    $sessionid = mysql_real_escape_string($_GET['sessionId']);
    $login = mysql_real_escape_string($_GET['user']);
    $serverid = mysql_real_escape_string($_GET['serverId']);
    $md5 = $_GET["s"];
    $realmd5 = md5(file_get_contents("MinecraftDownload/minecraft.jar"));
     
    if (!preg_match("/^[a-zA-Z0-9_-]+$/", $login)) {
     
    $str = "Join Server [Bad symbols Login] ";
    echo "Bad login";
     
    } elseif (!preg_match("/^[0-9]+$/", $sessionid)) {
     
    $str = "Join Server [Bad symbols SessionId] ";
    echo "Bad login";
     
    } elseif (!preg_match("/^[a-z0-9_-]+$/", $serverid)) {
     
    $str = "Join Server [Bad symbols ServerId] ";
    echo "Bad login";
    } else {
     
    $str = "Join Server [Info] Session [$sessionid] | User [$login] | Server [$serverid]\r\n";
     
    $result = BD("SELECT $bd_aUsername FROM $bd_table_accounts WHERE $bd_aSession='$sessionid' AND $bd_aUsername='$login' AND $bd_aServer='$serverid'");
    if($md5 == $realmd5 or die ("Нарушение безопасности."));
    if(mysql_num_rows($result) == 1){
    $str .= "Join Server [Result] Relogin OK";
    echo "OK";
    } else {
     
    $result = BD("UPDATE $bd_table_accounts SET $bd_aServer='$serverid' WHERE $bd_aSession='$sessionid' AND $bd_aUsername='$login'");
     
    if(mysql_affected_rows() == 1){
    $str .= "Join Server [Result] Login OK";
    echo "OK";
    } else {
    $str .= "Join Server [Result] Bad Login NO";
    echo "Bad login";
    }
    }
     
    }
     
     
    } else {
     
    $str = "Join Server [Result] GET parameter empty ";
    if (empty($_GET['user'])) $str .= "LOGIN parameter is empty | ";
    if (empty($_GET['sessionId'])) $str .= "SESSIONID parameter is empty";
    if (empty($_GET['serverId'])) $str .= "SERVERID parameter is empty";
     
    echo "Bad login";
     
    }
     
    vtxtlog($str);
    ?>
    К этой строчке присмотрись
    $realmd5 = md5(file_get_contents("MinecraftDownload/minecraft.jar"));
    Путь до minecraft.jar укажи
     
    qwertyYy2 нравится это.
  11. qwertyYy2

    qwertyYy2 Старожил

    Баллы:
    103
    спасибо, щас попробую.
     
  12. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    Хорошо, что я вовремя зашел сюда, я пролистывал код и нашел спасение от дыры в McShop
     
  13. qwertyYy2

    qwertyYy2 Старожил

    Баллы:
    103
    Вроде все правильно сделал, но почемуто нехочет блокировать кнопку сет.игра
    в клиенте указал ссылку на joinserver.php
    вроде должно блокировать кнопку, но нет, не блокируется:oops:
    Код:
    <?php
    require_once('../system.php');
     
    if (!empty($_GET['sessionId']) and !empty($_GET['user']) and !empty($_GET['serverId'])) {
     
        $sessionid = mysql_real_escape_string($_GET['sessionId']);
        $login = mysql_real_escape_string($_GET['user']);
        $serverid = mysql_real_escape_string($_GET['serverId']);
     
    $md5 = $_GET["s"];
    $realmd5 = md5(file_get_contents("MinecraftDownload/minecraft.jar"));
    $result = mysql_query("Select $db_columnUser From $db_table Where $db_columnSesId='$sessionid' And $db_columnUser='$login' And $db_columnServer='$serverid'") or die ("Запрос к базе завершился ошибкой.");
    if($md5 == $realmd5 or die ("Нарушение безопасности."))
    if(mysql_num_rows($result) == 1)
    {
        echo "OK";
    } else {
     
    $result = mysql_query("Update $db_table SET $db_columnServer='$serverid' Where $db_columnSesId='$sessionid' And $db_columnUser='$login'") or die ("Запрос к базе завершился ощибкой.");
     
        if(mysql_affected_rows() == 1){
            echo "OK";
        } else {
            echo "Используйте Лаунчер";
        }
    }
     
        if (!preg_match("/^[a-zA-Z0-9_-]+$/", $login)) {
           
                    $str = "Join Server [Bad symbols Login] ";
                    echo "Bad login";
           
        } elseif (!preg_match("/^[0-9]+$/", $sessionid)) {
           
                    $str = "Join Server [Bad symbols SessionId] ";
                    echo "Bad login";
     
        } elseif (!preg_match("/^[a-z0-9_-]+$/", $serverid)) {
           
                    $str = "Join Server [Bad symbols ServerId] ";
                    echo "Bad login";
        } else {   
     
            $str = "Join Server [Info] Session [$sessionid] | User [$login] | Server [$serverid]\r\n";
     
            $result = BD("SELECT $bd_aUsername FROM $bd_table_accounts WHERE $bd_aSession='$sessionid' AND $bd_aUsername='$login' AND $bd_aServer='$serverid'");
     
            if(mysql_num_rows($result) == 1){
                $str .= "Join Server [Result] Relogin OK";
                echo "OK";
            } else {
     
            $result = BD("UPDATE $bd_table_accounts SET $bd_aServer='$serverid' WHERE $bd_aSession='$sessionid' AND $bd_aUsername='$login'");
     
                if(mysql_affected_rows() == 1){
                    $str .= "Join Server [Result] Login OK";
                    echo "OK";
                } else {
                    $str .= "Join Server [Result] Bad Login NO";
                    echo "Bad login";
                }
            }
           
        }
     
     
    } else {
       
        $str = "Join Server [Result] GET parameter empty ";
        if (empty($_GET['user'])) $str .= "LOGIN parameter is empty | ";
        if (empty($_GET['sessionId'])) $str .= "SESSIONID parameter is empty";
        if (empty($_GET['serverId'])) $str .= "SERVERID parameter is empty";
       
        echo "Bad login";
     
    }
     
    vtxtlog($str);
    ?>
     
  14. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    Во первых: MinecraftDownload/minecraft.jar - путь до minecraft.jar
    Во вторых - это не блокирует кнопку сетевая игра, а запрещает вход на сервер при измененном клиенте.
     
  15. qwertyYy2

    qwertyYy2 Старожил

    Баллы:
    103
    Ясно, спасибо большое, проверьте пожалуйста, все ли я правильно скопипастил, через сайт в Joinserver захожу, вроде ошибок нету, bad login, все вроде правильно.
     
  16. qwertyYy2

    qwertyYy2 Старожил

    Баллы:
    103
    Ура! все работает. если подменить клиент пишет User Not Premium, если своим клиентом все нормально!
     
  17. Konstantin773

    Konstantin773 Старожил Пользователь

    Баллы:
    153
    Skype:
    Konstantin77313
    Имя в Minecraft:
    K773
    Вообще-то нужно, чтобы было "Нарушение безопасности", конечно хэш можно подменить до захода на сервер.
     
  18. qwertyYy2

    qwertyYy2 Старожил

    Баллы:
    103
    Поставил мод worldedit CUI, требует мод лоадер, в мод лоадере присутствует axz.class, если заменить на axz.class от axexandrage, то Worldedit CUI не работает, что делать.
     
  19. qwertyYy2

    qwertyYy2 Старожил

    Баллы:
    103
    Cоберите пожалуйста под ModLoader :oops: 1.4.5
     
  20. mitikostya

    mitikostya Активный участник

    Баллы:
    63
    Skype:
    mitikostya14
    Имя в Minecraft:
    mitikostya
    у меня вот такая ошибка, что делать?
    P.S. я файлы даже не менял ( для эксперимента )
     

    Вложения:

  21. Alastar

    Alastar Старожил Пользователь

    Баллы:
    173
    Этот тутор под 1.3.2 - 1.4.6 не идет -_-
     

Поделиться этой страницей