Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
16-30 (1).doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

24.Правила безопасного кодирования

Разумеется, только безопасная архитектура и проектное решение не могут сделать приложение абсолютно защищенным. После разработки безопасной архитектуры и проектного решения понадобится также написать безопасный код.

При написании кода веб-приложений всегда имейте в виду следующие правила:

Никогда не доверяйте пользовательскому вводу

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

Никогда не используйте конкатенацию строк для формирования операторов SQL

Всегда применяйте параметризованные операторы, чтобы приложение не было уязвимо для атак внедрением SQL.

Никогда не выводите данные, введенные пользователем, на веб-страницу перед их проверкой и кодированием

Пользователь может ввести некоторые фрагменты кода HTML которые инициируют межсайтовую сценарную уязвимость (XSS). Поэтому всегда используйте HttpUtility.HtmlEncode() для отмены специальных символов вроде < или> перед выводом их на страницу или применяйте веб-элемент управления, который выполняет такое кодирование автоматически.

Никогда не размещайте важные данные в скрытых полях веб-страницы

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

Никогда не сохраняйте важные данные в состоянии представления

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

Защищайте свои cookie-наборы

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

Применяйте SSL

В общем случае, если веб-приложение обрабатывает данные, защищайте весь веб-сайт с помощью SSL. Не забывайте защищать даже каталоги с графическими изображениями или другими файлами, которые не управляются приложением напрямую через SSL.

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

Если вы пренебрегаете хотя бы одним из приведенных правил, то все прочие средства защиты становятся в большей или меньшей мере бесполезными.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]