Check HMAC

PHP
private function CheckHMAC($sSercet)
{
	if (!$sSercet) throw new Exception('Sercet key is not defined');
	$sPostData    = file_get_contents('php://input');
	$sCheckSign   = base64_encode(hash_hmac('SHA256', $sPostData, $sSercet, true));
	$sRequestSign = isset($_SERVER['HTTP_CONTENT_HMAC']) ? $_SERVER['HTTP_CONTENT_HMAC'] : '';
	if ($sCheckSign !== $sRequestSign) {
		throw new Exception('Hacking atempt!');
	};
	return true;
}

Linux Mint 19. Смена раскладки клавиатуры (языка) блокирует хоткеи (hotkeys)

Для решения проблемы блокировки горячих клавиш при переключении клавиатуры, будь то crtl+shift или shit+alt, необходимо выполнить следующий код. Проверенно на Linux Mint 19.1 Tessa xfe. После обновления смена раскладки будет работать по событию отжатия клавиш release (keyup), а не нажатия keypress(keydown)

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

Нет иконки скайпа в трее Linux Mint 19.1

После установки скайпа на Linux Mint 19.1 в трее не появилась иконка.
Чтобы вылечить это редактируем файл
~/.config/autostart/skypeforlinux.desktop
Меняем
Exec=/usr/bin/skypeforlinux

На
Exec=env XDG_CURRENT_DESKTOP=Unity /usr/bin/skypeforlinux %U

После редактирования желательно изменить права, чтобы скайп снова не перезаписал файл.

Настройка сертификатов от Let’s Encrypt

certbot.eff.org/

Устанавливаем нужные пакеты
sudo apt-get install certbot -t jessie-backports


Создаем сертификат
certbot certonly --webroot -w /var/www/site.com.ru -d site.com.ru


Для обновления в крон
certbot renew --nginx --pre-hook "service nginx stop" --post-hook "service nginx start"


Так же хорошая инструкция, с помощью которой можно поставить сертификат на Debian 7 (wheezy) где не получается установить certbot.
wiki.enchtex.info/howto/ssl/letsencrypt

server {
        listen 80;
        server_name www.site.ru;


        root /var/www/www.site.ru;

        location ~ /.well-known {
                # в версии nginx 1.10.3 это работает. в 1.2 - нет
        }

        location / {  # the default location redirects to https
                rewrite ^ https://$host$request_uri? permanent;
        }
}