Собственно это хак, который меняет привычное [attachment=1] на [attachment=aec067e4feb150d01ffbc77c3afba514].
+ поддержка старых аттачей
+ не требует внесения изменений в БД
+ установка в 2 шага
+ поддержка 9 линейки DLE
Установка:
1) Открываем файл engine/modules/functions.php
Находим строку в функции show_attach (589 для чистого двига):
Ниже вставляем
2) Открываем файл engine/download.php
Находим строку (95)
И заменяем ее на
Вот и всё.
Демо: www.scripters.org.ua
ЗЫ# Раньше предлагалось вместо . SPECIALFORDLEINUA использовать . DBPASS . DBUSER думаю не надо объяснять какие возможности при этом открывались для злоумышленников.
1) Открываем файл engine/modules/functions.php
Находим строку в функции show_attach (589 для чистого двига):
$find_1[] = '[attachment=' . $row['id'] . ']';
$find_2[] = "#\[attachment={$row['id']}:(.+?)\]#i";
$find_2[] = "#\[attachment={$row['id']}:(.+?)\]#i";
Ниже вставляем
$row['id'] = urlencode(base64_encode($row['id']) . md5($row['id'] . SPECIALFORDLEINUA));
2) Открываем файл engine/download.php
Находим строку (95)
$id = intval ( $_REQUEST['id'] );
И заменяем ее на
$id = intval(base64_decode(substr($_REQUEST['id'], 0, -32)));
if (md5($id . SPECIALFORDLEINUA) != substr($_REQUEST['id'], -32))
{
die ( "Access denied" );
}
if (md5($id . SPECIALFORDLEINUA) != substr($_REQUEST['id'], -32))
{
die ( "Access denied" );
}
Вот и всё.
Демо: www.scripters.org.ua
ЗЫ# Раньше предлагалось вместо . SPECIALFORDLEINUA использовать . DBPASS . DBUSER думаю не надо объяснять какие возможности при этом открывались для злоумышленников.