Pull to refresh
73.5
Karma
0.7
Rating
Копетан О. Я. @vanxant

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

  • Followers 99
  • Following 4
  • Posts
  • Comments

Памятка и туториал по HTTP-заголовкам, связанным с безопасностью веб-приложений

Timeweb corporate blog Information Security *Website development *JavaScript *Programming *


Доброго времени суток, друзья!


В этой статье я хочу поделиться с вами результатами небольшого исследования, посвященного HTTP-заголовкам, которые связаны с безопасностью веб-приложений (далее — просто заголовки).


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


В практической части мы реализуем простое Express-приложение, развернем его на Heroku и оценим безопасность с помощью WebPageTest и Security Headers. Также, учитывая большую популярность сервисов для генерации статических сайтов, мы настроим и развернем приложение с аналогичным функционалом на Netlify.


Исходный код приложений находится здесь.


Демо Heroku-приложения можно посмотреть здесь, а Netlify-приложения — здесь.


Основными источниками истины при подготовке настоящей статьи для меня послужили следующие ресурсы:


Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Views 9.8K
Comments 1

Список ноотропов, покупка которых не окажется пустой тратой денег

Brain

Небольшая подборка веществ помогающих нашим мозгам работать чуточку лучше. Большинство из них продается в ближайшей аптеке, отпускается без рецепта, имеют доказательную базу и плюс-минус универсальны, так как «качают» самое важное — мотивацию, энергию и память.

Читать далее
Total votes 121: ↑85 and ↓36 +49
Views 145K
Comments 234

Что оказалось самым важным в гарнитурах для колл-центров для самих операторов

КРОК corporate blog Project management *Computer hardware

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

Мы начали тестировать разные гарнитуры, потому что постепенно расширяем линейку поставляемого оборудования для заказчиков. В общем, мы взяли много образцов у разных вендоров, отдали их нашим сотрудникам и сотрудницам поддержки первой линии «ой, у меня принтер не печатает» и попросили протестировать — чтобы затем понимать, что именно можно смело рекомендовать заказчикам. 

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

Решает эргономика. И операторы выбирают то, что не сплющивает голову к вечеру. 

Читать далее
Total votes 41: ↑40 and ↓1 +39
Views 12K
Comments 21

Передаём файл между изолированными виртуальными машинами через побочные каналы

Information Security *Abnormal programming *Virtualization *Computer hardware Desktop PC's

Не далее пяти дней назад на хабре появилась новость под заголовком "В Apple M1 нашли уязвимость M1RACLES — возможна быстрая скрытая передача данных между приложениями". В одном предложении суть формулируется так: в Apple M1 нашли регистр, который кто угодно может читать и писать из непривилегированного режима. Значит, это можно использовать для обмена данными в обход механизмов межпроцессного взаимодействия, предоставленных ОС.

В комментариях к этой публикации развязалась умеренно оживлённая дискуссия о статусе находки: всё-таки серьёзная уязвимость или пустяк? Наряду с @SergeyMaxи @wataru я обратил внимание, что каналов скрытого обмена и так существует предостаточно просто потому, что исполняющая клиентский софт или виртуальные машины аппаратура является разделяемой средой, грамотная модуляция состояний которой делает возможным произвольный обмен данными вне зависимости от инвариантов нижележащей ОС или гипервизора. Противоположной точки зрения придерживаются почтенные господа @creker и @adjachenko, утверждая, что доселе известные побочные каналы качественно уступают возможностям M1RACLES.

Эта заметка является наглядной иллюстрацией к моему утверждению о легкодоступности скрытых каналов обмена. Я собрал простой PoC из ~500 строк на C++, при помощи которого был успешно отправлен файл из одной виртуальной машины в другую на том же физическом хосте. Далее я кратко описываю его устройство, пределы применимости, и привожу выводы и мнение самого автора M1RACLES в конце.

Читать далее
Total votes 21: ↑21 and ↓0 +21
Views 5.1K
Comments 8

Обмен компонентами химического топлива между восходящими и нисходящими космическими аппаратами

Astronautics

Данный пост является продолжением идей высказанных мной в предыдущем посте, если какая либо часть рассуждений кажется Вам недостаточно раскрытой возможно вы сможете найти ответ в предыдущем посте.

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

Читать далее
Total votes 7: ↑7 and ↓0 +7
Views 2.5K
Comments 120

Исключения для хардкорщиков. Особенности обработки эксепшенов в динамически размещаемом коде

Журнал Хакер corporate blog Information Security *Reverse engineering *Development for Windows *
image

Современные версии ОС налагают на исполняемый код ограничения, связанные с требованиями безопасности. В таких условиях использование механизма исключений в инжектированном коде или, скажем, во вручную спроецированном образе может стать нетривиальной задачей, если не быть в курсе некоторых нюансов. В этой статье речь пойдет о внутреннем устройстве юзермодного диспетчера исключений ОС Windows для платформ x86/x64/IA64, а также будут рассмотрены варианты реализации обхода системных ограничений.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Views 19K
Comments 11

Особенности структурной обработки исключений в Win64

Programming *System Programming *Debugging *Reverse engineering *

В процессе перевода своих средств программирования на платформу x86-64 потребовалось перевести и встроенный интерактивный отладчик. В отличие от подключаемых отладчиков данный отладчик находится, так сказать, непосредственно «на борту» каждой исполняемой программы. При этом он имеет сравнительно небольшие размеры (около 44 Кбайт, большую часть которых занимает дизассемблер). Я так привык к этому отладчику, что уже совершенно не могу без него обходиться, и поэтому перевод в 64-разрядную среду стал настоятельно необходимым.

Однако формальный перевод с Win32 в Win64 дал такие странные результаты, что пришлось потратить много сил и времени, чтобы разобраться, почему то, что ранее работало в Windows-XP, перестало нормально работать в Windows 7. Виной всему оказалась структурная обработка исключений, практически не задействованная ранее в среде Win32.

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

Читать далее
Total votes 26: ↑25 and ↓1 +24
Views 3K
Comments 12

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

Leader-ID corporate blog Popular science Chemistry

Думаю, это очень классная история, когда ты подарил цветы, а они не вянут целый год!

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

В основе стабилизации нет никакого чуда: обычные законы физики и биохимии, простые ингредиенты и широкий простор для экспериментов. Хотя у производителей остаются свои секреты.

Читать далее
Total votes 133: ↑131 and ↓2 +129
Views 36K
Comments 79

Мельчайшее различие

RUVDS.com corporate blog Website development *Usability *Design
Translation
В июле команда, которая занимается дизайн-системой в компании Gusto, выдала кое-что, достойное восхищения. В течение трёх месяцев мы вкладывали в дело все силы, стремясь обновить корпоративные материалы, такие, как логотипы, цвета и шрифты. Но занимались мы не только этим. Мы чувствовали, что перед нами открылась возможность улучшить каждый компонент нашей библиотеки. Мы надеялись расширить возможности проекта, убрав компоненты, дублирующие друг друга, и избавившись от технического долга. Тогда же мы начали разбираться с множеством давних проблем, касающихся доступности проекта для людей с ограниченными возможностями.



Меня уже некоторое время беспокоил дизайн наших таблиц. Я с нетерпением ждал того момента, когда смогу привести их к достойному виду.
Читать дальше →
Total votes 57: ↑54 and ↓3 +51
Views 10K
Comments 18

Инкрементальный бекап в дюжину строк

System administration **nix *Backup *
Recovery mode
Tutorial

Что самое важное для бекапов? Правильно, воспроизводимость. Поэтому давайте сделаем велосипед на коленке и на опции --link-dest у rsync. У нашего велосипеда не будет сложной структуры данных в стиле git как у restic, ни кучи бекендов как у duplicity. Но мы сможем восстановить его работу по памяти даже под стрессом.


Опция --link-dest позволяет указывать предудущую версию бекапа, на которую rsync будет ставить жёсткие ссылки, если файлы с прошлого раза не поменялись.

Читать дальше →
Total votes 38: ↑36 and ↓2 +34
Views 9.6K
Comments 17

Лошадь сдохла – слезь: переход с tslint на eslint

Dodo Engineering corporate blog Programming *Perfect code *TypeScript *
До недавнего времени во всех проектах фронта разработчики Dodo Pizza Engineering использовали tslint – полезный инструмент, который подсказывает, когда ты накосячил в коде допустил неточность, помогает поддерживать код в одном стиле и сам исправляет многие замечания. Но тут tslint взял и умер. Под катом я расскажу, почему так вышло, как перестать лить слёзы по умершему и перейти на инструмент eslint, а также покажу кое-что очень интимное.


Читать дальше →
Total votes 39: ↑37 and ↓2 +35
Views 32K
Comments 12

Заходят как-то два браузера в скроллбар…

RUVDS.com corporate blog Website development *CSS *JavaScript *Browsers
Translation
image Скроллбар (scrollbar, полоса прокрутки) — это простой, но эффективный механизм, который действует как основное средство, с помощью которого можно просматривать большие документы. Но это — далеко не всё, на что способны полосы прокрутки! Эти скромные рабочие лошадки ещё и неплохо подсказывают пользователям о том, каковы размеры документов, с которыми они взаимодействуют. В результате скроллбары несут на себе двойную нагрузку. Они и помогают работать с различными материалами, и информируют пользователя о размерах этих материалов.

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

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

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

Материал, перевод которого мы публикуем сегодня, посвящён некоторым особенностям использования скроллбаров в веб-приложениях.
Читать дальше →
Total votes 42: ↑41 and ↓1 +40
Views 23K
Comments 19

Работа с Worker “как хочется“, а не “как можно”

Waves corporate blog JavaScript *TypeScript *

В этой статье будет использоваться ГРЯЗНЫЙ, небезопасный, "костыльный", страшный и т. д. метод eval. Слабонервным не читать!


Сразу скажу, что некоторые проблемы удобства использования решить не удалось: в коде, который будет передан в worker, нельзя использовать замыкание.
Работа с Worker "как хочется", а не "как можно"

Читать дальше →
Total votes 25: ↑22 and ↓3 +19
Views 5.1K
Comments 15

Разбор выкладки (интерфейс расстановки товаров в магазине)

Мосигра corporate blog Sales management *


Привет! Я довольно давно обещал рассказать про особенности выкладки не на уровне ликбеза, а прямо с парой примеров по нашим точкам. Сразу две важных вещи:

  1. Мы умеем выкладывать только настольные игры, и не факт, что наши принципы подойдут кому-то ещё.
  2. Выкладка — далеко не то, с чего нужно начинать работу с магазином, она обычно даёт 1-5% увеличения выручек. Зато это быстро, почти бесплатно и приятно.

Но давайте разберём косяки и попробуем вывести принципы. Мы примерно так индуктивно модель и дотачивали.
Читать дальше →
Total votes 67: ↑66 and ↓1 +65
Views 19K
Comments 107

Новый кодек AV1: ускоряем загрузку видео в браузере

Firefox Website development *Working with video *Google Chrome HTML *
Translation
Tutorial
В этом руководстве мы научимся использовать видео в Вебе, как это принято в 2019. Chrome и Firefox начали поддерживать новый кодек AV1 — для них видео можно сделать в два раза меньше.

Отдельно поговорим, как заменить GIF на видео в AV1 и H.264 — тогда его размер упадёт в 20-40 раз.

AV1 в браузере

YouTube уже использует его в TestTube. Netflix заявил, что AV1 будет «их основным кодеком следующего поколения».

Мы в Злых Марсианах уже используем его на нашем сайте и на Ампллифере. В этой статье я поделюсь опытом внедрения AV1 и шаг-за-шагом расскажу, как вставить видео, чтобы оно работало во всех браузерах.
Читать дальше →
Total votes 49: ↑49 and ↓0 +49
Views 57K
Comments 85

Как нам удалось прочитать рукопись, найденную в 80-х возле третьего крематория в Аушвице-Биркенау

Algorithms *Image processing *Popular science Periphery
Эта история для меня началась в 2015 году, когда я посмотрел передачу на Youtube с Павлом Поляном, посвященную 70-летию освобождения Аушвица-Биркенау. Он рассказывал о своей книге «Свитки из пепла», его новых переводах с оригиналов документов от непосредственных свидетелей холокоста — членов зондеркоммандо, о найденных им цензурированных первыми переводчиками местах, о состоянии рукописей и о технических проблемах чтения, с которыми он столкнулся.

Меня заинтересовал момент: каким же образом выглядит процесс перевода военных документов, насколько качественно они были оцифрованы, все ли было сделано для того, чтобы не ломать глаза переводчику. Когда я получил на анализ копии оцифрованных документов, я был удивлен нераскрытым потенциалом одной их них – Марселя Наджари. Ее часть в «свитках из пепла» занимала совсем малую главу, через несколько лет эта история раскрутилась до публикаций в мировых СМИ. Она интересна так же, как и страшна.


Total votes 263: ↑259 and ↓4 +255
Views 71K
Comments 341

Сверточная нейронная сеть, часть 1: структура, топология, функции активации и обучающее множество

Machine learning *
Sandbox

Предисловие


Данные статьи (часть 2) являются частью моей научной работы в ВУЗе, которая звучала так: «Программный комплекс детектирования лиц в видеопотоке с использованием сверточной нейронной сети». Цель работы была — улучшение скоростных характеристик в процессе детектирования лиц в видеопотоке. В качестве видеопотока использовалась камера смартфона, писалось десктопное ПС (язык Kotlin) для создания и обучения сверточной нейросети, а также мобильное приложение под Android (язык Kotlin), которая использовала обученную сеть и «пыталась» распознать лица из видеопотока камеры. Результаты скажу получились так себе, использовать точную копию предложенной мной топологии на свой страх и риск (я бы не рекомендовал).
Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Views 147K
Comments 7

Физически неклонируемые функции: защита электроники от нелегального копирования

Information Security *IT Standards *FPGA *Research and forecasts in IT Manufacture and development of electronics *
За последние 10 лет количество товаров-подделок в мире увеличилось в 2 раза. Это данные отчета министерства внутренней безопасности США. Большая часть контрафакта приходится на Китай (56 %), Гонконг (36%) и Сингапур (2%).

Производители оригинальных товаров несут серьезные убытки, часть из которых приходится на рынок электроники. Многие современные товары содержат в себе электронные компоненты: одежда, обувь, часы, ювелирные изделия, автомобили. В прошлом году прямые потери от незаконного копирования потребительской электроники и электронных компонентов в составе других товаров достигли порядка 0,5 трлн долл. США.



Эту проблему помогают решить различные методы защиты цифровой электроники от нелегального копирования, модификации и обратного проектирования: аппаратное шифрование (AES, RSA и др.), хеширование (например, SHA-256, MD-5), внедрение цифровых водяных знаков и отпечатков пальцев в проектное описание, лексическая и функциональная обфускация, формальная верификация и другие.

В этой статье мы расскажем об одном из самых экономичных методов защиты с точки зрения аппаратных затрат — физически неклонируемых функциях.
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Views 17K
Comments 64

Как написать кастомную активити для бизнес-процесса для облачного Битрикс24

1С-Bitrix
На зимней партнерской конференции 1C-Битрикс 2016г Олег Строкатый и Алексей Кирсанов показывали мастер-класс, в ходе которого разработали кастомную активити для бизнес-процесса под облачный Битрикс24. Информация по данной теме есть так же в курсе «Разработчик Bitrix Framework» (ссылки — в конце поста).

Изучив указанные материалы и опробовав их на своих проектах, мы составили для себя простую и подробную памятку действий по разработке активити для облачного Битрикс24, включающую в себя так же некоторые мелочи, которые в вышеуказанных источниках были недосказаны, видимо, в расчете на то, что у разработчика, изучающего их, уже есть определенный базис знаний. Этой памяткой я и хочу поделиться в данном посте.
Подробности
Total votes 4: ↑2 and ↓2 0
Views 27K
Comments 2

Управление памятью: Взгляд изнутри

C++ *System Programming *
Translation

Доброго времени суток!
Хочу представить вашему вниманию перевод статьи Джонатана Барлетта (Jonathan Bartlett), который является техническим директором в компании New Medio. Статья была опубликована 16 ноября 2004 года на сайте ibm.com и посвящена методам управления памятью. Хотя возраст статьи достаточно высок (по меркам IT), информация в ней является фундаментальной и описывает подходы к распределению памяти, их сильные и слабые стороны. Всё это сопровождается «самопальными» реализациями, для лучшего усвоения материала.

Аннотация от автора
Решения, компромиссы и реализации динамического распределения памяти
Получите представление о методах управления памятью, которые доступны Linux разработчикам. Данные методы не ограничиваются языком C, они также применяются и в других языках программирования. Эта статья даёт подробное описание как происходит управление памятью, на примерах ручного подхода (manually), полуавтоматического (semi-manually) с использованием подсчёта ссылок (referencing count) или пула (pooling) и автоматического при помощи сборщика мусора (garbage collection).

Читать далее...
Total votes 1: ↑1 and ↓0 +1
Views 55K
Comments 3

Information

Rating
1,336-th
Location
Agalli, Berat, Албания
Date of birth
Registered
Activity