Вход в ajax с использованием httpRequest? - PullRequest
1 голос
/ 14 ноября 2009

Я пытаюсь разработать сценарий входа, чтобы дать отзыв пользователю, если вход действителен или нет. По сути, если он не верен, в окне div будет указано, что он неправильный, если он правильный, он покажет его действительный и перенаправит на страницу участников.

Будет ли это безопасно отправлять его в скрипт php ... проверяя базу данных, тогда скрипт php либо возвращает значение true или false?

Как то так?

function check_login(username, password)
{
var httpRequest;
make_request()
function stateck() 
{


    if(httpxml.readyState==4)

    { 
        if (httpxml.responseText.indexOf("true") >= 0)
        {
        $("#valid_div").show();
        $("#invalid_div").hide();

        }
        else 
        {
        $("#invalid_div").show();
        $("#valid_div").hide();

        }


    }
    }

httpxml.onreadystatechange=stateck;
login_url="login/login.php?username=" + username.value + "password=" + password.value;
httpxml.open("GET",login_url,true);
httpxml.send(null);
}

Я планирую добавить сертификат ssl, поэтому я предполагаю, что это будет безопасно?

Спасибо

Ответы [ 4 ]

4 голосов
/ 14 ноября 2009

Во-первых, используйте HTTP POST. Содержимое GET видимо любому, кто сканирует сетевой трафик, и часто хранится в журналах, кэш-памяти и прокси-серверах независимо от SSL.

Для передачи POST использование SSL повысило бы безопасность, однако в зависимости от остальной части вашей настройки все еще существуют бесчисленные дыры:

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

список можно продолжать и продолжать ...

2 голосов
/ 14 ноября 2009

Если login_url, который вы используете, превышает HTTPS, то это безопасно. Но для дальнейшего повышения безопасности вы можете рассмотреть возможность отправки username и password с POST, а не объединять их в URL с запросом GET.

var parameters = 'username=' + username.value + '&password=' + password.value;
httpxml.onreadystatechange = stateck;
httpxml.open('POST', 'login/login.php', true);
httpxml.setRequestHeader('Content-Type', "application/x-www-form-urlencoded");
httpxml.setRequestHeader('Content-Length', parameters.length);
httpxml.send(parameters);
1 голос
/ 05 марта 2010

Почему все говорят, что POST более безопасен, чем GET, когда используется по HTTPS?

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

Нельзя обнюхивать. Я что-то упустил?

0 голосов
/ 14 ноября 2009

login_url = "login / login.php? Username =" + username.value + "password =" + password.value;

Нет, это небезопасно. Вам нужно отправить это, используя POST вместо Get (в настоящее время вы используете GET).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...