Простой ответ: «Нет, ты не неуязвим - никто не является!»
Это хорошее начало, но есть несколько других вещей, которые ты мог бы сделать.Основное, что вы не упомянули, - это проверка ненадежных данных по белому списку, и это важно, поскольку оно охватывает несколько эксплойтов, таких как SQLi и XSS.Взгляните на OWASP Top 10 для разработчиков .NET, часть 1: Инъекция и, в частности, раздел «Все входные данные должны быть проверены на соответствие допустимому диапазону значений».
Далеевверх, вы должны применять принцип наименьших привилегий к учетным записям, подключенным к вашему SQL Server.См. Заголовок под этим именем в предыдущей ссылке.
Учитывая, что вы работаете с ASP.NET, убедитесь, что проверка запросов включена и, если вам абсолютно необходимо отключить ее, просто сделайте это на странице.уровень.Подробнее об этом можно узнать в Запрос проверки, DotNetNuke и design utopia .
Для вашей выходной кодировки главное - убедиться, что вы кодируете для правильного контекста.Кодировка HTML! = Кодировка JavaScript! = Кодировка CSS.Подробнее об этом в OWASP Top 10 для разработчиков .NET, часть 2: межсайтовый скриптинг (XSS) .
Для файлов cookie сделайте их только HTTP и, если возможно, разрешите им толькообслуживаться надежно (если вы счастливы использовать только HTTPS).Попробуйте поместить ваш web.config через анализатор безопасности web.config , который поможет направить вас в правильном направлении.
Еще одна защита CSRF, хотя и с удобством использования, - это CAPTCHA.Очевидно, вы хотите использовать это экономно, но если у вас есть какие-то действительно важные функции, которые вы хотите защитить, это довольно быстро останавливает это.Подробнее в OWASP Top 10 для разработчиков .NET, часть 5: Подделка межсайтовых запросов (CSRF) .
Кроме того, похоже, что вы знаете о многих важных принципах,Это не сделает вас неуязвимым, но это хорошее начало.