В этом документе описываются проблемы безопасности и соответствующие стандарты кодирования, на которые разработчикам интерфейсов следует обратить внимание при разработке приложений, чтобы устранить некоторые распространенные риски безопасности.
** Описание: ** Необходимо "," не должно "," обязательно "," не должно "не должно", "не должно", "не должно", "не должно", "требуется", не должен «,« Требуется »,« требуют »,« рекомендуется »и« необязательно »описан в RFC 2119.
жизненный опыт
В этой статье не будут подробно описываться технологии атаки и защиты веб-безопасности, поэтому, пожалуйста, обратитесь к следующим материалам для получения соответствующих знаний:
XSS-защита
Обязательно прочитайте:Окончательная памятка по защите от XSSВыполните операцию удаления данных в соответствии с описанием.
Умный шаблон XSS экранируется с помощью fi:
fis-plus по умолчанию включает функцию escape xss, которую необходимо добавить при компиляции.-o
параметр
fisp release -o
форматированные текстовые данные
Богатые текстовые данные «должны» должны полагаться на принцип минимизации лечения RD для предотвращения небезопасного содержания.
CSRF
жизненный опыт:
Использование файлов cookie
«НЕ ДОЛЖЕН» устанавливать файлы cookie в домене baidu.com. Пожалуйста, укажите текущее доменное имя для установки файлов cookie.
НЕ ДОЛЖНО устанавливать document.domain = "baidu.com" для страниц.
Анти-Фишинг
Кажется, нет хорошего пути.
Данные о конфиденциальности
«НЕ ДОЛЖЕН» отображать на странице информацию, связанную с ip. Если есть необходимость передать ip на сервер, пожалуйста, измените его на другие формы, такие как: rd косвенно получает информацию об ip с сервера.
Личная информация пользователя: имя, электронная почта, телефон, QQ и т. д. должны «ОБЯЗАТЕЛЬНО» соответствовать принципу минимизации, и «НЕ ДОЛЖНО» отображаться в коде страницы, если информация не используется, а формат json Интерфейс для получения этих данных также должен быть "ДОЛЖЕН" Требуется контроль разрешений.
прыжок страницы
Получить параметры в URL, при переходе на другой сайт запретить "НЕ ДОЛЖЕН" переходить на любой сайт, "ДОЛЖЕН" установить белый список и разрешать переход только на указанный сайт.
Когда вы нажимаете на ссылку на странице, чтобы перейти на сторонний сайт, рекомендуется сделать «РЕКОМЕНДУЕМЫЙ» в форме перехода на стороне сервера, аналогично результатам поиска Baidu и Google. проверка безопасности на URL-адресе и обнаружение вредоносного веб-сайта. , или, когда целевой ресурс является исполняемым файлом, пользователю должно быть сделано серьезное предупреждение, чтобы сообщить о риске.
Сторонние функции и ресурсы
Для сторонних функций, встраиваемых в страницу, «НЕ ДОЛЖНО» запрещается напрямую встраивать сторонний JS-код, и рекомендуется вводить его в виде «РЕКОМЕНДУЕМОГО» iframe.
Если вам нужно использовать сторонние данные на странице, рекомендуется получить «РЕКОМЕНДУЕМОЕ» от RD и постараться избежать его получения в режиме jsonp.Если необходимо использовать jsonp, пожалуйста, ограничьте имя функции обратного вызова, возвращаемое третьим Для имен функций, которые не разрешено использовать, все запрещают.
В принципе, «НЕ ДОЛЖНО» запрещено использовать ресурсы, предоставленные третьими лицами: изображения, документы и т. д. При необходимости рекомендуется «РЕКОМЕНДУЕТСЯ» захватить соответствующий контент с РД и перенести его на собственный сервер. Потому что внешние ссылки будут генерировать внешние запросы, которые могут быть использованы для реализации CSRF-атак и часто имеют проблемы с производительностью.
кликджекинг
Некоторые важные операции, такие как удаление данных, платежи, рекомендуется "РЕКОМЕНДУЕТСЯ" проверять, являются ли они вложенными. Если вы находитесь в рамках сторонней страницы, должно появиться окно подтверждения, чтобы напомнить пользователю. Поле подтверждения позиции координаты предпочтительно имеет некоторое случайное смещение, чтобы злоумышленник сконструировал зону поражения. Аутентификация это:
Flash использует
Свойство управления AllowScriptAccess для взаимодействия между SWF и js, «РЕКОМЕНДУЕТСЯ», настоятельно рекомендуется никогда, если вы выбираете тот же домен или всегда, вы должны знать, что делаете.
Сетевой атрибут SWF AllowNetworking, «РЕКОМЕНДУЕТСЯ» настоятельно рекомендуется не указывать, иначе может быть вызвано CSRF.Если вы выберете все или внутреннее, вы должны знать, что делаете.
Параметры SWF и js передаются, «СЛЕДУЕТ» необходимо фильтровать символы, чтобы предотвратить атаки XSS.
Авторизация исполняемого файла (.swf), не следует «НЕ ДОЛЖЕН» использовать Security.allowDomain («*»), загрузчик или загружаемый файл получит те же разрешения, что и текущий SWF
Неисполняемые файлы (.txt, .xml, .json, .jpg и т. д.) засчитываются и не должны «НЕ ДОЛЖНЫ» использовать allow-access-from domain="*" в файле crossdomain.xml.
При загрузке междоменного SWF следует с осторожностью использовать параметр «НЕ СЛЕДУЕТ» для объединения доменов безопасности (авторизация crossdomain.xml или loadBytes()), загружаемый SWF будет иметь те же разрешения, что и родительский SWF, и может выполнять любые действия.
При использовании sharedEvents отправка события "СЛЕДУЕТ" должна быть ограничена событиями, содержащими только простые данные, иначе могут быть раскрыты данные в SWF и все объекты на сцене.
загрузить файлы
Рекомендуется, чтобы доменное имя, на котором находится «РЕКОМЕНДУЕМЫЙ» интерфейс загрузки, было отделено от основного доменного имени, а минимально допустимый размер файла был ограничен.
Протокол JSON/JSONP
Данные JSON, «ДОЛЖЕН» должен быть установлен HTTP-заголовок Content-Type: application/json
Чтобы предоставить данные третьей стороне в форме JSONP, «ДОЛЖЕН» быть установлен в HTTP-заголовок Content-Type : application/javascript, а имя функции обратного вызова может отображаться только: массив, буква, подчеркивание.
Предоставляет данные JSON / JSONP, рекомендуется «РЕКОМЕНДУЕТСЯ» следовать принципу минимизации, необходимо раскрывать только информацию о воздействии, а ограничивать референт белого списка для предотвращения вредоносного обхода.
Междоменные настройки
В настоящее время, если XML Httprequest 2 (xhr2) и font-face должны поддерживать требования междоменного доступа, запрещается устанавливать заголовок как: Access-Control-Allow-Origin: *, и его необходимо установить на адрес, разрешающий доступ, например: Access -Control-Allow-Origin:www.baidu.com
использованная литература
Технология защиты от атак и защиты JSONP
Веб-интерфейс атаки и защиты 2014
New Tricks in XMLHttpRequest2
WooYun
80sec
Open Web Application Security Project
знать Чуангью
Загрузить кадр атаки
Анатомия кодирования SS
Принцип XSS-1
Принцип XSS-2