Архив рубрики: WEB

Selenium: Запуск браузера хром в «скрытом» режиме

Аргумент запуска —headless хоть и работает, но многие сайты к сожалению работают в таком «скрытом» режиме не вполне корректно. Интернет говорит, что скорее всего дело в том, что браузер запускается с не понятным размером окна. Однако принудительное выставление размера, в моём случае не помогло. Решением оказалось запуск браузера «за пределами экрана». А именно что-то вроде:

Пишем плагин для WordPress

Для того чтобы не изобретать велосипеды, необходимо с генерировать шаблоны файлов плагина. Например при помощи этого сервиса. В моём случае плагин называется ssk_read, поэтому далее везде фигурирует в названиях файлов он.

Получится структура папок вида:

Необходимо поместить все файлы в папку /wp_content/plugins..и собственно на этом моменте плагин уже будет доступен в админке для ативации.

Далее попробуем нарисовать страницу настроек в панели администрирования. Для этого добавим в /admin/class-ssk_read-admin.php в функцию конструкта класса хук добавления пункта меню:

И далее в основном теле плагина skk_read.php добавим функцию register_my_config_page, которая непосредственно регистрирует этот пункт меню к выводу на экран:

После этого в меню админки появится новый пункт меню, с выводом пустой страницы. Добавим в функцию DrawPage функционал вывода сохраненных настроек:

На этом этапе пока появится только кнопка «сохранить изменения», потому как мы еще не указали ядру, какие именно настройки мы хотим хранить. Для этого добавим в /admin/class-ssk_read-admin.php в функцию конструкта класса хук инициализации настроек:

И далее в основном классе ssk_read.php добавим функции регистрации полей и их вывода:

Получилось функционирующее сохранение:

Однако не хватает уведомления об успешном сохранении. Добавим хук:

И вывод сообщения:

Диалоговое окно на чистом javascript

Задача: вывести диалоговое окно без использования Jquery

Решение:

Защита сайта сертификатом p12

Задача: обеспечить вход на сайт только при наличии действующего сертификата формата p12.

Решение:

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

Сначала создадим корневой сертификат сервера и необходимые для дальнейшей работы файлы и папки. Для этого создадим в любой папке файл root_cer.sh с содержимым вида:

, где:

rsa:2048- длина ключа, -days — сколько дней действителен сертификат, -x509 — создаём самоподписаный сертификат, /C — страна, /ST — область, /L — город, /O — организация, /OU — отдел,

Результатом работы будут два файла в папке certs: servert.crt (сертификат) и serverk.key (закрытый ключ). Данные закрытого ключа можно посмотреть при помощи:

В файле db/serial записывается текущий серийный номер
подписываемого сертификата в шестнадцатиричном формате.

В файл db/index.txt сохраняются данные о подписываемых сертификатах.

Далее необходимо создать файл с настройками для генерации пользовательских сертификатов ca.config:

Для автоматизации генерации клиентских сертификатов можно собрать небольшой bash скрипт:

На входе скрипта необходимо задать email, имя пользователя без пробелов и пароль на установку сертификата. На выходе будет запись в БД сертификатов и непосредственно сам контейнер p12 в папке p12 для передачи клиенту.

И ещё один полезный скрипт, для автоматизации отзыва сертификатов revote.sh:

Посмотреть список отозваных сертификатов можно при помощи команды:

Осталось только настроить apache для того что бы он пускал на сайт, только при наличии сертификата, добавив:

Интро в админке

Иногда, чтобы не писать «руководство пользователя», проще сделать небольшое «интро», своеобразный «путеводитель» по сайту. Поможет в этом хороший скрипт Intro.js

Текст для тура отображается в тегах вида:

Запуск тура можно сделать например так:

В моём случае, я предусмотрел что «если следующий слайд в меню-гамбургере, и оно скрыто, то открываем его»