В этой статье рассказывается о том, как внедрить аутентификацию в ваш SvelteKit проект. Это будет JWT аутентификация с использованием refresh токенов для дополнительной безопасности. Мы будем использовать Supabase в качестве базы данных (PostgreSQL), но основы должны быть теми же.
User
Восторг безопасника — технология для шифрования образов контейнеров

Как превратить любой скрипт в Telegram-бота
Если вам нужен простенький Telegram bot, способный выполнять скрипты (написанные на любом языке) и отвечать текстом и картинками, то вам под кат. Там вы найдёте рассказ о бот-движке, который делает то, что вам надо.
Обнаружение лиц в Node.js с использованием Rust и WebAssembly

В последней статье мы рассказывали, как вызывать функции Rust из Node.js. Сегодня мы расскажем, как написать приложение AIaaS (англ. Artificial Intelligence as a Service — «искусственный интеллект как услуга») на базе Node.js.
Большинство приложений с искусственным интеллектом сейчас разрабатываются на языке Python, а главным языком программирования для веб-разработки является JavaScript. Для того чтобы реализовать возможности ИИ в вебе, нужно обернуть алгоритмы ИИ в JavaScript, а именно в Node.js.
Однако ни Python, ни JavaScript сами по себе не подходят для разработки ИИ-приложений с большим объемом вычислений. Это высокоуровневые, медленные языки со сложной средой выполнения, в которых удобство использования достигается за счет снижения производительности. Для решения этой проблемы блоки интеллектуальных вычислений в Python оборачиваются в нативные C/C++-модули. Точно так же можно сделать и в Node.js, но мы нашли решение получше — WebAssembly.
Виртуальные машины WebAssembly поддерживают тесную интеграцию с Node.js и другими средами выполнения JavaScript-кода. Они отличаются высокой производительностью, безопасны с точки зрения доступа к памяти, изначально защищены и совместимы с разными операционными системами. В нашем подходе сочетаются лучшие возможности WebAssembly и нативного кода.
36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql
Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.
У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
Шифруем и перешифровываем LUKS без потери данных
Введение
Если вы когда-либо задумывались о шифровании данных на дисках уже после того, как у вас накопилось их приличное количество, вы, вероятно, расстраивались, прочитав о необходимости переноса данных перед созданием шифрованного раздела и после. Перенос 500 ГБ туда и обратно не представляет никакой особой трудности, такой объем можно временно загрузить даже в облако, но если речь идет о шифровании 6 винчестеров по 4 ТБ каждый, задача заметно усложняется. По какой-то причине, возможность шифрования и перешифровывания томов LUKS без потери данных (in-place re-encryption) слабо освещена в интернете, хотя для этого есть две утилиты: cryptsetup-reencrypt, входящая в состав cryptsetup с 2012 года, и сторонняя luksipc, появившаяся на год раньше. Обе утилиты выполняют, в общем-то, одно и то же — шифруют раздел, если он не был шифрован, либо перешифровывают уже существующий с другими параметрами. Для своих нужд я воспользовался первой, официальной.Как это работает?
Предположим, у вас типичная разметка диска: один раздел, начинается с 1 МиБ (выравнивание для 4КиБ-секторов), заканчивается в конце диска.
Заголовок LUKS располагается в начале, перед зашифрованными данными. Для заголовка требуется минимум 2056 512-байтных секторов, т.е. чуть больше 1МиБ. Места перед началом раздела нам явно недостаточно, поэтому сначала нужно уменьшить размер файловой системы с ее конца, чтобы cryptsetup-reencrypt перенес блоки правее, в конец диска, освободив таким образом место в начале раздела для LUKS-заголовка. Конечный размер заголовка зависит от длины ключа, количества слотов для парольных фраз и прочих параметров, поэтому я рекомендую быть рачительным и отвести под заголовок 4 МиБ.

Безопасность сетевой инфраструктуры. Расширенные методы взлома и защиты. Видео
Программа курса:
Первое занятие — «Инструментарий пентестера»
Это занятие представляет из себя небольшой обзор истории появления и развития дистрибутива BackTrack и превращением его в Kali Linux.
Руководство по шифрованию данных на PHP
Важный update: в комментариях SamDark сделал замечание, что библиотека Mcrypt давно не поддерживается и имеет ряд недоработок, поэтому рекомендуется использовать OpenSSL. Если требуется переписывать имеющийся код, то может помочь эта статья. Кроме того, есть сведения, что Mcrypt может быть удален в PHP7.
Это краткое руководство о том, как избежать распространенных ошибок с симметричным шифрованием на PHP.
Будем рассматривать случай, когда данные обрабатываются на стороне сервера (в частности, шифрование происходит на сервере, а данные могут быть получены, например, от клиента в виде открытого текста, пароля и т.п.), что является типичным случаем для PHP-приложений.
Cведения из этого руководства не стоит использовать для создания шифрованных сетевых соединений, которые имеют более сложные требования. Для таких случаев надо использовать spiped или TLS.
Естественно, рекомендации, приведенные здесь, не являются «единственно возможным способом» организации шифрования на PHP. Цель этого руководства — попытаться оставить поменьше места для ошибок и сложных неоднозначных решений.
Облака — белогривые лошадки или безопасный ownCloud для «маленьких» в FreeNAS

ownCloud, как утверждает Википедия — это Свободное и открытое веб-приложение для синхронизации данных, расшаривания файлов и удалённого хранения документов в «облаке». И, как мне кажется, довольно интересное решение для организации собственного домашнего облака.
Однако, ownCloud, устанавливающийся в виде плагина в системе FreeNAS, да и просто из коробки, имеет ряд недостатков, от которых хотелось бы избавится даже при использовании дома:
- Во-первых, устанавливается в связке с SQLite, что подходит только если у вас небольшое кол-во файлов и пользователей, и абсолютно не подходит, если вы планируете синхронизацию с помощью клиента. У меня же хранилище уже расползлось почти на 5Tb и установленный таким образом ownCloud просто отказывался видеть часть файлов. Да и без синхронизации отдача от облака не велика. Заменим базу данных на MariaDB.
- Во-вторых, отсутствует работа по https, а мне совсем не нравится мысль о том, что кто-то может перехватить мои файлы. Включим https.
- В-третьих, начисто отсутствует защита от банального подбора пароля методом брутфорса. Защитимся от брутфорса с помощью fail2ban.
- В-четвёртых, мне лень часто просматривать логи на предмет взлома, но очень хочется оперативно узнавать о таких попытках. Настроим push-оповещения о попытках подбора пароля с помощью сервиса pushover.net.
Создаём своё первое десктопное приложение при помощи HTML, JS и Node-WebKit
Node-WebKit — комбинация Node.js и встроенного браузера WebKit. Код JavaScript выполняется в особом окружении, из которого есть доступ и к стандартному API браузеров, и к Node.js.
«Умный дом» собственными руками. Часть 2. Видеонаблюдение
Первой жертвой нашего интереса станет система видеонаблюдения.
SICP теперь по-русски! Часть третья

Перевод третьей лекции из курса «Структура интерпретация компьютерных программ».
Это самый известный курс по программированию за последние 25 лет; с 1980г читается в MIT, а с недавних пор что-то подобное читается и в Беркли.
Курс сменил преподавателей и даже язык программирования Scheme на Python(на мой взгляд совершенно зря) и тем не менее информация, которая дается в этом курсе остается архи актуальной в любое время. Я бы сравнил этот курс с чем-то очень фундаментальным и важным для программистов, типа математики или теории алгоритмов.
Мне бы очень хотелось, чтобы программирование у нас в стране преподавалось таким вот образом.
Приятного просмотра!
Мониторинг производительности веб-сервиса. Часть I

От того как часто появляются такие проблемы и как быстро они исправляются зависит многое – удовлетворенность пользователя сервисом, репутация разработчика и т.д. Как можно бороться с проблемами производительности?
Swiz Framework (краткий обзор)
- Инверсия управления (IoC) / Внедрение зависимостей
- Управление событиями и медиаторы
- Простой жизненный цикл для удаленных вызовов
- Фреймворк который не зависит от вашего кода
В сравнении с другими фреймворками для Flex:
- Отсутствие необходимости JEE паттернов
- Нет необходимости в куче повторяющихся папок
- Нет кучи копипастеных кусков кода
- Не обязательно наследовать классы фреймворка
jQuery и маски
Было решено делать на jQuery. Из всего этого вышел Masker.

Страничка плагина и описание
Проверялось в: IE 7-8, FF 3.6, Safari 5, Chrome 5
Автоматизация веб-сервера FreeBSD8 Apache2+Mysql5 Часть 1
- Создание хостов
- Ротация логов Apache2
- Архивация логов Apache2 и удаление старых логов.
- Создание базы данных и добавление нового пользователя с правами только к одной базе, с генерацией нового пароля.
Мой любимый редактор vi. Если кто не знает как с ним работать можно везде где я указал vi заменять на свой ee,mcedit и т.д
Скрипт создания хостов.
Структура на моем сервере следующая, у каждого пользователя в хомдир лежит папка www, выглядит это так.
/home/user/www.
Скрипт внутри папки www создает каталоги с именем хоста.
Пример mk_host.sh domen.ru user
в каталоге /home/user/www будет создана папка domen.ru с директориями
- cgi-bin
- html
- logs
- shadow
Также будет создан хост в директории Apache2. По моей схеме, для каждого виртуального хоста создается отдельный конфиг.
Смотрим сам скрипт.
Нюансы и алгоритмы программирования движка для маркетинговых онлайн-исследований
Git для загрузки обновленых файлов на сайт
Введение в eBay API
Прежде всего следует зарегистрироваться в системе, сделать это можно здесь. Процедура совсем несложная, в качестве имя компании я указал individual, хотя наверное, это ни на что не влияет. Далее подтверждаем свой емейл и, наконец-таки, получаем доступ. Далее следует получить два набора ключей, один для так называемой песочницы и второй для приложений, работающих с реальной базой аукционов. Надо сказать, что существует 10 разных версий API:
- Finding API
- Shopping API
- Best Match API
- Merchandising API
- Feedback API
- Trading API
- Large Merchant Services
- Client Alerts API
- Platform Notifications API
- Research API for eBay
В данной вводной статье я вас познакомлю с одним из методов Shopping API — GetSingleItem, который возвращает информацию по одному лоту.
Грязная работа: Вступление. Заправка цветных струйных картриджей HP

Этим небольшим обзором я хотел бы начать серию рассказов о «грязной» части моей работы, а именно, о следующих моментах:
- Заправка цветных струйных картриджей HP
- Заправка тонерных картриджей HP
- Обзор плоттера Wersacamm SP-540V
- Обзор плоттера BigPrinter PJ 3216
Information
- Rating
- Does not participate
- Registered
- Activity