Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 3 1 2 3 ПоследняяПоследняя
Показано с 1 по 10 из 21
  1. #1
    Аватар для Elrmrnt-Kritik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.11.2017
    Сообщений
    136
    Репутация:
    10 ±

    Своеобразная система безопасности

    Нашел в исходниках MySQL такую вещь:
    PHP код:
    forward OnPlayerDataLoaded(playeridrace_check);
    public 
    OnPlayerDataLoaded(playeridrace_check)
    {
        
    /*    race condition check:
            player A connects -> SELECT query is fired -> this query takes very long
            while the query is still processing, player A with playerid 2 disconnects
            player B joins now with playerid 2 -> our laggy SELECT query is finally finished, but for the wrong player
            what do we do against it?
            we create a connection count for each playerid and increase it everytime the playerid connects or disconnects
            we also pass the current value of the connection count to our OnPlayerDataLoaded callback
            then we check if current connection count is the same as connection count we passed to the callback
            if yes, everything is okay, if not, we just kick the player
        */
        
    if (race_check != g_MysqlRaceCheck[playerid]) return Kick(playerid); 
    Действительно ли стоит создавать такие проверки? Если да, когда?

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Эмм, ну так написано же там, что при подключении. И так же описана ситуация, из-за которой такая проверка будет актуальной.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для Elrmrnt-Kritik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.11.2017
    Сообщений
    136
    Репутация:
    10 ±
    Просто эту проверку мало где можно встретить. Я и интересуюсь, нужна ли.

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Это просто перестраховка от гипотетической ситуации. На деле, если таблица и запросы реализованы нормально, задержек между ними не должно хватить для того, чтоб один игрок успел отключиться, а второй подключиться на его слот. Но и лишней такая проверка не будет, дабы просто закрыть возможную уязвимость
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. Пользователь сказал cпасибо:
    Elrmrnt-Kritik (28.03.2018)
  6. #5
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Это не совсем уязвимость, а ошибка проектирования ПО. Гонка потоков . Т.к плагин использует потоки, есть вероятность, что 2 поток, выполнится быстрей первого. Обычно в C++ это решают, через srd::mutex_lock
    Последний раз редактировалось $continue$; 28.03.2018 в 23:06.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  7. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Это не совсем уязвимость, а ошибка проектирование ПО Гонка потоков . Т.к плагин использует потоки, есть вероятность, что 2 поток, выполнится бысстрей первого.
    Ошибка проектирования так же становится уязвимостью :) И ты сказал то же самое, что и я написал выше
    +ссылка битая
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  8. #7
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Изначально это ошибка проектирование, которая в последствии может превратиться в ошибку безопасности ПО. А может и не превратиться :)
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  9. #8
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Изначально это ошибка проектирование, которая в последствии может превратиться в ошибку безопасности ПО. А может и не превратиться :)
    Эмм, ты сам понимаешь о чём говоришь? По твоей логике, если имеется возможность провести SQL инъекцию, но ей никто не пользуется, то это вовсе не уязвимость.

    *тут я начал тебе объяснять, что же является уязвимостью, но потом понял, что проще так же дать ссылку на статью из википедии*

    Собственно, вот статья

    Цитата:
    В компьютерной безопасности термин «уязвимость» используется для обозначения недостатка в системе, используя который можно намеренно нарушить её целостность и вызвать неправильную работу. Уязвимость может быть результатом ошибок программирования, недостатков, допущенных при проектировании системы, ненадежных паролей, вирусов и других вредоносных программ, скриптовых и SQL-инъекций.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  10. #9
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Изначально это ошибка проектирование
    Во-первых, научись уже склонять, "ошибка проектирования".
    Во-вторых, в чём именно ошибка? В том, что плагин позволяет делать запросы в отдельном потоке, не подвешивая основной?
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  11. #10
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Во-первых, научись уже склонять, "ошибка проектирования".
    Во-вторых, в чём именно ошибка? В том, что плагин позволяет делать запросы в отдельном потоке, не подвешивая основной?
    Если я правильно понимаю его мысль, то под ошибкой проектирования он подразумевает именно отсутствие той проверки, из-за которой запрос одного игрока может сработать на другом, если тот успеет зайти под тем же ID.
    А иначе никак подобный баг не спровоцировать, ибо кэш запросов привязан к ID (ну либо к любым другим параметрам паблика, который указывается для обработки результата запроса) и 2 запроса от разных игроков никак не смогут перебить друг друга.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 
Страница 1 из 3 1 2 3 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •