Реализовать простое приложение с графическим интерфейсом, удовлетворяющее следующим требованиям:
1) Приложение проводит аутентификацию пользователя.
2) Каждый пользователь программы должен относиться к какой-нибудь группе пользователей (роли), членам которой доступны различные функциональные возможности программы.
3) Программа должна принимать от пользователя некоторые данные и, возможно, после некоторой обработки, отображать их.
4) При этом должна осуществляться защита от как минимум 4 типов возможных атак на приложение:
4.1) Атака «переполнение буфера».
4.2) Атака «SQL-инъекции».
4.3) Атака, эксплуатирующая ошибки канонизации.
4.4) Атака «XSS» (межсайтовое кодирование).
4.5) Принцип минимизации привилегий.
4.6) DoS-атака (отказ в обслуживании).
При разработке защиты нужно предположить, что приложение работает с базой данных, в которой сохраняет введённые пользователем данные.
Желательно использование популярных объектно-ориентированных языков программирования (C++, Java, Python...). Комментируйте код где считаете нужным.