Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Безопасность и ее общие принципы (http://www.flasher.ru/forum/showthread.php?t=161582)

Котяра 26.07.2011 13:19

Цитата:

редположим в игре есть перемещение персонажа. Игрок нажимает на клавишу и перемещается. Если динамически не кодировать данные, то игрок может 100 раз в секунду нажимать на клавишу и перемещаться в игре как флэш
И что? Это что-то даёт?
Самый правильный вариант - всю важную логику, которая влияет на выигрыш-проигрыш хранить на сервере. В крайнем случае валидировать. Например расчёт путей по a-star довольно нагрузочная операция, поэтому пути каждого из персонажей я вычислял на клиенте и отправлял серверу. Сервер только проверял являются ли точки пути соседями и проходимыми (чтобы не было читов)
По такому же принципу можно проверять почти все параметры вычисляемые на клиенте, т.к. часто проверка намного экономичнее расчётов.
Но команды от клиента - "я выиграл" - быть не должно в любом случае)

carrotoff 26.07.2011 13:20

Цитата:

Что вы можете смело доверить клиенту?
Всё, что не касается денег, игровых достижений и т.п. То, что не нарушит общую логику.

goodguy 26.07.2011 13:24

Цитата:

Сообщение от kackbip (Сообщение 1014751)
Клиенту почти ничего доверять нельзя... Клиент должен только отображать ту реальность которую ему диктует сервер. Только отображать. Но все правила игры реализуются на сервере. Иначе обязательно найдется читер, который подменит клиент.

Ну и что с того? Да и фиг с этим читером. Зато сервер не будет перегружен лишней работой.

Цитата:

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

Котяра, carrotoff +1.

suVrik 26.07.2011 13:41

Цитата:

И что? Это что-то даёт?
Это даёт игроков-читеров, которые могут испортить игру другим игрокам, что очень нехорошо.
Цитата:

Пепермещение персонажей, столкновения, вообще всю физику
Но ведь это плохо, когда по игровому миру сквозь стены бегает/летает игрок с невероятной для игры скоростью.

FYI: В крупных онлайн играх у сервера находится карта препятствий мира и все движения персонажей проверяются.
FYI2: Вот тема, в которой администраторы серверов игры Tales of pirates давно мучаются с проблемой дюпания предметов, быстрого перемещения по карте, наложение заклинаний на большом расстоянии и прочими недочётами разработчиков. А совсем недавно в базу данных серверов загоняли SQL иньекции, из за того, что одно из полей, заносимого в базу, не проверялось.

kackbip 26.07.2011 13:47

Все выразили одну общую всем понятную мысль. :)

Сервер мог бы просчитывать физику для большого количества объектов. При условии грамотного разбиения на локации, сервер может заниматься всей логикой. Такой подход все таки безопаснее. Еще есть такая штука как двойной просчет - логика реализуется как на клиенте так и на сервере - на клиенте логика реализуется для того чтобы игра не превращалась в пошаговую стратегию в ожидании ответа или нотификации от сервера, но получая данные с сервера, клиент обязан принять состояние диктуемое сервером.

goodguy 26.07.2011 14:35

Цитата:

Это даёт игроков-читеров, которые могут испортить игру другим игрокам, что очень нехорошо.
Процент таких игроков будет очень невелик. Зато если делать всю логику на сервере, количество игроков будет намного меньше, так как сервер просто не будет справляться. Лично для меня лучше большее количество игроков, чем беспокойство о каком-то небольшом количестве читеров.
Цитата:

Сервер мог бы просчитывать физику для большого количества объектов. При условии грамотного разбиения на локации, сервер может заниматься всей логикой.
+ добавь еще кучу этих локаций, и сервер ляжет. А если физика сложная? Допустим, хотя бы, 3000 экземпляров box2d мира (о 3д вообще не говорю). Запусти на своем компе хотя бы 1000, и посмотри как вся эта система будет жутко тормозить.
Не должен он заниматься не своим делом. Валидация части данных максимум.
Создание всей логике на сервере попахивает паранойей и манией преследования в одном флаконе

windrunner31 26.07.2011 16:08

Так,значит о безопастности можно благополучно забыть,если используется п2п система?Просто у меня нет средств для покупки нормального сервера,поэтому я использую п2п систему,все работает исправно,но раз вы все говорите,что главную часть данных должен обрабатывать сервер,то п2п мне не катит,верно?

Котяра 26.07.2011 16:16

Если у вас нет сервера вообще - о чём речь тогда? Что такое передают клиенты друг-другу (p2p), что это можно и имеет смысл подделать?
Типа я сходил а2-а4 а оппоненту послал, что c2-c4? А смысл?

MXPain 26.07.2011 16:21

кстати на secureSWF сейчас вроде 30% скидка

Tr1te 26.07.2011 16:27

Любая онлайн игра ломается, а уж флэш и подавно, там вообще не надо спец навыков.

Тут все говорят о расчетах на стороне сервера, но в реальной жизни картина другая. Если ты делаешь какого нить фермера, то - да, может там и проверяют, в какую грядку ты репку воткнул. А если это нормальное ММО, то там так не делают. :)

Очень много популярных ММО ковырял, где клиент устанавливать надо, и всем им наплевать на проверку данных. Я думаю либо там люди сидят которые на деньги работают, либо действительно чтобы серваки не забивать.

Так что все кто тут пишут любо фермеров делают, либо проэкты не сильно популярные. Единственный кто заботятся о безопасности это всем известный WOW, и те кто использует GGClient, вот там да.

Так что с п2п о безопасности забудь.


Часовой пояс GMT +4, время: 09:14.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.