Имея дело с безопасностью, вы всегда должны определять, что такое безопасность. Если вы управляете сайтом, посвященным азартным играм, ваша местная комиссия по азартным играм может иметь какое-то мнение по этому поводу. Если вы просто запускаете многопользовательскую игру для развлечения, то вы можете быть более свободными в своем определении (при условии, что случайный читерство не испортит день).
В общем, если вы хотите полностью предотвратить вмешательство конечного пользователя в игровой процесс, вся реальная работа должна выполняться на сервере, которым вы управляете. Это означает, что PHP, ruby, perl, python, Java и т. д. С интерфейсом flash, javascript или html5, который, как вы должны предполагать, может создавать ненадежные данные, даже если они идеально обработаны.
Чтобы свести к минимуму влияние злонамеренного игрока, отправляющего на сервер специально созданные поддельные данные, вы должны использовать серверный язык, который обрабатывает для вас проверку размера/границы буфера и очистку входных параметров. Я часто использую PHP, он автоматически выполняет проверку границ, как и большинство языков сценариев. PHP не очищает автоматически данные, которые были введены на стороне клиента, но имеет хорошие инструменты для работы со строками, так что я могу сделать это сам. Будьте осторожны при обработке апострофов, тегов html и javascript, которые пользователь может ввести, чтобы предотвратить внедрение Sql ( http://en.wikipedia.org/wiki/SQL_injection ) и атаки с использованием сценариев Cross Sight ( http://en.wikipedia.org/wiki/Cross-site_scripting ). Преобразование всех ',‹,> в коды символов — хорошее начало, но вам следует тщательно изучить тему. Чтобы помочь с атаками межсайтового скриптинга, вы должны игнорировать запросы, поступающие от других доменных имен, если только у вас нет особой необходимости поступать иначе.
Что же касается всех вопросов программирования, тщательно продумайте их и как можно больше тестируйте на как можно большем количестве разнообразных данных.
person
Sqeaky
schedule
17.12.2010