Member 12436491 Ответов: 0

Php - запретить доступ к веб-странице из поддельной точки доступа?


Здравствуйте и добро пожаловать, недавно я заметил большую дыру в безопасности, которая, как я могу сказать, является проблемой для всех существующих веб-приложений, которые аутентифицируют своих пользователей, прося их ввести свое имя пользователя и пароль.

Я имею в виду, что злоумышленнику требуется всего несколько минут, чтобы подделать точку доступа (веб-страницу, например: логин) на ваш веб-сайт и заставить ваших пользователей перейти на эту фальшивую точку доступа, я приведу пример, чтобы это было более понятно:

Скажем, у меня есть свой веб-сайт по адресу: www.realwebsite.com. Существующие пользователи должны пройти через страницу входа, чтобы подключиться к веб-сайту, и моя страница входа выглядит следующим образом:

// login.php
<?php

if (isset($_POST['go'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
}
// my server logic goes here.

?>

И мой Html, (в www.realwebsite.com/login.php):
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Login</title>
</head>
<body>
    <form method="post" action="login.php">
        <input type="text" name="username"/>
        <input type="password" name="password"/>
        <botton name="go">Go</button>
    </form>
</body>
</html>

И допустим, злоумышленник хочет украсть учетные данные пользователей, он создаст форму, идентичную моей От на моей странице входа в систему, и просто изменит свойство "действие" на теге "форма", это выглядит следующим образом:
Фальшивая страница точки доступа:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Login</title>
</head>
<body>
    <form method="post" action="malicious_faked_accesspoint.php">
        <input type="text" name="username"/>
        <input type="password" name="password"/>
        <botton name="go">Go</button>
    </form>
</body>
</html>

Аттакер может заставить существующего пользователя перейти на вредоносную страницу входа, отправив ссылку по электронной почте или просто создав блог и поместив ссылку на эту вредоносную страницу внутри блога, как только пользователь перейдет на вредоносную страницу (пользователь думает, что это настоящая веб - страница, так как она имеет тот же внешний вид), введите имя пользователя и пароль и нажмите кнопку "Перейти" - введенные имя пользователя и пароль перейдут на сервер вредоносной точки доступа, который может получить их в системе. malicious_faked_accesspoint.php страница с использованием $_ПОСТ массив.

Конец: злоумышленник успешно получил имя пользователя и пароль моих пользователей.

И если это все еще трудно выполнить, есть программы, которые могут подделать точку доступа к любому веб-приложению менее чем за миллисекунду.

Этот вид атаки очень легко выполнить, и я задаюсь вопросом, что огромные организации, такие как Google, Facebook, делают против него.

Я много искал в интернете и нашел много статей, описывающих эту проблему, но они не говорят о возможном решении.

Фальшивая страница входа находится в другом домене, поэтому разница между фальшивой веб-страницей и реальной веб-страницей заключается в url-адресе, но не все пользователи понимают, что происходит на url-адресе и почему.

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

Поэтому я задаю этот вопрос здесь, чтобы другие зрители могли прочитать и подумать об этом, и если кто - то не знал об этом-хорошо знать это сейчас, особенно если вы веб-разработчик.

Что я уже пробовал:

Может быть, я могу сказать пользователям, чтобы они проверяли url-адрес каждый раз, когда они переходят на каждую страницу моего веб-сайта. но сталь, как они запомнят мои предложения и увидят разницу между настоящей страницей и фальшивой? (пользователи, которые не понимают URL-адресов). Может быть, еще какие-нибудь практические предложения?

Peter_in_2780

Два термина для поиска:
фишинг
двухфакторная аутентификация

0 Ответов