Страница 1 из 1

Обмен данными между онлайн игроками

СообщениеДобавлено: 25 авг 2019, 00:49
alexey.terno
Господа, дробный день!

Подскажите, пожалуйста, как лучше решить нижеописанную задачу.
Необходимо сделать простую онлайн игру. У каждого игрока будет свое отображение, т.е. единого мира не будет. Будет обмен информацией между игроками, на подобие, обмена-торговли, а так же сбор некоторой игровой информации для составления списка лидеров. Первое, что приходит в голову - это использовать SQL; в этом варианте я смогу легко реализовать весь задуманный функционал.
Быть может вы подскажете более правильный вариант, если он есть?

Re: Обмен данными между онлайн игроками

СообщениеДобавлено: 25 авг 2019, 11:19
Woolf
Правильный вариант - сервер, на сервере база. Обмен данными с сервером может происходить по любому протоколу. Можете через post/get запросы к скриптам, можете через tcp/ip, можете комбинировать. Напрямую из клиента обращаться к базе категорически нельзя.

Re: Обмен данными между онлайн игроками

СообщениеДобавлено: 25 авг 2019, 13:41
Jarico
Woolf писал(а):Напрямую из клиента обращаться к базе категорически нельзя.


Ну автор не совсем ведь дурак...

Re: Обмен данными между онлайн игроками

СообщениеДобавлено: 25 авг 2019, 13:55
alexey.terno
Jarico писал(а):
Woolf писал(а):Напрямую из клиента обращаться к базе категорически нельзя.


Ну автор не совсем ведь дурак...

Не факт )))
Долго ломал голову, как в клиенте скрыть данные подключения, и категорически не хотел все это прописывать в самой игре. Этой ночью узнал, что правильнее делать, например, через пхп-запросы. Даже полную схему представляю ) Только вот вопросы все равно есть. По этой схеме внутри клиента делается запрос к php-скрипту на сервере, который в свою очередь уже на прямую обращается к базе и возвращает данные. Так ведь этот index.phph или другой php файл можно открыть непосредственно с сервера и увидеть все данные подключения.
Есть еще вариант - создать дополнительную dll со всеми необходимыми функциями для работы с базой и защитить ее.

Re: Обмен данными между онлайн игроками

СообщениеДобавлено: 25 авг 2019, 15:45
Woolf
Синтаксис:
Используется csharp
Так ведь этот index.phph или другой php файл можно открыть непосредственно с сервера и увидеть все данные подключения.

Кто может увидеть? Злоумышленник не может открыть ваш скрипт на сервере, поскольку, у него нет доступа к серверу.

создать дополнительную dll со всеми необходимыми функциями для работы с базой и защитить ее.

и её вскроют не за полчаса, а за 40 минут ) Нет такой защиты на клиенте, которую бы не могли вскрыть. Помните всегда - клиент в руках врага и все данные, хранящиеся на клиенте, изначально открыты этому врагу, как бы вы их не защищали. Вот с этой позиции и планируйте свою систему подключения и безопасности.

Re: Обмен данными между онлайн игроками

СообщениеДобавлено: 25 авг 2019, 19:57
alexey.terno
Woolf писал(а):Злоумышленник не может открыть ваш скрипт на сервере, поскольку, у него нет доступа к серверу.

Скорее всего я чего-то не понимаю, из-за своего малого опыта в web... но внутри клиента будет прописан путь к этому index.php, и к нему должен быть открыт доступ, чтобы сам клиент мог его читать, а это означает, что по этому пути можно будет открыть php и вручную... или не так?

Re: Обмен данными между онлайн игроками

СообщениеДобавлено: 25 авг 2019, 21:28
Woolf
alexey.terno писал(а):
Woolf писал(а):Злоумышленник не может открыть ваш скрипт на сервере, поскольку, у него нет доступа к серверу.

Скорее всего я чего-то не понимаю, из-за своего малого опыта в web... но внутри клиента будет прописан путь к этому index.php, и к нему должен быть открыт доступ, чтобы сам клиент мог его читать, а это означает, что по этому пути можно будет открыть php и вручную... или не так?


Нет, не так. Путь к скрипту, конечно, будет прописан, но выполнив эту ссылку, вы выполните скрипт на сервере, а вовсе не скачаете его.
Т.е. к примеру, у вас на сервере лежит скрипт hello.php

Синтаксис:
Используется csharp
<?php  
 echo "hello world";
?>


вы выплняете его http://myserver.com/hello.php
и получаете в ответ hello world а вовсе не сам скрипт. В том и суть.

Re: Обмен данными между онлайн игроками

СообщениеДобавлено: 26 авг 2019, 16:36
alexey.terno
Woolf писал(а):
alexey.terno писал(а):
Woolf писал(а):Злоумышленник не может открыть ваш скрипт на сервере, поскольку, у него нет доступа к серверу.

Скорее всего я чего-то не понимаю, из-за своего малого опыта в web... но внутри клиента будет прописан путь к этому index.php, и к нему должен быть открыт доступ, чтобы сам клиент мог его читать, а это означает, что по этому пути можно будет открыть php и вручную... или не так?


Нет, не так. Путь к скрипту, конечно, будет прописан, но выполнив эту ссылку, вы выполните скрипт на сервере, а вовсе не скачаете его.
Т.е. к примеру, у вас на сервере лежит скрипт hello.php

Синтаксис:
Используется csharp
<?php  
 echo "hello world";
?>


вы выплняете его http://myserver.com/hello.php
и получаете в ответ hello world а вовсе не сам скрипт. В том и суть.


Создал на сервере новый каталог и установил ему права 755. В этом каталоге создал текстовый файл и установил ему права 600. Открываю браузер, ввожу путь к этому файлу и у меня открывается его содержимое. Разве он должен открываться?

Re: Обмен данными между онлайн игроками

СообщениеДобавлено: 26 авг 2019, 18:55
Jarico
alexey.terno писал(а):Открываю браузер, ввожу путь к этому файлу и у меня открывается его содержимое. Разве он должен открываться?


Ты настройки подключения к БД сделай в отдельном php и в основной сделай как включение

конфиг для подключения config.php
Синтаксис:
Используется csharp
<?php

$db_ip = '127.0.0.1';
$db_name = "govno";
$db_password = "govno_iz_zhopi";
?>
 


основные функции с работой БД
Синтаксис:
Используется csharp
<?php
include 'config.php';//

//бла-бла
//говно код
//бла-бла

?>


К файлу config.php закрыть доступ

Re: Обмен данными между онлайн игроками

СообщениеДобавлено: 29 авг 2019, 18:52
alexey.terno
Jarico писал(а):
alexey.terno писал(а):Открываю браузер, ввожу путь к этому файлу и у меня открывается его содержимое. Разве он должен открываться?


Ты настройки подключения к БД сделай в отдельном php и в основной сделай как включение

конфиг для подключения config.php
Синтаксис:
Используется csharp
<?php

$db_ip = '127.0.0.1';
$db_name = "govno";
$db_password = "govno_iz_zhopi";
?>
 


основные функции с работой БД
Синтаксис:
Используется csharp
<?php
include 'config.php';//

//бла-бла
//говно код
//бла-бла

?>


К файлу config.php закрыть доступ

Спасибо! Это то, что нужно )