Здравствуйте, уважаемые!
Все мы знаем такие виды атак как SQLInjection и XSS, но наверняка не все слышали про Cross-Site Request Forgery (Подделка межсайтовых запросов) или проще говоря CSRF. Я тоже только недавно об этом узнал. Что это такое, можно почитать в википедии.
Способы защиты:
Во-первых, все GET-данные нужно использовать только для SELECT-запросов. Запросы изменяющие информацию в БД (UPDATE, INSERT, etc.) стоит делать только на основе POST-данных.
Во-вторых, для каждой формы генерировать специальный ключ, записывать его в куки пользователя и передавать в скрытом поле в форме (input type="hidden"). Затем на сервере сравнивать ключи полученный из кук и из формы.
Во многие фреймворки и CMS эта защита встроена по-умолчанию. В джоне же этой защиты нет, a надо бы.