Заказчику сайта тоже стоит знать: как пользоваться документом IPA «Как создать безопасный веб-сайт»
· Обновлено: · Го Комура · Создание сайтов, Веб-разработка, Информационная безопасность, Уязвимости, SQL-инъекция, XSS, IPA, WordPress, B2B
История изменений (1 обновлений, последнее 30 Aug 2026)
Журнал изменений этой статьи. Там, где версия до правки была заархивирована, она остаётся доступной для чтения по постоянной ссылке с DOI.
- Русский текст переписан как полноценный технический перевод, а не калька с японского. Утверждения статьи не менялись.
- Первая публикация
Цитирование статьи(DOI (зарегистрированный архив): 10.5281/zenodo.21620079)
Приведённые ниже DOI относятся к ранее зарегистрированным архивным версиям, которые могут отличаться от текущего текста. Для ссылки на текущий текст используйте URL этой страницы.
Го Комура (2026). Заказчику сайта тоже стоит знать: как пользоваться документом IPA «Как создать безопасный веб-сайт». KomuraSoft LLC. https://comcomponent.com/ru/blog/ipa-secure-website-guide/
- DOI (зарегистрированный архив)
- 10.5281/zenodo.21620079
- DOI (последняя зарегистрированная версия)
- 10.5281/zenodo.21620080
«С безопасностью нашего сайта всё в порядке?» — на этот вопрос мало какая компания ответит «да» и сможет это обосновать.
Часто думают: раз сайт делает веб-студия, значит всё хорошо; или что сайт-визитка никому не интересен. Но достаточно одной формы обратной связи — и уже работает программа, которая обрабатывает ввод. Если стоит CMS вроде WordPress, под ударом и панель администратора, и плагины. К тому же атаки чаще не целятся в конкретную фирму: слабые сайты ищут автоматически.
По какому же критерию проверять, что «всё в порядке»? Публичный документ, который давно используют как такой критерий, — «Как создать безопасный веб-сайт» IPA (Information-technology Promotion Agency, Япония).
В этой статье разберём, чему учит этот документ, языком, понятным и заказчику сайта, и тем, кто его эксплуатирует.
1. Сначала вывод
- «Как создать безопасный веб-сайт» — документ, который по реально поступившим в IPA уведомлениям об уязвимостях сводит 11 видов слабых мест сайта и меры против них. Он полезен не только разработчикам: им можно пользоваться и как критерием при заказе и приёмке
- Меры делятся на «устранение причины» (убрать саму причину) и «компенсирующие меры» (снизить ущерб). Основа — устранение причины, компенсирующие меры добавляют поверх него
- Прилагаемый «Чек-лист реализации защиты» можно брать как есть как пункты проверки при заказе у студии и при приёмке
- Отдельное приложение «Спецификация диагностики веб-сайта» задаёт набор пунктов, по которым периодически проверяют уже работающий сайт
- На практике у корпоративного сайта два главных очага риска — места, которые принимают ввод (формы и подобное), и эксплуатация CMS (например, WordPress). Ещё на этапе заказа стоит договориться, кто будет вести сайт после запуска, а не считать работу законченной в день публикации
На схеме сплошная линия обозначает отношение, которое выполняется всегда, а пунктирная — условное отношение (условия указаны в пояснении к каждому отношению на странице сведений). Полный список отношений (всего 23, с доказательствами и степенью уверенности) и определения основных понятий собраны на странице сведений карты знаний (на японском). Данные: JSON-LD / Turtle
2. Что такое «Как создать безопасный веб-сайт»
«Как создать безопасный веб-сайт» — документ, в котором IPA для разработчиков и операторов сайтов разбирает уязвимости из поступивших уведомлений: те, по которым заявок было больше, и те, чей ущерб при атаке выше, — и сводит меры против них. Актуальная опубликованная версия — 7-я пересмотренная редакция, 115 страниц. Распространяемый PDF обновлён 31 марта 2021 года как 4-й тираж. Кроме PDF есть HTML-страницы по каждой уязвимости.
Структура — три главы.
| Глава | Содержание |
|---|---|
| Глава 1. Реализация защиты в веб-приложении | По 11 видам уязвимостей: угрозы и меры (устранение причины и компенсирующие меры) |
| Глава 2. Что ещё повышает безопасность сайта | Меры вне реализации приложения, которые усиливают сайт в целом, — например, эксплуатация сервера |
| Глава 3. Примеры неудач | 8 типичных ошибок на практике, с исходным кодом и вариантом исправления |
Отдельно от основного текста опубликованы ещё такие материалы:
- Чек-лист реализации защиты (Excel): таблица, по которой проверяют, реализованы ли меры из основного текста
- Отдельное приложение «Как безопасно вызывать SQL»: углублённый разбор защиты вокруг базы данных
- Отдельное приложение «Спецификация диагностики веб-сайта»: спецификация из 13 пунктов для проверки уже работающего сайта
Все материалы можно бесплатно скачать со страницы IPA.
2.1. Как относиться к актуальности документа
Прежде чем брать этот документ за критерий, стоит зафиксировать исходные условия. 7-я пересмотренная редакция вышла в марте 2015 года. Дальше в каждом тираже правили текст; PDF, который раздают сейчас, — 4-й тираж 7-й редакции, обновлённый 31 марта 2021 года. На момент написания статьи (июль 2026) 8-й редакции нет.
Документ всё равно годится как критерий, потому что речь в нём о слабых местах, которые следуют из самого способа сборки веб-приложения. Встроить ввод в SQL или HTML, опознать человека по сессии, отправить письмо по данным формы — эти механизмы не изменились. 11 видов уязвимостей и схема «устранение причины / компенсирующие меры» по-прежнему работают как критерий проверки реализации.
Отсюда же следует и ограничение: актуальные тенденции угроз этот документ не покрывает. Атаки программ-вымогателей, проникновение через контрагентов и подрядчиков, риски, связанные с генеративным ИИ, — изначально не его область. Их закрывают документами, которые обновляют каждый год.
| Документ | За что отвечает | Как обновляется |
|---|---|---|
| «Как создать безопасный веб-сайт» | Что закладывать в реализацию веб-приложения | 7-я редакция — 2015, 4-й тираж — 2021. Дальнейших пересмотров нет |
| «10 главных угроз информационной безопасности» | Какие атаки сейчас реально происходят | Публикуют ежегодно |
| Руководство по информационной безопасности для малого и среднего бизнеса | Как устроить защиту и эксплуатацию в компании в целом | При каждом пересмотре (актуальна редакция 4.0) |
Читать все три подряд не нужно. Достаточно разделить роли: «критерий реализации — этот документ, свежие угрозы — „10 главных угроз“, устройство компании — руководство» — и открывать то, что понадобилось. Содержание «10 главных угроз» за 2026 год разобрано в статье о «10 главных угрозах информационной безопасности 2026», редакцию 4.0 руководства — в статье о редакции 4.0.
3. Одиннадцать уязвимостей: что произойдёт, если ничего не делать
11 видов уязвимостей из главы 1 названы терминами для разработчиков. Если переложить их в формулировку «что случится на вашем сайте, если оставить как есть», заказчику уже не кажется, что это чужая проблема.
Правый столбец — примеры мест на корпоративном сайте, где эта уязвимость чаще всего всплывает. Есть ли у вас такая функция — по ней видно, какие строки про вас.
| Уязвимость | Что будет, если оставить как есть | Где на корпоративном сайте это обычно сидит |
|---|---|---|
| SQL-инъекция | Украдут или перепишут содержимое базы: историю обращений, данные пользователей и т. п. | Сохранение заявки с формы обратной связи или запроса материалов, поиск по сайту, поиск по данным пользователей, управление статьями в CMS |
| Инъекция команд ОС | Сервер захватят и используют как плацдарм для других атак | Обработка, которая вызывает внешнюю программу: изменение размера картинок, сборка PDF, сжатие и распаковка ZIP |
| Непроверенный параметр пути (directory traversal) | Прочитают файлы на сервере, которые вы не собирались показывать | Скачивание материалов, раздача файлов пользователям, экраны, где имя файла приходит параметром URL |
| Ошибки управления сессией | Чужой человек войдёт под видом настоящего пользователя | Вход в личный кабинет, панели CMS и интернет-магазина, страницы кабинета после входа |
| Межсайтовый скриптинг (XSS) | В браузере посетителя откроется поддельный экран или вредоносный код, данные украдут | Экран подтверждения ввода в форме, выдача поиска по сайту, отзывы и комментарии — любые места, где ввод снова показывают на странице |
| CSRF (подделка межсайтовых запросов) | Вошедший пользователь незаметно выполнит действие, которого не хотел | Смена данных профиля, удаление учётной записи, подтверждение заказа — операции, которые после входа меняют состояние |
| Инъекция HTTP-заголовков | Используют, чтобы показать поддельную страницу или увести на другой сайт | Обработка, которая из значения параметра собирает адрес редиректа или Cookie — например, URL возврата после входа |
| Инъекция почтовых заголовков | Форму обратной связи превратят в рассыльщик спама | Автоответ и внутреннее уведомление с формы. Особенно если из ввода собирают отправителя или тему письма |
| Кликджекинг | Поверх наложат невидимые кнопки, и пользователь кликнет не то, что видит | Экраны, где одно нажатие сразу фиксирует важное действие: удаление учётной записи, смена настроек, подтверждение заказа |
| Переполнение буфера | Программу захватят и заставят выполнить произвольный код | Свои программы на C/C++ и старое связующее ПО. На обычном сайте на PHP, Java, Ruby и подобных языках это, как правило, почти не встречается |
| Нет контроля доступа и авторизации | На страницы личного кабинета или в административные функции попадут люди без прав | Страницы только для пользователей, панель администратора, карточки, где подмена ID в URL показывает чужие данные |
Например, «инъекция почтовых заголовков» напрямую касается формы на сайте-визитке. Слабо защищённую форму используют как источник спама и портят репутацию домена компании — будут ли письма доходить до адресата. Когда письма с формы перестают доходить, это сразу потеря обращений; разбор причин — в статье «Почему не доходят письма с формы обратной связи».
4. «Устранение причины» и «компенсирующие меры» — как думать о защите
Сильная сторона этого документа в том, что меры разделены на два вида.
- Устранение причины: реализация, которая убирает саму причину уязвимости. Для SQL-инъекции, например, собирать SQL-запрос не конкатенацией строк, а плейсхолдерами
- Компенсирующие меры: снижают шанс успешной атаки и размер ущерба, если уязвимость всё же осталась. Например, не показывать текст ошибки в браузере как есть
Это разделение — линейка, по которой заказчик слушает объяснения про безопасность. Фраза вроде «поставим WAF (механизм, который обнаруживает атаки и блокирует их), так что можно не беспокоиться» — это разговор про компенсирующие меры, а не замена устранению причины в самом приложении. Наоборот, закрыть причину в коде и поверх этого поставить WAF — разумная схема. Достаточно отличать, о каком слое речь, и обоснованность предложения становится гораздо виднее.
5. Как пользоваться документом при заказе и приёмке
«Как создать безопасный веб-сайт» написан для разработчиков, но заказчику он полезен тем, что им можно задавать требования и проверять результат.
- На этапе оценки стоимости и требований: в техническое задание или RFP добавить одну фразу — «реализовать меры против уязвимостей, которые перечисляет документ IPA „Как создать безопасный веб-сайт“». Когда критерий назван, требование яснее расплывчатого «учесть безопасность»
- На этапе приёмки: запросить результаты проверки по соответствующим пунктам чек-листа реализации защиты
- На этапе договора: письменно разграничить, кто после публикации обновляет CMS, плагины и сервер, и входит ли реакция на найденную уязвимость в договор на сопровождение или это отдельная оценка
Третий пункт особенно важен. Безопасность сайта не «готова» в день сдачи: её держат тем, что следят за новыми уязвимостями после публикации. Вопрос «кто продолжает этим заниматься» — та же конструкция, что и граница сопровождения в статье о договорах на заказную разработку и сопровождение.
5.1. Пример формулировок для ТЗ и RFP
Фраза «учесть безопасность» не говорит, по чему считать требование выполненным. Если назвать документ и сдаваемые материалы, требование можно проверить. Например, так:
Требования к безопасности
- Веб-приложение по этому заказу должно реализовать меры, которые в главе 1 документа IPA «Как создать безопасный веб-сайт, 7-я пересмотренная редакция» отнесены к «устранению причины», по каждой перечисленной там уязвимости.
- При сдаче представить результаты самопроверки по всем пунктам прилагаемого «Чек-листа реализации защиты». Если пункт помечен как «не требуется», рядом указать причину (например, такой функции в системе нет).
- Для экранов с динамической обработкой (форма обратной связи, поиск, вход, скачивание файлов и т. п.) в проектной документации описать, как обрабатывается ввод и как выполняется экранирование при выводе.
- В договоре на сопровождение указать, кто и как часто обновляет ядро CMS, тему, плагины и среду выполнения после публикации, а также срок реакции и порядок оплаты, если обнародована критическая уязвимость.
Все четыре пункта с самого начала вставлять не обязательно. Для сайта в основном «о компании» достаточно 1 и 2 — и разговор на приёмке уже совсем другой, чем при заказе по принципу «безопасность на вашей стороне».
5.2. Что внутри чек-листа
Чек-лист — один файл Excel: 47 пунктов реализации по главе 1 «Как создать безопасный веб-сайт, 7-я пересмотренная редакция», разложенных по 11 видам уязвимостей. В каждой строке: вид уязвимости, характер меры (устранение причины / компенсирующие меры), поля отметки (сделано / не сделано / не требуется), формулировка пункта и номер пояснения в основном тексте.
Сами пункты сформулированы, например, так:
| Уязвимость | Характер меры | Пункт реализации | Пояснение |
|---|---|---|---|
| SQL-инъекция | Устранение причины | Сборку SQL-запроса во всех случаях реализовать через плейсхолдеры. | 1-(i)-a |
| SQL-инъекция | Компенсирующие меры | Не показывать текст ошибки в браузере как есть. | 1-(iii) |
| Инъекция почтовых заголовков | Устранение причины | Заголовки письма сделать фиксированными, весь внешний ввод выводить только в тело письма. | 8-(i)-a |
(формулировки пунктов — цитаты из чек-листа реализации защиты, прилагаемого к IPA «Как создать безопасный веб-сайт, 7-я пересмотренная редакция»)
Заказчику удобно, что в чек-листе есть отметка «не требуется». На сайте без входа пустые пункты про управление сессией — нормально. Но без записи не отличить «функции нет, поэтому не требуется» от «просто пропустили». Если «не требуется» написано вместе с причиной, разговор на приёмке становится конкретным.
6. Работающий сайт стоит «диагностировать»
Для уже опубликованного сайта полезно отдельное приложение «Спецификация диагностики веб-сайта». Это спецификация пунктов проверки безопасности работающего сайта (13 пунктов); по ней же можно ориентироваться, что должно входить в услугу проверки на уязвимости.
На корпоративном сайте малого и среднего бизнеса на практике риск особенно часто собирается в двух местах:
- Места, которые принимают ввод: форма обратной связи, строка поиска, вход в личный кабинет и т. п. С ними связана большая часть уязвимостей из главы 1
- Эксплуатация CMS: сайт, на котором остановились обновления ядра, темы или плагинов CMS вроде WordPress, — типичный сценарий, когда известную слабость используют, чтобы подменить содержимое. Очень часто так и не решено, чья это работа, и сайт просто оставляют как есть
Если нагрузку по обновлению CMS хочется пересмотреть вместе со всей схемой эксплуатации, полезна и статья о миграции с WordPress. Есть и проектное решение уменьшить саму поверхность атаки: сократить динамическую обработку и уйти в статическую структуру сайта. То, что при создании сайтов мы берём статическую структуру на основе дизайн-системы Цифрового агентства Японии, — продолжение той же логики.
Отметим, что безопасная эксплуатация веб-сайта также стоит пунктом самопроверки в редакции 4.0 «Руководства по информационной безопасности для малого и среднего бизнеса» IPA. Где это место в защите компании в целом — в статье о редакции 4.0 руководства.
7. Краткий словарь терминов
Ниже — слова из этой статьи, которые всплывают на встречах со студией. Если смысл каждого можно сказать одной строкой, при объяснении вы сами отличите, речь об устранении причины или о компенсирующих мерах.
| Термин | Смысл |
|---|---|
| Уязвимость | Слабое место из-за способа написания программы, которое можно использовать для атаки. Из дефектов — те, что бьют по безопасности |
| Устранение причины | Реализация, которая убирает саму причину уязвимости. Классификация в материалах IPA; основа защиты — она |
| Компенсирующие меры | Меры, которые снижают шанс успешной атаки и размер ущерба, если причина осталась. Заменой устранению причины не являются |
| Плейсхолдер | В SQL-запросе место для значения заранее помечают символом, а само значение передают базе отдельно. Запрос не собирают склейкой строк, поэтому введённый текст не становится частью SQL |
| Экранирование | Символы, у которых в HTML особый смысл (< > & “ и т. п.), при выводе заменяют на запись, которая отображается как обычный текст. Основа защиты от XSS |
| WAF | Web Application Firewall. Следит за обращениями к сайту и блокирует то, что считает атакой. По месту в схеме — компенсирующие меры |
| CMS | Content Management System. Механизм, который позволяет обновлять статьи и картинки из браузера. WordPress и аналоги. Опора эксплуатации — обновления ядра, темы и плагинов |
| Проверка на уязвимости | Проверка работающего сайта на слабые места. 13 пунктов отдельного приложения IPA «Спецификация диагностики веб-сайта» годятся как ориентир, что заказывать |
Итог
Соберём главное из документа IPA «Как создать безопасный веб-сайт».
- Стандартный справочник (7-я пересмотренная редакция, 115 страниц) по 11 видам слабых мест сайта и мерам против них, построенный на уведомлениях об уязвимостях, которые реально поступали в IPA
- Меры идут в два слоя: устранение причины и компенсирующие меры. Компенсирующие меры вроде WAF не заменяют устранение причины
- Заказчик может назвать документ в требованиях, принять работу по чек-листу и в договоре зафиксировать, кто обновляет сайт после публикации
- Уже работающий сайт стоит периодически проверять, ориентируясь на «Спецификацию диагностики веб-сайта»
- Реальный риск корпоративного сайта чаще всего собирается в обработке ввода (формы и подобное) и в заброшенной CMS
Безопасность легко сводят к выбору «тратить деньги, как скажет специалист» или «не делать ничего». Если известен публичный критерий, и требования, и проверку можно формулировать своими словами.
Если вы планируете создать или обновить сайт
При создании и обновлении сайтов KomuraSoft предлагает решения в логике этой статьи: реализацию форм, статическую структуру, которая не опирается на CMS сильнее, чем нужно, и схему обновлений после публикации. Можно начать и с разбора текущего состояния — если пока непонятно, в каком виде ваш сайт сейчас.
Похожие статьи
Недавние статьи с теми же тегами помогут подробнее изучить близкие темы.
10 главных угроз информационной безопасности 2026: как читать рейтинг и что защищать МСБ
В рейтинге IPA «10 главных угроз информационной безопасности 2026» атаки программ-вымогателей заняли 1-е место 11-й год подряд, атаки на ...
С чего малому и среднему бизнесу начать информационную безопасность — редакция 4.0 руководства IPA
С чего малому и среднему бизнесу начинать защиту информации. По редакции 4.0 руководства IPA разбираем шесть базовых правил, самооценку з...
Разбор вопроса 2 дневного сеанса экзамена специалиста по обеспечению информационной безопасности, осень 5-го года Рэйва — файлы уносят через гостевой Wi-Fi
На материале вопроса 2 дневного сеанса экзамена специалиста по обеспечению информационной безопасности осенью 5-го года Рэйва (2023) стат...
Чтобы не забыть решить, за сколько секунд система должна отвечать — нефункциональные требования по «Градации» IPA
Споры вроде «слишком медленно» или «при сбое всё пошло не так, как ждали», часто начинаются с того, что нефункциональные требования так и...
Экзамен SC весны 2024, задание 1 части PM: JWT alg=none, авторизация API и временные меры WAF
На материале задания 1 части PM экзамена IPA SC весны 2024 разбираем alg=none у JWT, авторизацию API, Mass Assignment, перебор четырёхзна...
Связанные темы
Эти страницы показывают тему статьи в более широком контексте услуг и решений.
Технические темы Windows
Раздел о разработке Windows, расследовании сбоев и использовании существующих активов.
Темы веб-разработки и SEO
Создание сайтов, SEO, путь к обращению и проектирование внутренних ссылок.
Услуги по этой теме
Статья напрямую связана со следующими услугами.
Разработка веб-сайтов
При создании нового сайта или его обновлении реализация форм и устройство CMS — те самые вопросы безопасности из этой статьи — напрямую влияют на качество результата.
Технические консультации и ревью дизайна
Где в существующем сайте или веб-системе сидит риск и как записать требования безопасности в заказную спецификацию — это уже техническая консультация с разбором проекта.
Частые вопросы
Вопросы, которые часто возникают при консультациях по теме статьи.
- Что за документ «Как создать безопасный веб-сайт»?
- Это материалы по безопасности для разработчиков и операторов веб-сайтов, которые публикует IPA (Information-technology Promotion Agency, Япония). Среди сведений об уязвимостях, поступивших в IPA, документ берёт те, по которым уведомлений было больше, и те, чей ущерб при атаке выше, и разбирает угрозы и меры. Актуальная 7-я пересмотренная редакция опубликована в марте 2021 года, объём — 115 страниц. Помимо основного текста бесплатно доступны чек-лист реализации защиты и отдельные приложения «Как безопасно вызывать SQL» и «Спецификация диагностики веб-сайта».
- Нужна ли защита даже сайту уровня «о компании»?
- Нужна. Если есть форма обратной связи, уже работает программа, которая обрабатывает ввод. Если стоит CMS вроде WordPress, под ударом и панель администратора, и плагины. Злоумышленники не обязательно выбирают жертву по размеру компании: они автоматически находят уязвимые сайты и используют их для подмены содержимого, раздачи вирусов или как источник спама. Опасность сайта в том, что вы одновременно оказываетесь и пострадавшей стороной, и источником вреда для контрагентов и посетителей.
- Чем устранение причины отличается от компенсирующих мер?
- В «Как создать безопасный веб-сайт» меры разделены на два вида. Устранение причины — способ реализации, который убирает саму причину уязвимости (например, собирать SQL-запрос через плейсхолдеры). Компенсирующие меры снижают шанс успешной атаки и размер ущерба, если уязвимость всё же осталась (например, не показывать текст ошибки в браузере как есть). Одни компенсирующие меры причину не убирают, поэтому правильный порядок такой: сначала устранение причины, компенсирующие меры — поверх него.
- Что проверить по безопасности, когда заказываете сайт у студии?
- На этапе оценки стоимости стоит как минимум уточнить три вещи: 1) реализованы ли меры против уязвимостей из «Как создать безопасный веб-сайт», 2) может ли исполнитель показать результаты проверки — например, по прилагаемому чек-листу реализации защиты, 3) кто после публикации будет обновлять CMS и плагины (входит ли это в договор на эксплуатацию и сопровождение). Требования по безопасности дорого добавлять потом, поэтому их лучше закрепить письменно до заключения договора.
Об авторе
Страница с профилем автора статьи.
Го Комура
Представитель KomuraSoft LLC
Специализируется на разработке программного обеспечения для Windows, техническом консалтинге и расследовании сбоев, особенно в проектах с унаследованными системами и трудно воспроизводимыми ошибками.