Безопасное хранение учётных данных в PHP

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

Хоть и множество проблем, связанных с защитой секретных данных, может быть устранено с помощью более менее «секретной обработки”, но, тем не менее, кажется, что всё ещё имеет место быть потребность в сохранении секретных данных прямо в коде. Использование такого рода паттерна, очевидно, не рекомендуется. В базе данных Common Weakness Enumeration есть даже запись об этом: CWE-798. Жёстко закодированные учётные данные могут представлять огромный риск, если злоумышленник каким-то образом смог получить доступ к коду и прочесть их.

Так что насчёт PHP?

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

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

Читать дальше…

Решено: знаки вопросов, кракозябры вместо кириллицы в консоли

Не так давно в консоли стал наблюдать частичную потерю кириллицы, вероятно, после обновления. Метод, описанный в статье 2015 года, не сработал, поэтому статью удалил, и нашёл другое решение.

Откроем в редакторе /etc/environment.

su
mcedit /etc/environment

Где mcedit можно заменить на nano.

environment — это конфигурационный файл для задания переменных, доступных глобально во всей ОС. Добавим в него две такие переменные:

LANG="ru_RU.UTF-8"
LANGUAGE="ru_RU.UTF-8"

Сохраним и выйдем из редактора. Затем в консоли вызовем три команды:

locale-gen ru_RU.UTF-8
update-locale
dpkg-reconfigure locales

Теперь осталось выйти из сеанса консоли и снова зайти, чтобы применить новую конфигурацию.

P.S. На скринах есть ошибка в коде, кто заметит какая? 🙂

Новая версия Генератора запоминающихся паролей

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

  1. Увеличены чекбоксы в опциях, чтобы в них было легче попасть пальцем;
  2. Окно с опциями теперь закрывается при нажатии на пространство за пределами его;
  3. Если активирована опция генерации длинного пароля, то теперь он всегда умещается в экран;
  4. Откорректировано оформление и добавлено отображение индекса версии в окне опций;
  5. Добавлена кнопка «Копировать», с помощью которой можно скопировать сгенерированный пароль в буфер обмена;
  6. Добавлена опция показа поля с заметкой.

Обновление применяется автоматически, ничего специально для этого делать не нужно. Если вы, по-прежнему, видите старую версию приложения, то не отчаивайтесь, со временем оно обновится 🙂

Напоминаю, что Генератор запоминающихся паролей (https://ahrameev.ru/password/) теперь является приложением Progressive Web Apps, а значит кроме работы онлайн в браузере, вы можете его установить к себе на мобильное устройство, и пользоваться приложением в оффлайн. Для этого с Android или iOS устройства в браузере (лучше в Chrome) откройте генератор, после чего в меню браузера выберите «Добавить на рабочий стол». Теперь, запуская приложение «Генератор паролей» с рабочего стола (или меню приложений), вы можете пользоваться им без наличия доступа в интернет.

Генератор запоминающихся паролей обновлён!

Согласно метрике, самое популярное в Бложике — это Генератор запоминающихся паролей. Давненько не было у него обновлений, ведь казалось бы, что такого можно ещё было сделать, но таки можно. Генератор запоминающихся паролей теперь стал одним из Progressive Web Apps, что означает, что это уже не просто веб-страница, а приложение, которое можно установить будь то на Android или iOS, да даже на Windows, при этом для этого не нужно заходить в магазин приложений (Google Play или AppStore), а достаточно вызвать в меню мобильного браузера функцию «добавить на рабочий стол». После этого, запуская с рабочего стола, вы сможете пользоваться генератором даже в оффлайн. Кроме того, у приложения обновился дизайн, что может очень обрадовать любителей тёмных тем.

Ссылка на Генератор запоминающихся паролей

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

А так приложение выглядит после установки на Android:

Решено: не устанавливается Docker CE

Вы следуете точно по инструкции с официального сайта Docker, например, по такой: https://docs.docker.com/install/linux/docker-ce/debian/, и, при попытке установить docker-ce, получаете ошибку:

Пакет docker-ce недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list

E: Для пакета «docker-ce» не найден кандидат на установку

Вы думаете, какого блин, начинаете искать альтернативные пути установки, устанавливаете по конкретной версии, через deb пакет. Может даже пытаетесь установить ядро посвежее. Но ничего не помогает?

Возможно у вас VPS сервер на платформе OpenVZ, на которой нет доступа к модулям и конфигурации ядра, в связи с чем установить на такой сервер Docker нельзя. Такие дела! Нужен VPS сервер на платформе KVM.

Storehouse of Tasks

И снова, по просьбам пользователей, выкладываю свою старую программу. Внёс незначительные изменения для актуализации, индекс версии поставил 2012, ибо тогда вышла последняя версия с обновлениями. Собственно собрать всё это было тем ещё квестом: сначала пришлось возиться с линупсами, чтобы хоть где-то скомпилировать линупс версию, потом долго возились вместе с Иваном, чтобы побороть странное поведение, которое не наблюдалось в предыдущих билдах, однако ошибка была и на винде. Так или иначе, после того, как проблему решили, выяснилось, что мне в руки попал СЛИШКОМ свежий исходник 🙂 Разрабатываемой версии, которой так никто и не увидел. Поэтому пришлось искать старую версию, из SVN репозитория, и проделывать всю работу заново.

Storehouse of Tasks (Хранилище задач) — это маленький персональный органайзер для Windows и Linux операционных систем. Он разработан для удобного ведения списка дел с указанием срока, периода повтора, приоритета и категории. Главной особенностью программы является простой и понятный интерфейс, позволяющий визуально отслеживать выполненные задачи и быстро добавлять новые.

Основные возможности

  • Расстановка сроков, приоритетов и периодов повтора;
  • Создание бессрочных заданий (оптимально для ведения простых заметок);
  • Наглядная сортировка списка дел по датам (вкладки «Бессрочные», «На сегодня», «На завтра», «Устаревшие»);
  • «Умный» поиск с учётом релевантности результатов;
  • Указание категории для задач;
  • Автоматическое создание резервных копий с шифрованием или без;
  • Шифрование базы заданий.

Читать дальше…