Представим такую ситуацию: на сервере есть игрок с ником Alexander_Nikolaenko (20 символов) и в его собственности на сервере есть дом, машина, небольшая яхта и счёт в банке.
Проверка владельца осуществляется следующим образом:
PHP код:
new name[20 + 1];
GetPlayerName(playerid, name, sizeof(name));
if (strcmp(name, HouseInfo[houseid][hOwnerName], false, 20))
return SendClientMessage(playerid, -1, "You shall not pass!");
// ok
И если зарегистрироваться под ником Alexander_Nikolaenko123, то последние 3 символа проверены не будут и сервер подумает, что это и есть владелец собствнности.
Так можно украсть не только серверную собственность, но и кое-что посерьёзнее - админку, например, а там последствия ограничиваются лишь фантазией злоумышленника.
Но попробуй сначала узнай, как именно взломщик обошёл все проверки! Ты же не будешь знать об изменении незадокументированной константы заранее.
Да, по нику Alexander_Nikolaenko
123 можно догадаться, но не сразу найдёшь уязвимый отрывок кода, да и не факт, что вообще поймёшь, в чём дело.
И это только один пример вектора атаки.