• Как пробросить шифрование данных клиента с одного сервера на другой?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Сделайте свои приватные SSL-туннели через свой код внутри обычного SSL-соединения.
    Т.е. публичный общий SSL инкапсулирует другие персональные SSL-коннекты, которые генерятся через обычные скрипты хостинга (PHP, etc..).
    Это будет проще, чем перенастраивать стандартную инфраструткуру от серва к серву, от хостинга к хостингу.
    Ответ написан
    Комментировать
  • Как вернуть callback на клиент?

    @szelga
    если (как я понимаю), клиент без этих данных с ЕСИА всё равно ничего не сможет на сайте сделать, то можно его просто заставить "синхронно" ждать ответ. если это займёт слишком уж много времени, то можно посмотреть в сторону websocket'ов.
    Ответ написан
    Комментировать
  • Как оформлять документацию для REST api?

    IgorPI
    @IgorPI
    Например - Postman
    Ответ написан
    Комментировать
  • Есть ли аналоги keycloak написанные на python?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    У keycloak есть API и для него есть библиотека на Python - python-keycloak.
    Так-же есть интеграция для Django.
    Если нужен именно сервис OAUTH на Python, то из коробки вы ничего не найдете, есть только библиотеки для того-же Django и Flask, что-бы собрать всё самому.
    Ответ написан
    2 комментария
  • Как можно связать DJANGO and gateway?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Есть системы в которых есть GW (обычно это API GW), которые могут себе позволить проводить авторизацию токена и доводить до бэкэнда только контекст, но только в том случае если связь между GW и бэкэндом можно гарантированно защитить. Живой пример такого AWS API Gateway + Lambda.

    Вообще идеальная архитектура в вакууме (на высоком уровне) это GW + Identity Server + backend. И в нормальных условиях разработчик занимается только backend. Все остальное - есть решения от разных компаний, включая opensource
    Ответ написан
    Комментировать
  • Как в микросервисах ограничивать доступ на уровне сущностей?

    @AlexHell
    Я сам не реализовывал микросервисы, но недавно на хабре читал про JSON Web Token да вот на википедии даж https://ru.wikipedia.org/wiki/JSON_Web_Token
    и вот еще про Access + Refresh Token https://habrahabr.ru/company/Voximplant/blog/323160/
    смысл в том есть служба аутентификации и выдачи токена, она своим секретным ключем шифрует токены (1 access или 2 access + refresh) и выдает клиенту, в простом случае я бы записал туда ID юзера и его Роль (админ, обычный юзер), и передавал с клиента на каждый микросервис, который его проверяет:
    -- в 1м из вариантов расшифровывает секретным ключем - тогда каждый микросервис знает о секрет ключе основном которым подписывал сервис аутентификации
    -- во 2м варианте юзаем ассимметричное шифрование т.е секрет знает толькосервис аутентификации а другие его беспроблемно расшифруют (меньше подвергаемся утечке ключа если много сервисов и не всем мы доверяем)

    во всех случаях сервис к которому обращается клиент не должен обращаться к сервису аутентификации что не замедляет скорость работы.
    Ответ написан
    Комментировать
  • Путь становления back-end разработчиком?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Да ничего особенного. Берёшь Django и:
    1) Пишешь сервис погоды. По введённому городу - погоду с API погоды. (выбирай)
    2) Вместо перезагрузки рендеренной страницы делаешь AJAX запрос с JQuery, к примеру. Банально заменяя кусок html
    3) Переделываешь свой фронт и бэк так, чтобы по AJAX-запросу не кусок html отдавался, а JSON с данными, а на фронте - по этим данным перерисовывался твой виджет погоды.
    4) Заменяешь самопальную view, отдающую JSON на view из Django Rest Framework.
    5) Добавляешь кэширование запросов к своему и внешнему API
    6) Прикручиваешь Celery для тоо, чтобы запросы к внешнему API шли по расписанию и у тебя была свежая инфа.
    7) Реализуешь websocket/django-channel для того, чтобы доставлять изменения погоды на страничку пользователям авоматически (можно уже оформить погодный виджет в виде встраиваемого на сайт клиента)
    8) Разбираешься с Docker, AWS и прочим для деплоя

    Вуаля! Ты бэкенд-разработчик (и немножко фронт - но без этого, поверь, ну никак вообще - ты должен понимать, что там происходит хотя б в общий чертах). И немножко даже Devops. На Миддла не замахивайся, конечно, но как продвинутый джуниор - можешь претендовать и показывать всем свой крутой сервис погоды :)

    Можешь по вкусу добавить пользователей, сессии, OAuth, JWT авторизацию и т.д. Тут уж главное - не сдерживать себя :-)
    Ответ написан
    Комментировать
  • Как составить план проектирования проекта?

    MarcusAurelius
    @MarcusAurelius
    автор Impress Application Server для Node.js
    Идея/концепция к проектированию не относится, это отдельный предварительный этап. Для проектов побольше, и в общем случае, проектирование включает такие шаги, многие из которых, конечно, можно пропустить или сократить до минимума, если задача не сложная:
    1. Системный анализ и изучение предметной области
    2. Формирование требований к разрабатываемой системе
    3. Архитектуная задача, которая сводится к простой формуле: разделять, называть и связывать подсистемы
    3.1. Декомпозиция сложных задач
    3.2. Слои (построение слоев абстракций)
    3.3. Планирование топологии системы, программной и серверной инфраструктур
    3.4. Решение вопроса интеграции подсистем, программные интерфейсы, контракты и связывание
    3.5. Интеграция с унаследованными приложениями
    3.6. Минимизация изменений, для случаев, когда постоянно происходят изменения в предметной области
    4. Выбор инструментов решения
    4.1. Выбор парадигм программирования и языков
    4.2. Выбор технологий и платформ
    4.3. Выбор моделей данных, алгоритмов и библиотек
    4.4. Выбор топологий и протоколов
    4.5. Выбор паттернов программирования
    5. Предварительные исследования
    5.1. Проверка гипотез, эксперименты
    5.2. Изучение особенностей технологий
    5.3. Прототипирование
    6. Задачи обеспечения надежности
    6.1. Планирование безопасности и защиты от несанкционированного доступа
    6.2. Планирование отказоустойчивости
    6.3. Планирование мер по обслуживанию системы в режиме эксплуатации
    6.4. Задачи высоких нагрузок, балансировки и масштабирования, если таковые предполагаются
    7. Организация процесса разработки
    7.1. Жизненный цикл программной системы
    7.2. Конвенции кода, соглашения и стандарты
    7.3. Оценка необходимых временных и финансовых ресурсов для разработки системы
    7.4. Календарный план
    7.5. Анализ и минимизация рисков, выявление слабых мест технологий и коллектива
    7.6. Закрепление принципов управления процессом разработки и корректировки задания в процессе
    8. Сборка технического задания из результатов всех предыдущих пунктов
    Ответ написан
    2 комментария
  • Как общаться между процессами?

    devspec
    @devspec
    Помогло? Отметь решением
    Наилучшим решением будет использование Message Queue.
    В одну очередь записываете задание, вторую слушаете на предмет ответа.
    Процесс читает из первой очереди и записывает во вторую.
    Можно посмотреть в сторону https://www.rabbitmq.com/
    Ответ написан
    Комментировать
  • Как удалить некоторые строки из файла?

    мультипоточность и только она одна спасет
    разбиваем входящий файл на чунки по 2000 записей, к примеру
    в каждом блоке прибиваем не нужные строки
    записываем каждый чунк в новый файл
    проблемы будут с записью в файл. поэтому надо использовать этот рецепт
    дорогу осилит идущий :)
    Ответ написан
    Комментировать
  • Можно ли объединить две функции в одну?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Было бы очень легко, если бы они были чистыми, но вы используете глобальные переменные.

    P.S. Да ещё и PEP8 нарушаете.
    Ответ написан
    Комментировать
  • Как организовать хранение файлов пользователей в Django?

    @FireGM
    Создать модель(назовем UserFiles) с полями file и ключ на модель пользователя.
    В вьюхе брать request.user.userfiles_set.all() или фильтруйте как вам надо.
    Для более сложных реализаций больше читайте документацию.
    Ответ написан
    1 комментарий
  • Какой Django framework выбрать для интернет магазина?

    @MAGistr_MTM
    Учусь программировать
    Shuup - с уже красивьім фронтом
    Django-Oscar - достаточно прост и много чего есть с коробки
    Saleor - стильно-модно-молодежно
    Ответ написан
    Комментировать
  • Где вы берете идеи для дизайна?

    @bigburn
    Делаю неживое живым
    https://www.awwwards.com — ссылки на сайты с "отзывчивым", креативным и просто красивым дизайном
    https://dribbble.com, https://codepen.io, https://tympanus.net/codrops/all-articles/ — в основном различные элементы дизайна.
    Pinterest ещё посматриваю
    Ответ написан
    Комментировать
  • Какие возможные варианты подписи документов онлайн, ЭЦП пользователя, по ГОСТ Р 34.10-2012?

    @Ghool
    Сисадмин, Нагрузочное тестирование
    Когда вы подписываете файл - на самом деле это происходит в 2 этапа:
    1) от файла берётся хэш (по соответствующему алгоритму, у вас тоже будет гостовый)
    2) выполняется подпись этого хэша

    Соответственно, решение для вас такое:
    1) На сервере считаете хэш файла и его высылаете пользователю на подпись
    2) пользователь подписывает хэш

    Сделать это можно через BouncyCastle

    А можно через рутокеновские библиотеки

    А вот OpenSSL не подойдёт - в текущем виде он может взять гостовый хэш, может подписать файл, но подписать уже готовый хэш не может (разве что есть действовать не через скомпиленный исполняемый файл а через api)
    Ответ написан
    Комментировать
  • Как получить муниципальные деления из ФИАС?

    NeiroNx
    @NeiroNx
    Программист
    Это значит что в новой версии адреса связанны по GUID - берем какойнибудь обьект с AOLEVEL=1 (Республики), берем его myid=AOGUID, находим его дочерние объекты PARENTGUID=myid - получим города(AOLEVEL=4) и районы (AOLEVEL=3), потом так же для районов можно получить населенные пункты в них.
    Смысл в том что кладр база не хранит историю адресов а в новой базе можно построить адрес который был в конкретную дату - до переименования. (поля STARTDATE и ENDDATE)
    В большинстве случаев нужен лишь актуальный адрес - поэтому пришлось писать конвертер(который берет лишь актуальные адреса) - иначе база слишком жирная, а если брать для всей страны то вообще жесть. А потом уже обновлять если есть изменения.

    Вообще в документации вроде все понятно расписано...

    P.S. Пишу синхронизацию с ФИАС в корпоративную базу(Электроэнергетика) - пришлось изучить всю стркутуру.
    Ответ написан
  • Почему-то ранжирование с точным совпадением в словах с дефисом - не коректное?

    tumbler
    @tumbler
    бекенд-разработчик на python
    1. Добавьте сниппеты чтобы понять, что именно сматчилось
    2. ranker=export() чтобы посмотреть, что там насчитал sphinx по показателям
    3. lcs не учитывает расстояние между сматчившимися словами, только порядок. Посмотрите на [w]lccs
    4. Добавьте в ранкер abs(query_word_count - doc_word_count), тогда впереди будут идти результаты в которых столько же слов сколько в запросе)
    Ответ написан
    2 комментария
  • На каком сайте можно попрактиковать знания HTML/CSS?

    Valter1234
    @Valter1234
    Здравствуйте!
    Можете попробовать это. Думаю для новичков подойдет.
    А я сам верстал psd макеты. И практика и портфолио для фриланса делаешь. Как вариант можно качать отсюда
    Ответ написан
    1 комментарий
  • Какую схему задействовать для автообновления веб приложения?

    @deliro
    Сокеты. Long Polling для синхронной джанги так себе вообще. А channels отлично встраивается рядом с синхронными вьюхами.
    Ответ написан
    1 комментарий