проверить сайт, загрузив файл может быть подделан?

На моем сайте у меня есть процесс проверки сайта на основе файла

Пользователь должен загрузить в свой корневой каталог пустой файл с таким именем файла:

site-verification-$user_id.html

затем мой скрипт использует функцию php get_headers (), чтобы проверить, существует ли этот файл, например:

$headers = get_headers( "$user_website/site-verification-$user_id.html" );
if( preg_match( "|200|", $headers[0] ) { // ... website verified

все работает нормально, но мой вопрос, можно ли этот процесс подделать?

1

Решение

Да, на самом деле обмануть этот механизм действительно легко. Вам просто нужно настроить веб-сервер, чтобы поймать все запросы (например, через Apache’s mod_rewrite конфигурации) и ответьте на каждый из них действительным ответом, включая HTTP-код состояния 200 — довольно легко настроить.

Если пользователь-агент и / или IP-адрес вашего веб-сервера известны, можно даже лгать конкретно на ваш сервер, сохраняя при этом правильные ответы для всех остальных посетителей.

Чтобы быть уверенным, что этого не произойдет, вы должны дать пользователю случайно сгенерированный ключ, который затем потребуется в качестве содержимого именованного файла. Затем вы должны сохранить имя файла и ключ в БД и проверить оба на соответствие (аналогично тому, как вы будете обрабатывать комбинацию имени пользователя и пароля).

Этот метод подобен, например, как вы аутентифицируетесь как владелец домена в Инструменты Google для веб-мастеров. Вы можете быть уверены, что только кто-то, имеющий доступ к серверу, может разместить этот код по указанному адресу.

Имейте в виду, что «кто-то с доступом к серверу» все еще может быть кем-то без законный доступ. Кроме того, злоумышленник, выполняющий MITM-атаку между вашим собственным сервером и проверяемым вами сервером, может отправить обратно все, что необходимо для обмана вашего сервера. Хорошо, но тогда все потеряно так или иначе.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]