Предотвращение перенаправления хоста - PullRequest
0 голосов
/ 14 марта 2012

Каков наилучший способ предотвращения перенаправления хоста?

Например, скажем, у меня есть некоторый псевдокод, подобный следующему:

string result = downloadStr("http://mywebsite.com/login.php?pass=whatever&username=whatever");
if(result == "true")
    return success_login;
else
    return failed_login;

Я мог бы просто пойти и отредактировать мои 'хосты'file, чтобы перенаправить mywebsite.com на мой локальный хост, и всегда возвращать' true '.Не задавался ли этот вопрос раньше, потому что это не проблема безопасности?

Лучший способ, которым я мог бы придумать, это сделать что-то вроде этого:

string ip = get_website_ip("http://mywebsite.com/");
if(ip != "216.250.121.107")
{
    //Host redirection detected.
}
else
{
    //It's all good.
}

1 Ответ

1 голос
/ 14 марта 2012

Вообще говоря, вся ваша техника лицензирования (предположительно) несовершенна. Вы правы, кто-то может легко изменить файл hosts и сделать это возвращение true. Даже если вы изменили его на прямой IP-адрес, они могут изменить свой брандмауэр (и другие вещи), чтобы он также возвращал истинное значение для этого запроса.

Лучший способ сделать это - вообще не делать это по незашифрованному HTTP-запросу. Используйте зашифрованный запрос к IP-адресу и убедитесь, что ваш клиент может надежно подтвердить подлинность вашего сервера лицензирования.

Простое решение - настроить SSL-сертификат на вашем HTTP-сервере. Затем сделайте этот запрос через HTTPS и проверьте сервер в запросе HTTPS. Таким образом, вам даже не нужно беспокоиться, если они вмешаются в файл хоста, так как он все равно не будет проверять запрос SSL.

...