Достаточно ли беспокоиться о XSS, CSRF, внедрении sql, краже файлов cookie для обеспечения веб-безопасности? - PullRequest
7 голосов
/ 25 апреля 2011

Веб-приложения на бескомпромиссных компьютерах уязвимы для атак XSS, CRSF, SQL-инъекций и кражи файлов cookie в небезопасных средах Wi-Fi.

Для предотвращения этих проблем безопасности существуют следующие средства

  • SQL-инъекция: хороший datamapper (например, linq-to-sql) не имеет риска SQL-инъекции (неужели я не верю в это?)
  • CSRF: каждая публикация формы проверяется с <%: Html.AntiForgeryToken ()%> (это токен в среде mvc asp.net, который хранится в файле cookie и проверяется на сервере)
  • XSS: каждая форма, которой разрешено публиковать html, преобразуетсяразрешен только код bb, остальное закодировано.Все возможные действия по сохранению выполняются с событием post, поэтому мошеннические теги img не должны иметь никакого эффекта
  • кража файлов cookie: https

Теперь я неуязвим для попыток взлома через Интернет (при реализацииправильно)?Или я упускаю некоторые другие проблемы безопасности в веб-разработке? (За исключением возможных дыр в платформе ОС или другом программном обеспечении)

Ответы [ 5 ]

4 голосов
/ 26 апреля 2011

Простой ответ: «Нет, ты не неуязвим - никто не является!»

Это хорошее начало, но есть несколько других вещей, которые ты мог бы сделать.Основное, что вы не упомянули, - это проверка ненадежных данных по белому списку, и это важно, поскольку оно охватывает несколько эксплойтов, таких как 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) .

Кроме того, похоже, что вы знаете о многих важных принципах,Это не сделает вас неуязвимым, но это хорошее начало.

0 голосов
/ 02 марта 2015

О чем вы не упомянули:

Вы пропустили опасную атаку в средах MVC: Over Posting Attack

Вы также пропустили самые надоедливые угрозы: Denial of Service

Вы также должны уделить достаточно внимания file uploads (если есть ...) и многим другим ...

О том, что вы упомянули:

XSS действительно очень бесполезный и более раздражающий, чтобы смягчать.Существует несколько типов кодирования, включая Html Encoding, Javascript Encoding, CSS Encoding, Html Attribute Encoding, Url Encoding, ...

Каждый из них должен быть выполнен с соответствующим содержанием, в надлежащемместо - т. е. просто выполнение Html-кодирования содержимого недостаточно во всех ситуациях.

И самое неприятное в XSS - это то, что есть некоторые ситуации, которые вы должны выполнить Combinational Encoding (т.е. сначалаJavascriptEncode, а затем HtmlEncode ... !!!)

Взгляните на следующую ссылку, чтобы больше узнать о кошмаре под названием XSS ... !!!

XSS FilterШпаргалка Уклонения - OWASP

0 голосов
/ 29 мая 2013

Это точно не достаточно!Есть несколько других проблем безопасности, которые вы должны учитывать при разработке веб-приложения.Чтобы получить обзор, вы можете использовать OWASP Top-Ten

. Я думаю, что это очень интересный пост, когда вы думаете о веб-безопасности: Что должен знать разработчик раньшесоздание общедоступного веб-сайта? Существует раздел о безопасности, который содержит хорошие ссылки для большинства угроз, с которыми вы сталкиваетесь при разработке веб-приложений.

Самое важное, о чем следует помнить, думая обезопасность: Никогда не доверяйте вводу пользователя!

[Я отвечаю на этот «старый» вопрос, потому что я думаю, что это всегда актуальная тема.]

0 голосов
/ 26 апреля 2011

Неужели я теперь неуязвим для попыток взлома через Интернет?

Потому что, независимо от того, насколько вы хороши, все делают ошибки , ответ - нет.Вы почти наверняка забыли очистить входные данные или использовать токен против подделки.Если вы этого не сделаете сейчас, вы или другой разработчик сделаете это по мере того, как ваше приложение станет больше.

Это одна из причин, по которой мы используем фреймворки - например, MVC автоматически генерирует токены анти-CSRF, а LINQ-to-SQL (как вы упомянули) очистит входные данные для базы данных.Итак, если вы еще не используете платформу, которая делает анти-XSS и анти-CSRF меры по умолчанию , вам следует начать сейчас.


Конечно, они защитят васпротив этих определенных угроз , но никогда невозможно обезопасить от всех угроз.Например, если у вас небезопасный пароль SQL-соединения, возможно, кто-то взломает ваш пароль БД и получит доступ.Если вы не обновляете свои версии .Net / SQL-Server / всего остального, вы можете стать жертвой онлайн-червя (и даже если вы это сделаете, все еще возможно быть нулевым днем) .

Есть даже проблемы, которые вы не можете решить с помощью программного обеспечения: сценарист может испортить ваш сайт.Ваша серверная компания может обанкротиться.Тенистый конкурент может просто взять хедж-клиперов на вашу интернет-линию.Ваш склад может сгореть.Разработчик может продать исходный код компании в России.


Дело в том, опять же, вы никогда не можете быть защищены от всего - вы можете быть защищены толькопротив конкретных угроз.

0 голосов
/ 25 апреля 2011

Этот является исчерпывающим руководством по веб-атакам.Кроме того, я бы порекомендовал вам использовать Metasploit против вашего веб-приложения.

...