0. хватит шишек:
0.1. велосипедам — нет! используем известные библиотеки\фреймворки, где уже многое исправлено
0.2. своевременный апгрейд
0.3. логи и мониторинг подозрительной активности.
1. входные данные для каждого слоя:
1.1. слой контроллера (код): фильтрация данных из суперглобалов (всех)
1.1.1. инициализация данных, мусор может быть вредным (например, те же автоглобалы)
1.2. слой модели\данных (sql): используем prepared statements или иные placeholders, хотя бы экранизацию(escaping)
1.3. слой вида (html): используем escaping везде, где требуется вывод данных
1.4. слои не должны доверять друг другу и полагаться, что не придут вредные данные.
1.5. минимизация функциональности: делать что нужно и не больше (например, для отдачи файла НЕ надо его исполнять).
2. фильтрация данных:(xss+code\sql injection)
2.1. до максимально узкого значения. например, если должно быть число, пытаемся кастить в число.
2.2. до более широкого диапазона можно прогонять через регулярки. не забываем про длину.
2.3. если данные исчислимы (выбор из списка), то сопоставить реальным данным числовой идентификатор.
2.4. не перестараться, не портить данные «универсальными» чистками.
3. аутентичность:
3.1. минимальный срок жизни данных:
3.1.1. используем сессионные данные, для доступа используем трудноугадываемый идентификатор
3.1.2. для подтверждений: длинный ОДНОРАЗОВЫЙ ИД.
3.1.3. логин, повышение прав: регенерация ИД, подтверждение пароля (session hijacking)
3.1.4. формы и иные stateful запросы также имеют одноразовый ИД (csrf,request\form spoofing)
3.2. в зависимости от важности данных устанавливаем сложность проверки юзверя (двухфазный вход, генераторы паролей, заставляем сложные пароли)
3.3. права доступа (как ФС, так и системные)
4. client is evil:
4.1. ничего не храним на клиенте, даже в зашифрованном виде. максимум — session id в куках
4.2. валидация на клиенте бессмысленна, только для удобства пользователя
4.3. не полагаемся на данные об ОС\браузере\…
4.4. шифрование на клиенте бессмысленно, но необходимо (если вдруг что-то увели)
4.5. имена файлов, другие пароли и явки — ложь.
5. DoS предупреждение:
5.1. слишком длинные данные + размер загружаемых данных (картинки, например)
5.2. много неудачных попыток входа
5.3. много загрузок
5.4. много запросов, добавляющие данные (напр.комментарии)
6. О шифровании:
6.1. все пароли (в базе) — в виде хешей с солью, проверить на криптостойкость и коллизии.
6.2. для чувствительных данных — шифрование потока по HTTPS\SSL c коротким expiration
6.3. не храним данные в файлах, особенно — в открытом виде.
6.4. статика — отдельно от динамики, с соотв. правами доступа (либо читать, либо выполнять, либо писать)
6.4.1. желательно — статика очень отдельно от динамики (др. сервер, папка, за пределы корня) т.е. чтобы не пересекались
7. Лишнее:
7.1. ничего лишнего — например, никаких .svn, паролей, чеклистов, туду и вообще не жизненно важного для работы.
7.2. никаких инфо-заголовков — об используемом софте, версиях, путях, файлах, именах
7.3. никаких сообщений об ошибках, кроме подсказок юзверю, что он делает не так и что ему делать так.
7.4. источник должен быть виден, исключить возможность подделок, пример:
7.4.1. комментарии должны выглядеть как комментарии и не иначе
7.4.2. в заголовке всех окон ввода — четко имя сайта и функция, должно быть узнаваемо.
7.5. лучше использовать pretty urls — и для удобства, и сокрытия данных.
Безопасность системы определяется наиболее уязвимым местом!
Декларация безопасности разработки сайта
Декларация безопасности разработки сайта - информация, которую я нашел в комментарии на хабре
Дочерние направления в разделе «Декларация безопасности разработки сайта»
Выберите интересующую услугу для детального изучения параметров и расчета стоимости.
Направления и виды работ по услуге в Минске
Решаем задачи бизнеса любого масштаба с гарантией окупаемости.
Аудит и разработка стратегии
Проводим глубокий анализ конкурентов в Минске и составляем индивидуальный медиаплан.
Комплексный запуск и настройка
Выполняем все технические и контентные работы под ключ со строгим контролем качества.
Оптимизация и повышение конверсии
Непрерывно улучшаем показатели окупаемости, снижая цену целевого обращения.
Сквозная аналитика и отчётность
Настраиваем дашборды и предоставляем подробную регулярную отчётность.
Автоматизация и интеграции
Связываем бизнес-процессы с Bitrix24, amoCRM и 1С для ускорения обработки заказов.
Масштабирование результатов
Расширяем охваты и увеличиваем поток клиентов без потери окупаемости.
Понятный и прозрачный процесс работы
Каждый этап зафиксирован в договоре и контролируется персональным менеджером.
Консультация и брифинг
Изучаем особенности вашего бизнеса в Минске, целевую аудиторию и задачи.
Аналитика и составление плана
Проводим аудит ниши, рассчитываем бюджет и составляем техническое задание.
Выполнение основных работ
Готовим материалы, проводим настройку и интеграцию технических сервисов.
Тестирование и проверка
Запускаем тестовый этап, проверяем корректность аналитики и калибруем параметры.
Основной этап и результат
Выводим проект на полную мощность и обеспечиваем поток целевых клиентов.
Поддержка и развитие
Предоставляем отчетность и формируем рекомендации по дальнейшему росту.
Тарифы и стоимость услуг в Минске
Прозрачное ценообразование без скрытых платежей. Фиксированная стоимость в BYN.
Старт
- Базовый аудит и настройка
- Запуск основных направлений
- Настройка целей и аналитики
- Ежемесячный отчет о результатах
Стандарт (Популярный)
- Полный комплекс работ под ключ
- Глубокая проработка семантики и интентов
- Сквозная аналитика и отслеживание звонков
- Регулярная оптимизация и калибровка
- Персональный менеджер 24/7
Премиум / VIP
- Максимальное погружение команды экспертов
- Интеграция с CRM и сквозная аналитика
- A/B тестирование вариантов посадочных страниц
- Индивидуальный SLA и приоритетная поддержка
Часто задаваемые вопросы в Минске
Точная стоимость зависит от объема задач и фиксируется в официальном договоре в BYN.
После подписания договора и согласования ТЗ мы приступаем к работе в течение 24 часов.
Да, мы работаем официально по договору в BYN с выдачей актов выполненных работ.
Да, вы получаете подробный отчет с динамикой показателей за каждый отчетный период.
Все обязательства по срокам, качеству и результатам зафиксированы в договоре SLA.
Да, мы работаем с юридическими лицами по безналичному расчету.
Заполнить короткий бриф и предоставить базовую информацию о вашем бизнесе.
Нажмите кнопку «Рассчитать стоимость» на любом блоке сайта и оставьте контакты.
Обсудим ваш проект
Заполните форму, и мы подготовим для вас индивидуальное коммерческое предложение с точными ценами и сроками.