Encrypt attachments / Шифрование аттачей [DLE 9.x — 10.x]

Encrypt attachments / Шифрование аттачей [DLE 9.x — 10.x]

Автор: kaliostro
Версия движка DLE: 9.x — 10.x
Описание:
Представляем вашему вниманию хак, который пригодится тем кто использует модуль HIDE. Он позволяет шифровать номера прикрепленных файлов на сайте, чтобы избежать их слива.
Особенности:
+ поддерживает старые аттачи
+ не требует внесения изменений в БД
+ установка в 3 действия
+ подойдёт для версий ДЛЕ с 9.0 и выше
Установка:
Открываем файл engine/modules/functions.php, находим строку в функции show_attach:

$find_1[] = '[attachment=' . $row['id'] . ']';
$find_2[] = "#\[attachment={$row['id']}:(.+?)\]#i";

Ниже вставляем:

$row['id'] = urlencode(base64_encode($row['id']) . md5($row['id'] . DBHOST . DBNAME));

Открываем файл engine/download.php, находим строку:

$id = intval ( $_REQUEST['id'] );

И заменяем ее на:

$id = intval(base64_decode(substr($_REQUEST['id'], 0, -32)));
if (md5($id . DBHOST . DBNAME) != substr($_REQUEST['id'], -32))
{
    die ( "link protected!" );
}