Cайт веб-разработчика, программиста Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Доработка, улучшение системы администрирования CMS Админка Ruby on Rails: шифрование, CSP, gem AdminkaCkeditor

Доработал собственную систему управления контентом сайта (CMS), систему администрирования сайтов, веб-приложений Админка™:

  1. Полностью отказался от gem ckeditor, т.к. это слишком перегруженная система, с ненужными в работе механизмами, а мне нужна лишь возможность загрузки изображений в контент-страницу в редакторе CKEditor — поэтому написал собственный gem AdminkaCkeditor — редактор CKEditor работает в изолированном iframe-песочнице, собственный браузер для загрузки изображений, использует для хранения изображений ActiveStorage, использует таблицы, по формату совместимые с gem ckeditor для безболезненной замены на всех сайтах. gem получился простой и надёжный — контроль доступа авторизованного пользователя, CSRF, соблюдение Content Security Policy, кстати, именно для этого пришлось вынести сам редактор CKEditor в отдельный iframe-песочницу. Хэлперы так же полностью синтаксически совместимы с gem ckeditor.
  2. Написал собственные библиотеки-обёртки для работы с алгоритмами хэширования и шифрования : bcryptRSA, ECDH, AES-256-GCM, Ed25519 (описание алгоритмов) — и на стороне сервера: Ruby 4.0.5, Ruby on Rails 8.1.3, и на стороне клиента — JavaScript (ES2022). Написал собственный протокол рукопожатия, основанный на известных и надёжных алгоритмах - организация защищенного шифрованного канала (предполагается, что работа ведётся на полностью открытых каналах передачи данных, где прослушка 100% возможна, не надеемся ни на какой https) - система подтверждения "свой-чужой", шифрование. В CMS сейчас пароли не передаются в открытом виде, критичные данные шифруются. Эти библиотеки возможно использовать на любом сайте, веб-приложении, который работает с CMS Админка™.
  3. Убрал старый механизм загрузки файлов и изображений с помощью отправки формы в iframe, реализовал с помощью formData и fetch — система навигации ajax, которая написана уже давно и долгое время работает безупречно, не потребовала больших изменений.
  4. Работа CMS в строгих режимах ограничений и контроля Content Security Policy (CSP). Всё работает в полном соответствии, потому что сразу было аккуратно и разумно написано.

Ruby, Ruby on Rails, JavaScript, Безопасность, Программирование