Стянуто из ленты в Инстаграм
Удаление ВСЕХ ожидающих комментариев в WordPress
Зашел в панель, а у меня там полторы тысячи комментов на модерацию – #спамернедремлет! 🙂
Хотел было плагины для массового удаления комментариев из WordPress поизучать, поставить, запустить, но решил обойтись простым MySQL запросом:
DELETE FROM wp_comments WHERE comment_approved =0
Дешево и сердито! 🙂
При апруве комментариев их атрибут “comment_approved” меняется на “1”, поэтому они остались невредимыми.
А вот новые удалились ВСЕ ПОЛНОСТЬЮ! Следи за этим: если в комментариях может быть что-то ценное, то такой радикальный способ не подойдёт.
Как через ISPManager прикрутить к доменам SSL сертификат от StartSSL
Валидация пройдена, единый EV-сертификат для целой пачки доменов выпущен StartSSL.
Как его прилепить к сайту-то?
- Сохраняем нужный сертификат на диск из списка доступных сертификатов: В результате на диске образовался ZIP-файл с пачкой crt-файлов с набором буковок под всякие сервера (Apache, Nginx, IIS, Other). Я работал с архивом для Apache – взял оттуда файлик ИМЯДОМЕНА.crt. У меня это получился passcovery.com.crtИ тут я, в лучших традициях склеротика, подзавис – а где у меня приватный ключ для этого сертификата-то?..
Решение нашлось в смутных воспоминаниях прошлых лет и составленных на их основе запросах к гуглю… 🙂
Может быть оно не оптимально и вообще через *опу, но вот как есть. :))
- Импортируем сертификат ИМЯДОМЕНА.crt в хранилище сертификатов Internet Explorer:
- И тут же экспортируем этот сертификат в формате .pfx и дополнительно указываем, что хотим экспорт с приватным ключом:
Автослесарное, или как я провёл на даче
Не работал у моего Пацифика кондей. Ездил я по разным сервисам. Диагнозы различались кардинально. Правильный поставили на Салова, 44 – помер датчик обморожения. Правда, лечение предложили не совсем верное и не самое простое – давайте разберём полмашины и махнём его.
Жаба шепнула – читай мануалы, Дениса. И я устремился…
Делов оказалось минут на 30.
Итак, рассказ в картинках, как “поменять” датчик обморожения на Chrysler Pacifica. 😉
https://www.instagram.com/p/BD54SNVqxUR/
Отдельное спасибо тестю, кто сделал мне такой полезный подарок на день рождения – презентовал два замечательных термистора на 10кОм! 😀
Взлом пароля Excel 2016. Вы держитесь здесь, всего доброго, хорошего настроения и здоровья
Ущербный Reddit’а удалил мой комментарий какому-то ученику. Полагаю из-за ссылок на наш мегакрутой софт для взлома паролей. Ну и дурак!.. 😉
Там пользователь problemboy99 спрашивает, как ему взломать пароль к Excel 2016. Если он это сделает, то получит полный зачёт. Типа лёгкие деньги!
Ему начинают лить в уши всякий бред – напиши VBA макрос, открой файл в OpenOffice и подобную чушь…
Народ, ау! Файл закрыт паролем! Это просто злая шутка учителя. Зачёт через пару тысяч лет. Смешно.
Дело в том, что взломать пароль Excel 2016 не представляя его структуру невозможно(*). Трюков, типа гарантированной расшифровки Excel 97-2003, для Excel 2007-2016 не существует. Только полный перебор вариантов. А раз мы ничего не знаем про структуру паролей, то придётся перебирать все-все варианты (два набора букв, цифры, спецсимволы). И вот уже пароли длиной всего 7 символов будут перебираться несколько тысяч лет:
Медленно? А быстрее не будет! Поверьте-проверьте: наш софт вылизан до идеала в плане оптимизации скорости работы. Скорость можно повысить масштабированием: добавлением в систему быстрых GPU, но это уже другие деньги. Не маленькие и не лёгкие. 🙂
Рейтинг GPU, если кому-то интересно.
И как тогда взламывать пароли Excel 2016?..
Только с предварительной подготовкой и хотя бы примерным представлением/предположением о том, чего искать. Лучше бы хоть что-то знать о структуре пароля, но на худой конец придётся делать какие-то предположения для выстраивания атаки на пароль.
Поскольку прямой перебор вариантов не эффективен, остаются на выбор два варианта:
- атака по словарю с мутациями. Если предположить, что пароль – это слово, набор слов, слова с изменениями (password -> p@$$w0rd), то наш софт умеет организовать атаку с мутациями по указанным словарям. Видео-пример для любопытных.
- атака по [расширенной] маске. Если хоть что-то известно о структуре пароля, то нужно пробовать сочинить сложную маску. В нашем софте можно задавать всякую непростую экзотику: первый символ в пароле – только заглавная буква, второй – строго цифра, дальше набор букв, а в конце – цифра и спецсимвол (P4hdJfy9!). Пример из жизни.
В общем простого зачёта парню не видать, но из моего ответа он об этом не узнает. Ущербный Reddit потёр мой комментарий. 🙂
PS: конечно же всегда есть ненулевая вероятность, что пароль устанавливал наивный идиот и он придумал отличный пароль – 12345 🙂
Я ему: “Exim, pipe email в скрипт и в почтовый ящик!” А он такой: “Mail delivery failed!”
Как уже писал, входящие ордера у меня идут на псевдо-email. Exim отправляет поток в скрипт и передаёт письмо дальше на реально существующий email.
Получается, что данные и в базу автоматом заносятся, и письмо я получаю о приходе ордера.
И вот оно “поломалось”…
То есть с моей стороны всё работало, как надо, а вот отправителю от сервера приходил привет вида:
SUBJ: Mail delivery failed: returning message to sender BODY: A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: pipe to |/var/www/scrpts/gvmmny.php generated by [email protected] The following text was generated during the delivery attempt: ------ pipe to |/var/www/scrpts/gvmmny.php generated by [email protected] ------ PHP Warning: Module 'geoip' already loaded in Unknown on line 0 Works! OrderID: 63838534 blah-blah-blah
Сразу как-то не дошло, в чём проблема. Пришлось интернеты ихние читать…
Суть в том, что скрипт и вся его обвязка не должны ничего генерировать в поток. А у меня получалось, что и скрипт (в тестовых целях) чего-то своё писал, и варнинг от PHP прилетал.
Решение:
- Задисабил свой текст.
- Задисабил подключение модуля в php.ini (;extension=geoip.so), поскольку он уже в сборке самого PHP присутствует (потому и варнинг).
И всё снова стало хорошо: и база пополняется, и я письма получаю, и отправитель отлупов от моего сервера не видит.
Опять делаю SSL A-класса. Теперь на Nginx
Резал пуделя, когда был на говнохостинге от Битвеб. Тогда это был патч для апатч.
Сейчас, на Sinaro, сервер работает в связке Apache+Nginx и пришлось в общем-то тоже самое (отключать SSL3 и запрещать слабые алгоритмы шифрования) делать в конфиге Nginx (/etc/nginx/nginx.conf):
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
ssl_prefer_server_ciphers on;
Потом рестарт и всё пучком.
service nginx restart
Серт брал у китайского WoSign. C дешёвого GoGetSSL переключилось всё хорошо. Работает. 🙂
Частичный редирект http -> https в Nginx
Отломалась активация софта.
Вскрытие показало, что проблема в редиректе http->https, сделаному средствами Nginx:
listen 185.48.58.35:80;
return 301 https://$host$request_uri;
В браузере всё пучком, а из программы ключ активации запрашивается по http, идёт редирект и ответа она уже не видит.
Решение очевидно в общем-то – закрыл редирект в условие:
listen 185.48.58.35:80;
if ($request_uri !~ “^/diracti”)
{
return 301 https://$host$request_uri;
}
То есть редиректим всё, кроме того в чьём URI есть нужная папка (тут это / diracti)
Рестарт Nginx: service nginx restart и всё, как надо.
Google PageSpeed Insights : Включите сжатие
Суть в сокращении объёма передаваемых данных. Сервер пакует их в ZIP, а браузер распаковывает и отображает.
Проверить включено ли сжатие на сервере можно здесь, например. У меня оно было отключено.
Я для сжатия использовал модуль mod_deflate. Существует еще и mod_gzip.
Опять полез в конфиг Апача и прописал такую конструкцию:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript application/rss+xml
</IfModule>
То есть проверяем, если модуль активен, то пускай пакует данные указанных типов.
Рестарт Апача (service httpd restart) и бинго – PageSpeed Insights отсыпал кучку поинтов. 🙂
UPD: Я ж теперь на Sinaro.Host (да-да, БитВеб оказался полным говном) и у меня тут зоопарк из вебсерверов (так было и на Форнексе). За статику отвечает Nginx. Для него нужны свои директивы на сжатие (конфиг по вдресу /etc/nginx/nginx.conf) и свой рестарт (service nginx restart):
gzip on;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
Google PageSpeed Insights : Оптимизируйте код JavaScript и CSS
Продолжаю собирать монетки. Было 77/100. Станет 95/100. 😉
“Удалите из верхней части страницы код JavaScript и CSS, блокирующий отображение,” – говорит нам Гугль.
Ерунда какая!
Сам же гугль хочет responsible design видеть. А он строится на собственных стилях шаблонов и стилях фрэймворков (в моём шаблоне это Bootstrap).
Если все стили оптом отправить в ссылку к </body>, то плывёт отображение страницы.
Решение в исходнике самого Google:
То есть я тупо запилил все критические стили в строку и прописал их явно в хидер шаблона. 150Kb текста в шаблоне выглядят дико, но монетки от PageSpeed Insights я получил – 95/100.
Для минимизации и обратного форматирования .css использовал Dan’s Tools. Там, кстати, много нужных штук.
Да, а все JavaScripts, второстепенные CSS и линки на GoogleFonts были сосланы в низ страницы, к закрывающему тегу.
Работает.
UPD: Минимайзер Дэна жмёт не максимально, как оказалось. Вот этот пакует лучше.