Как стать автором
Обновить
-7
0.2

Пользователь

Отправить сообщение

CORS — это тупо

Время на прочтение7 мин
Количество просмотров21K

Технология CORS и действующее в браузерах правило ограничения домена – те вещи, которые часто понимаются превратно. Ниже я объясню, что они собой представляют, и почему пора перестать волноваться по их поводу.

Замечание: я собираюсь рассказать о CORS и правиле ограничения домена как о единой сущности, поэтому далее часто буду употреблять эти термины как синонимы. Дело в том, что они, по сути – части одной системы, работают в сочетании друг с другом и помогают вам решать, что можно сделать с какими ресурсами смешанного происхождения. В принципе, если ваши запросы поступают из разных источников, то вам придётся иметь дело с правилами, политиками и механизмами CORS.

Прежде всего, отмечу, что CORS — это огромный костыль, помогающий снизить влияние ошибок, передающихся с унаследованным кодом. В этой системе защита предоставляется как по принципу отказа от участия (opt-out) в попытке частично купировать XSRF-атаки против незащищённых или немодифицированных сайтов, так и по принципу активного участия (opt-in), чтобы на сайте включалась активная самозащита. Но ни одной из этих мер не достаточно, чтобы решить целенаправленно созданную проблему. Если на вашем сайте используются куки, то вы обязаны деятельно позаботиться о его безопасности. (Ладно, это касается не любого сайта, но лучше перестрахуйтесь. Выделите время на тщательный аудит вашего сайта или выполните описанные ниже простые шаги. Даже придерживаясь самых разумных паттернов, вы всё равно можете подставиться под XSRF-уязвимости).

Читать далее
Всего голосов 16: ↑11 и ↓5+11
Комментарии19

О пользе регламентов в жизни руководителя ИТ разработки

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров3.5K

Эта статья будет о наболевшем. О правилах в разработке и что бывает, когда их нет.

Она не совсем про Руководство проектами, она пошире: про руководство командами разработки. Но если вы Руководитель и у вас на проекте разработки ПО есть хотя бы пара разработчиков, вам ее будет полезно прочитать.

Эта статья – часть цикла статей о том, чего не рассказывают на курсах РП, и что в жизни понадобится вам с первого же дня работы: о так называемых софтскиллах РП. Кому это интересно, читайте статьи здесь и заходите в мой ТГ канал «Морковка спереди, морковка сзади».

Правила – это скучно.

Я давно заметил, что, когда набираю новых менеджеров и рассказываю им про регламенты и правила разработки в компании, они очень внимательно слушают, усиленно кивают и вообще – само внимание. А спустя пару недель или месяц, внезапно выясняется, что они не даже не кликнули по ссылке, которую я отправлял в письме. И читают регламенты исключительно из-под палки. Хотя, казалось бы, что там: 5 листов, 30 минут осознанного времени, не более. Почему так?

Читать далее
Всего голосов 12: ↑9 и ↓3+10
Комментарии14

Как сделать первый деплой Java приложения на удаленный сервер. Инструкция от/для новичка

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров13K

Как любой начинающий вкатун, который написал свое первое стартап приложение мне захотелось сделать его достоянием общественности доступным через Интернет. Долгие часы поиска не давали особых результатов, поскольку все что мне удавалось найти было только кусочками пазла, а полную картину я не мог увидеть, в силу отсутствия опыта и наличия наставника. После месяца проб и ошибок я сумел получить доступ к приложению через удаленный сервер.

Так у меня и родилась идея сделать одну полную инструкцию (прежде всего для себя), где в одном месте будет описан процесс деплоя. Если Вы читаете эту статью, значит мне удалось решить проблему «первой публикации приложения на сервер». К Вашему вниманию любимая рубрика «инструкция для чайников – как самостоятельно сделать свой первый деплой».

Дисклеймер:

Я классический вкатун с полного нуля; Java первый и на момент написания статьи единственный язык программирования, который я знаю; это моя первая статья; в этой статье нет рекламы; я не проходил платных курсов; у меня нет регулярного ментора.

Читать далее
Всего голосов 9: ↑4 и ↓5-1
Комментарии28

Архитектура клиентского приложения (механизмы структуризации)

Время на прочтение29 мин
Количество просмотров18K

История первая


Некоторое время назад я работал в одной игровой компании, которой руководил немец. Создание игр не было основным бизнесом этого немца. Основные доходы он получал от продажи косметики и от сдачи коммерческой недвижимости в аренду. Наличие игровой компании было способом выделиться среди своих знакомых бизнесменов.

image

Игровая компания немца разрабатывала 3 вида игр:

  1. Флэш-игры для мобильных телефонов с поддержкой технологии J2ME.
  2. Обучающие игры для портативной игровой приставки Nintendo DS. Заказчиками этих игр были европейские издатели, а покупателями — родители, чьи чада имели проблемы с обучением по математике, английскому или немецкому языкам. Подразделение игр для Nintendo DS выпустило много игр. Хотя они и не стали AAA-тайтлами, но окупили свою разработку и принесли небольшую прибыль.
  3. Игры для платформы Nintendo Wii.

В последней команде был я. Команда должна была разработать игру для маленьких девочек по детскому бренду. Бренд был достаточно известен в Германии (это был основной рынок) и в ряде других европейских стран: во Франции и в Великобритании.

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии6

Как удалить JavaScript из файлов PDF

Время на прочтение3 мин
Количество просмотров7.2K
Как известно, внутри файлов PDF можно размещать скрипты JavaScript, которые будут запускаться на исполнение в браузере. Например, если загрузить этот PDF, то вы увидите результат выполнения скрипта:



Это стандартная функция формата. Все разработчики браузеров знают, что PDF подобно HTML является активным контентом и может содержать исполняемые скрипты.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+19
Комментарии10

Чистый код: Принцип открытости закрытости (OCP)

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров5.5K

Принцип открытости/закрытости гласит, что программные объекты (классы, методы, функции и т. д.) должны быть открыты для расширения, но закрыты для модификации.

Идеальной реализацией данного принципа является интерфейс. Ничего лишнего, нечего модифицировать, можно только расширять.

Читать далее
Всего голосов 14: ↑5 и ↓90
Комментарии15

Собираем бюджетный домашний NAS на 14 ТБ

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров64K


Начав заниматься фотографией, я быстро ощутил нехватку места на компьютере. Фотографии в RAW имеют большой вес, а про видео говорить ещё страшнее. Решение проблемы очень простое — собрать NAS.

О моём опыте сборки бюджетного NAS на 14 ТБ я напишу далее в статье.
Читать дальше →
Всего голосов 132: ↑131 и ↓1+161
Комментарии254

RLS в действии: как решить вопросы доступа в BI за 5 минут

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.1K

Когда бизнес-аналитика внедряется как корпоративный инструмент, ее пользователями становятся сотни или даже тысячи людей из разных подразделений. Кроме этого нередко результаты прогнозов, расчетов и визуализаций все чаще выкладывают прямо на порталы или открывают к ним доступ без авторизации, чтобы сторонние наблюдатели могли получить важную для себя информацию. Все это порождает проблемы конфиденциальности, которые раньше решались с помощью дублирования данных и создания нескольких контуров BI. Но, как говорится, «есть способ лучше»! Сегодня мы поговорим про механизм Row Level Security (RLS), который позволяет и BI предложить сразу всем, и доступ разграничить, и не плодить личные сущности. Ну а подопытным, которому мы будем ограничивать доступ в наших примерах, как вы уже догадались, будет Александр Сергеевич.

Читать далее
Всего голосов 8: ↑8 и ↓0+10
Комментарии3

Camunda и Kafka: не откусывай больше, чем можешь проглотить

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров7.9K

Привет, Хабр! Меня зовут Егор, я бэкенд-разработчик в T-Банке, участвую в разработке продуктов комплаенса. Недавно в одном из наших проектов мы столкнулись с проблемой низкой производительности Camunda — и хотим поделиться опытом, который мы получили в процессе ее решения.

Статья для тех, кто уже немного знаком с Camunda BPM или имел опыт разработки на ней. Многие описанные здесь вещи будут, скорее всего, непонятны новичкам в Camunda, поэтому лучше будет прежде ознакомиться с основами этого движка в других статьях или в официальной документации.

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии14

Механизмы образования антициклонов над континентами. А причём тут роса на траве по утрам?

Время на прочтение16 мин
Количество просмотров8.1K

В каких случаях мы видим росу на траве по утрам?

Каждый с детства из классической литературы знает про «туман над речкой после заката» и про «росу на траве по утру».

Для примера приведу фотографии реальных пейзажей к этим пасторальным литературным штампам (см.рис.1-3)

Читать далее
Всего голосов 39: ↑37 и ↓2+46
Комментарии58

Пожалуйста, хватит о чистой архитектуре микросервисов

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров12K

Я действующий senior golang разработчик. В связи с чем, могу заявить, что данное мнение является полностью неоспоримым. Вашего объективного мнения не существует, существует только субъективное, ибо мы с вами не камни. Камень - объект, человек - субъект. Может ли субъект родить что-то объективное? Но да ладно, меня понесло.

Читать далее
Всего голосов 37: ↑7 и ↓30-21
Комментарии30

Еще одна конфигурация на базе OpenWRT (+PC) для обработки трафика

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.6K

Последнее время на некоторых территориях тема обработки транзитного трафика на домашнем роутере стала популярна как никогда раньше. Интервал между новыми вызовами сократился с нескольких лет до нескольких дней. Задачи становятся всё интересней и сложней.

Перешитый на OpenWRT роутер пока справляется и наверное справлялся бы еще какое-то время. Но софт становится тяжелее, времени на его отладку и установку всё меньше. При всех преимуществах OpenWRT, начинают всплывать недостатки - специфическая архитектура и ограниченные ресурсы. Кроме того, роутер лично для меня место интимное и не всякий софт хочется на него ставить не глядя. Ситуация в моем случае усугубляется еще и тем, что настройка происходит удалённо через этот самый роутер, поэтому неудачные попытки чреваты большими сложностями.

Как и у многих, у меня рядом с роутером есть небольшой NAS на базе PC. Который с помощью второй сетевухи мог бы легко превратиться в роутер. Но как это сделать удаленно? И как сделать из сервера роутер, не трогая по-возможности сервер и роутер? Легко!

Подразумевается, что читатель имеет базовые навыки администрирования сетей и линукса.

Читать далее
Всего голосов 5: ↑4 и ↓1+5
Комментарии2

Сложно о простом. Сеансовый уровень (L5), представительный (L6) уровень и прикладной (L7) уровень

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров7.3K


Приветствую, коллеги! Меня зовут ProstoKirReal, и сегодня мы продолжим изучение модели OSI, сосредоточив для начала внимание на сеансовом уровне (L5). Этот уровень играет важную роль в управлении сеансами связи между приложениями.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+28
Комментарии6

OSINT: Нахождение секретной техники ВВС США по фото

Время на прочтение3 мин
Количество просмотров8.9K

В данном кейсе речь пойдёт о OSINT-исследовании звёздного неба, благодаря которому, в последствии найдут местоположение секретного бомбардировщика по одному лишь фото.

Читать далее
Всего голосов 17: ↑14 и ↓3+12
Комментарии10

Распределенные транзакции для самых маленьких

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров12K

В этой статье рассказываем про распределенные транзакции - зачем они нужны в микросервисной архитектуре и какие у нас есть варианты реализации. Рассказ ориентирован на тех, кто не в теме - кому непонятно, зачем на простую транзакцию накручивать столько сложностей, это ведь удлиняет разработку и увеличивает количество точек отказа. Поясним зачем это нужно, приведем примеры проектов и немного пофилософствуем.

Читать далее
Всего голосов 18: ↑14 и ↓4+15
Комментарии10

Установка youtubeUnblock на keenetic start

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров42K

Всем привет! Напишу как я устанавливал youtubeUnblock на старый роутер keenetic start, больше для себя ну и поделится опытом.

Читать далее
Всего голосов 12: ↑10 и ↓2+14
Комментарии57

Видеонаблюдение на базе NanoPi R4S, rclone и mediamtx

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7.2K

В этой статье я расскажу, как организовал себе примитивный видеорегистратор, который:

1. Умеет транслировать видео на любые устройства, где есть браузер с поддержкой h264, причем без использования китайских серверов.
2. Вести циклическую запись в формате mp4 и сохранять её удалённо.
3. Стоит меньше 100$.

Читать далее
Всего голосов 14: ↑14 и ↓0+20
Комментарии24

Реквием по SCRUM: всё равно уже хайп прошёл

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров16K

В мире победившего эджайла, SCRUM, как один из наиболее популярных фреймворков, казалось, имеет все шансы стать отраслевым стандартом. Однако в результате врождённых недостатков он стала чем-то средним между религией для занятых проектным управлением и воздухом для продажи эджайл-коучами. Более того, сегодня строгая приверженность принципам SCRUM нередко становится маркером профнепригодности для людей, которые имели неосторожность переродиться из полноценных проектных методологов и руководителей в фанатично зацикленных на ритуалах scrum-мастеров (речь не обо всех, но о об очень многих). В посте попытался обобщить все проблемы SCRUM, как "фреймворка" для проектного управления и создания продуктов.

Читать далее
Всего голосов 48: ↑43 и ↓5+54
Комментарии108

Локальное голосовое управление

Время на прочтение4 мин
Количество просмотров4.6K

Я не художник...

Привет. В очередной раз задумался о локальном голосовом управлении устройствами умного дома, а тут как раз наткнулся на статью @CyberexTech "Моя безумная колонка" - https://habr.com/ru/companies/timeweb/articles/772080. Их там две части. Я тоже запускал на распбери готовые проекты типа voice2json, но все это оказалось не о том, речь распознавалась, но дальше никакого движения. А тут статья от Кибертеха (мне проще его так называть). Очень интересный проект показался, особенно после видео довольно быстрого распознавания воксом голоса, но дочитав до конца я понял, что это опять не то, нам-то нужно чтобы включалось/крутилось всякое железо, навешанное на умный дом, типа лампочек и кондиционеров, а в статье это оказалось как-то очень усложненно и неявно. В общем решил сам попробовать что-нить запилить. А самая хохма в том, что я не программист и писать код не умею, но у нас теперь есть программист от бога, которого называют ChatGPT. Пришлось обращаться к нему.

Читать далее и так далее
Всего голосов 7: ↑4 и ↓3+3
Комментарии6

Гибкие шестерни

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров16K
Картинка Jahobr, Youtube-канал «3DprintedLife»

В робототехнических проектах зачастую требуется использование разнообразных редукторов и передач. Слабым местом таких конструкций остаётся их относительная громоздкость и, соответственно, дороговизна.

В этой статье мы поговорим о том, как можно решить этот вопрос наиболее простым способом.
Читать дальше →
Всего голосов 65: ↑63 и ↓2+90
Комментарии42
1
23 ...

Информация

В рейтинге
2 332-й
Откуда
Жуковский, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность