Как-то раз, на сайте всем известной Simple TDS, я наткнулся на предупреждение mizhgan-а (автора этого замечательного скрипта) о том, что некоторые сетевые личности активно ищут домены с этой TDS-кой и брутфорсят её админку, дабы поиметь халявного трафика.
В том же предупреждении, автор рекомендует не ставить простых паролей, изменить название файла редиректа go.php (правда, это возможно до пуска трафика через скрипт), закрыть индексацию домена в файле robots.txt и постоянно следить за схемами.

Подпишусь под каждым словом mizhgan-а, но как показывает опыт, и этих предосторожностей не хватает для защиты.
Дело в давно известном факте, что Google все равно ставит в выдачу урлы, через которые постоянно идет траф, даже если домен закрыт robots.txt. А тут, сами понимаете, и до злобных хацкеров с парсилками и брутфорсерами уже недалеко :)

И так как эта проблема актуальна, то мной была написана простейшая плюха-ренеймер для защиты Simple TDS 1.3beta от брутфорса. При её регулярном применении, злоумышленнику, для того, чтобы начать подбор пароля на админку, придётся сначала найти саму страницу с формой :)

Вот описание плюхи и оно гораздо длиннее самого скрипта :) :

Сама плюха представляет собой файл rename.php и предназначена для изменения на лету имен файлов дистрибутива Simple TDS (и в самих файлах тоже).
Для её установки нужно:
0. Выставить на корневую папку TDS права 777 (для некоторых хостингов понадобится выставить для файлов права 666),
1. Сам файлик rename.php положить в корневую папку TDS-ки,
2. Вставить ренеймер в меню админки: для этого нужно изменить файлы дистрибутива SimpleTDS — header.php и support.html, добавив в их меню строку вида:

<a class="menu" href="rename.php">Rename Files</a>

3. И еще понадобится отключить вывод индекса папки, положив в папку с TDS .htaccess со строкой:

Options -Indexes

Это нужно из-за того, что некоторые хостинги, при отсутствии файлов index.html, index.htm или index.php вместо ошибки «403 Forbidden» запросто вываливают содержимое папки.

После этого в админке появится новый пункт меню “Rename Files”.

Применение простейшее: при нажатии на кнопку [Rename] все php/html/htm-файлы, в корневой папке скрипта, переименуются (кроме go.php и cron.php), так же заменятся их имена в телах файлов. Запускать переименование можно любое количество раз — при каждом запуске плюха заново изменит названия в именах файлов и в их телах. После нажатии на [Restore] всё возвращается в исходный вид, даже после многократных переименований.

Пример: Если до запуска ренеймера файл назывался index.php, то после будет называться, к примеру, index-1f3870be274f6c49b3e31a0c6728957f.php, т.е. в новом имени останется старое и появится рандомная часть. Если же нажата кнопка “Restore”, то файл опять обретёт имя index.php.

Плюха не меняет названия файлов go.php и cron.php, так как их можно менять только при установке TDS, т.е. пока не пущен трафик или пока архивация не поставлена на крон.

В будущем, перед каким-либо изменением кода самой TDS или добавлением аддонов/плагинов и т.д., рекомендуется вернуть файлы к начальному виду через кнопку “Restore”, а после внесений изменений, опять запустить “Rename”.
Если названия файлов дистрибутива уже изменены, до использования этого скрипта, то поправьте в файле ренеймера названия следующих файлов на текущие (в 4-х инклюдах):

include("config.php");
include("functions.php");
include("login.php");
...
include("header.php");

Единственное неудобство использования этой плюхи — в следующий раз, чтобы зайти в админку TDS, нужно глянуть, через FTP, на текущее название файла, через который входите в админку, но безопасность того стоит. Впрочем, если у вас в браузере окно с TDS постоянно открыто или вы после каждого ренейма будете делать закладку, чтобы по ней потом зайти в админку, то вы этого неудобства даже не заметите.

И перед скачкой, самое главное :) :
Отречение: Автор сей плюхи, ни за что не отвечает, так что используете вы её «AS IS», т.е. на свой страх и риск. Скрипт тестировался только на SimpleTDS 1.3beta, но думаю, что будет работать и на более ранних версиях. Правильная работа, совместно с другими аддонами к SimpleTDS 1.3beta, не гарантируется, если они зазендены, обфусцированы или хранят названия php/htm/html-файлов дистрибутива TDS, в месте, отличном от корневой папки TDS (например, в другой папке или в базе MySQL).

Скачать плюху-ренеймер

Добавление от 25.08.2009:

Кстати, нашёл на блоге SEO план Путина :) еще одно хорошее и простое решение для осложнения жизни взломщикам TDS-ки: автор предлагает в файле авторизации login.php, после неправильно введённого пароля, ввести задержку в одну секунду, перед повторным выводом формы авторизации и сообщения об ошибке:

if ($pass) {
        if ($pass == $password) {
                $loginok = true;
                $noform = true;
                setcookie('pwd', md5($pass));
        } else {
                $loginok = false;
                $noform = false;
                // если введенный пароль неверен, то перед повторным вводом формы секундная задержка
                sleep(1);
                $mess = "Error!!! Wrong password!!! <br>";
        }
 }

Решение хорошее, только правильнее было бы поставить эту задержку непосредственно перед выводом формы, т.к. взломщик может брутфорсить не только через форму, но и посредством передачи поддельных кукисов (cookies), а на неправильный кукис у нас задержки нет, поэтому cделаем так:

if (!$loginok) {
        sleep(1);
        echo $mess;
?>
<form name="" action="index.php" method="post">
        Password: <input name="pass" type="password" value=""><br>
        <input type="submit" value="Send">
</form>

Задержку можно существенно увеличить, на хозяине TDS это сильно не отзовётся :)