Позднее Ctrl + ↑

Госуслуги Авто

Вы уже пользовались приложением «Госуслуги Авто»?

полез посмотреть, зашёл в пункт меню «Настроить внешний вид» и увидел список типов ТС с иконками

«Джип?»

Госуслуги — Единый портал государственных услуг и функций (ЕПГУ)

кто делает эти приложения???
вот типы ТС:

постоянные попытки взлома synology

Я сначала смеялся над тем, что synology требует отключать учётку admin, а еще Security Advisor попросил удалить учётку support, была такая для почтовых рассылок, но уже не актуально — удалил. К чему такие жесткости? Перестраховка, думал я...

А тут сидел вечером, разбирался с отключением NTLM1 в windows, чтобы по samba работать с DSM7 и что вижу в логах?

Я в этой каше с трудом находил нужные мне сообщения...
Обратите внимание, атаки шли с разных ip раз в 5 минут и пытались подобрать пароль к учётке admin, которая у меня отключена, по совету synology.

Да с такой активностью будут подбирать пароль 100 лет, и главное, не попадают в автоблокировку.
Я решил не ждать и, предварительно настроив белый список, врубил блокировку при одной неудачной попытке на сутки.

Утром наблюдаем следующее:

больше 100 ip заблокировано 😦

Synology chat bot (download)

сижу, допиливаю функцию, чтобы бот в ответ присылал пользователю файл...
файл, само собой, будет генериться на лету, за это отвечает скрипт php и будет выдавать примерно следующее:

header("Content-type: text/plain");
	header("Content-Disposition: attachment; filename=список посещений офиса за ".$monthes[date('n', strtotime($_REQUEST['month']))]." ".date('Y', strtotime($_REQUEST['month'])).".log");
	echo $log_str;

а в самом боте есть вызов этой url, когда-то давно написал функцию

function answer_file($user_id,$text,$file,$bot_token)
# $user_id - массив с id
# $text - комментарий к файлу
# $file - url на сам файл
# $bot_token - токен бота
{
    $data = array (
    'text'    => $text,
    'user_ids'=> $user_id,
	'file_url'=> $file
    );
    $options = array(
    'http' => array(
        'method'  => 'POST',
        'content' => 'payload='.json_encode( $data ),
        'header'=>  "Content-Type: application/json\r\n" .
                    "Accept: application/json\r\n"
        )
    );
    $context  = stream_context_create( $options );
    $result = file_get_contents( 'https://server/webapi/entry.cgi?api=SYNO.Chat.External&method=chatbot&version=2&token=%22'.$bot_token.'%22', false, $context );
    $response = json_decode($result);
    return $result;
}

ну, в целом работает, только я же запрашиваю не существующий файл, а скрипт с параметрами, типа:

https://server/bots/get_tabel.php?action=get_log&login=axl&month=2021-09

и получаю файл с именем get_tabel.php

не такого результата я хотел, ох не такого

Хорошо, переходим к радикальному методу... т. е. с nginx на apache и используем .htaccess
в результате нам надо получить url вида:

https://server/bots/logs/axl/2021-09/список посещений офиса за сентябрь 2021.log

приступим...

накидаем .htassess, учтем что нам надо использовать скрипт, только когда запрашивается папка logs

RewriteEngine On
 
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
 
RewriteRule ^logs/.*$ ./parse.php [L]

я временно сделал parse.php чтобы отладить, потом, конечно же перенаправлю на основной скрипт

<?php

$path = $_SERVER['REQUEST_URI'];
$paths = explode('/', $path);

echo "<pre>";
print_r ($paths);
echo "</pre>";

?>

и результат запроса

Array
(
    [0] => 
    [1] => logs
    [2] => axl
    [3] => 2021-09
    [4] => %D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D0%BF%D0%BE%D1%81%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B9%20%D0%BE%D1%84%D0%B8%D1%81%D0%B0%20%D0%B7%D0%B0%20%D1%81%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8C%202021.log
)

вы не поверите, самое крутое, что htassecc заработал с первого раза 😁

ну вот... после небольших манипуляций получился красивый результат:

Ранее Ctrl + ↓