Разработка сайта банка на 1С-Битрикс
Банковский сайт — не витрина, а рабочий инструмент продаж финансовых продуктов. Клиент приходит сравнить ставки, рассчитать платёж, подать заявку на кредит — и всё это должно произойти без звонка в колл-центр. 1С-Битрикс даёт готовую инфраструктуру для такого проекта: инфоблоки под каталог продуктов, модуль веб-форм для заявок, встроенные механизмы кеширования для данных курсов валют, а главное — сертифицированную безопасность на уровне «Веб-окружения».
Каталог банковских продуктов
Структуру каталога строим на инфоблоках с чётким разделением по типам: вклады, кредиты, дебетовые и кредитные карты, расчётно-кассовое обслуживание. Каждый тип — отдельный инфоблок или раздел инфоблока с набором свойств, специфичных для продукта.
Для вкладов это минимальная сумма, срок размещения, процентная ставка (с градацией по сумме и сроку — свойство типа «таблица» или связанный Highload-блок), возможность пополнения и частичного снятия, капитализация. Для кредитов — диапазон сумм, срок, ставка, требования к заёмщику, обеспечение. Для карт — тип платёжной системы, кэшбэк, стоимость обслуживания, грейс-период.
Фильтрация реализуется через компонент catalog.smart.filter с доработкой шаблона под банковскую специфику — ползунки для сумм и сроков, чекбоксы для опций.
Калькуляторы банковских продуктов — ключевой конверсионный элемент
Калькулятор — это то, ради чего клиент задерживается на сайте. Реализация на фронтенде через JavaScript с серверной валидацией результатов.
Калькулятор вкладов. На входе: сумма, срок, ежемесячное пополнение. На выходе: итоговая сумма с процентами, график начислений по месяцам. Формула зависит от типа капитализации — простые проценты или сложные с ежемесячным/ежеквартальным начислением. Ставки подтягиваем из свойств инфоблока через AJAX-запрос к кастомному контроллеру, чтобы при изменении условий продукта калькулятор автоматически пересчитывал.
Калькулятор кредитов. Аннуитетный и дифференцированный платёж — два режима расчёта. Формула аннуитета:
P = S × (r × (1 + r)^n) / ((1 + r)^n − 1)
где S — сумма кредита, r — месячная ставка, n — количество месяцев. Результат: ежемесячный платёж, переплата за весь срок, график платежей с разбивкой на тело и проценты. График выводим таблицей с возможностью скачать PDF — используем серверную генерацию через библиотеку TCPDF, вызываемую AJAX-запросом.
Калькулятор ипотеки отличается учётом первоначального взноса, страховки и возможности досрочного погашения. Добавляем поле «материнский капитал» с фиксированной суммой, которая вычитается из тела кредита.
Все калькуляторы заканчиваются кнопкой «Оставить заявку» — данные расчёта передаются в форму предзаполненными.
Онлайн-заявка на кредит и карту
Многошаговая форма на базе компонента form.result.new с кастомным шаблоном. Шаги:
- Параметры продукта — сумма, срок (предзаполнены из калькулятора)
- Персональные данные — ФИО, дата рождения, паспорт, ИНН
- Финансовая информация — место работы, стаж, доход
- Контакты и согласия — телефон, email, согласие на обработку ПД (обязательный чекбокс)
Валидация на каждом шаге — и клиентская, и серверная. После отправки данные записываются в CRM Битрикс24 через REST API (метод crm.lead.add) или напрямую в АБС банка через промежуточный API-шлюз. Статус заявки доступен клиенту в личном кабинете по номеру заявки.
Курсы валют
Парсинг ежедневной XML-выгрузки ЦБ РФ (https://www.cbr.ru/scripts/XML_daily.asp) через агент Битрикс, выполняемый каждые 30 минут. Результат записывается в Highload-блок с полями: код валюты, номинал, курс, дата. Кеширование компонента вывода — CACHE_TIME 1800 секунд, CACHE_TYPE «А» (автоматический). На фронтенде — таблица с основными валютами (USD, EUR, CNY) и динамика за неделю/месяц через график на Chart.js.
Отдельная страница с архивом курсов и конвертером валют — простая JS-форма, подтягивающая актуальные курсы из того же Highload-блока.
Отделения и банкоматы на карте
Highload-блок с полями: название, тип (отделение/банкомат/терминал), адрес, координаты (широта, долгота), часы работы, доступные услуги. При количестве точек свыше 500 обязательна кластеризация маркеров на Яндекс.Картах через ymaps.Clusterer — иначе карта тормозит на мобильных.
Фильтрация по типу точки и по услугам (выдача наличных, приём платежей, обмен валют). Геолокация пользователя через navigator.geolocation для автоматического центрирования карты и сортировки списка по расстоянию.
Соответствие ФЗ-395 и требованиям ЦБ
Федеральный закон «О банках и банковской деятельности» и указания Центробанка обязывают размещать на сайте:
- Лицензию и учредительные документы
- Финансовую отчётность (ежеквартальную и годовую)
- Тарифы по всем продуктам в актуальной редакции
- Информацию о системе страхования вкладов
- Реквизиты и контактные данные
Под это создаём раздел «Раскрытие информации» с инфоблоком документов. Свойства: тип документа, дата публикации, файл (PDF). Важно — документы должны быть доступны без авторизации и индексироваться поисковиками. Настраиваем права доступа на уровне инфоблока: чтение — для всех, редактирование — только для группы «Compliance».
Безопасность банковского сайта — второй приоритет после функциональности
Банковский сайт — мишень для атак. Подход к безопасности многоуровневый.
Content Security Policy (CSP). Настраиваем заголовки через .htaccess или nginx-конфиг. Политика default-src 'self' с явными исключениями для CDN, API карт, платёжных виджетов. Inline-скрипты запрещены — используем nonce для Битрикс-компонентов, которые генерируют встроенный JS. Это ломает часть стандартных шаблонов — пересобираем их с выносом скриптов во внешние файлы.
HTTP Strict Transport Security (HSTS). Заголовок Strict-Transport-Security: max-age=31536000; includeSubDomains; preload. Перед включением проверяем, что все поддомены (CDN, API, почта) работают по HTTPS — иначе отвалятся.
Проактивная защита Битрикс. Включаем все модули: веб-антивирус, контроль активности, защита от DDoS (лимит запросов), двухфакторная аутентификация для администраторов, журнал вторжений. Настраиваем стоп-лист по IP для brute-force попыток.
WAF (Web Application Firewall). Стандартный модуль «Проактивной защиты» закрывает базовые SQL-инъекции и XSS-атаки. Для банковского уровня добавляем внешний WAF — ModSecurity с набором правил OWASP CRS или облачный Cloudflare WAF. Правила настраиваем на блокировку аномальных запросов к формам заявок и API-эндпоинтам калькуляторов.
Шифрование данных. Персональные данные в БД шифруем на уровне приложения — модуль main поддерживает шифрование через CryptoProvider. Бэкапы — только в зашифрованном виде. Соединение с БД — через SSL.
Аудит и мониторинг. Модуль «Журнал событий» фиксирует все действия администраторов. Дополнительно настраиваем отправку алертов при: изменении файлов ядра (контроль целостности), неудачных попытках входа свыше 5 за минуту, изменении настроек модулей безопасности.
Этапы разработки банковского сайта
| Этап | Содержание | Срок |
|---|---|---|
| Аналитика | Аудит текущего сайта, сбор требований ЦБ, прототипы калькуляторов | 3–4 недели |
| Дизайн | UI-кит, адаптивные макеты ключевых страниц, UX калькуляторов | 3–4 недели |
| Вёрстка и фронтенд | Шаблоны компонентов, калькуляторы на JS, адаптив | 4–5 недель |
| Backend-разработка | Инфоблоки, интеграции (ЦБ API, CRM/АБС, карты), формы заявок | 5–6 недель |
| Безопасность | CSP, HSTS, WAF, шифрование, аудит уязвимостей | 2–3 недели |
| Тестирование | Функциональное, нагрузочное, пентест | 2–3 недели |
| Запуск и сопровождение | Миграция, мониторинг, обучение редакторов | 1–2 недели |
Общий срок — от 20 недель при параллельной работе дизайна и аналитики. Банковский проект не терпит спешки: каждый компонент проходит ревью безопасности перед продакшеном.







