使用httpRequest登录ajax?

时间:2009-11-14 12:18:04

标签: html ajax login

我正在尝试开发我的登录脚本,以便在登录有效时向用户提供反馈。基本上如果它不正确,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 个答案:

答案 0 :(得分:4)

首先,使用HTTP POST。扫描网络流量的任何人都可以看到GET的内容,并且无论SSL如何,都会将其存储在日志,缓存和代理中。

对于POST传输,使用SSL可以提高安全性,但是根据设置的其余部分仍有无数漏洞:

  • 为您的密码加盐,以避免在任何时候明确地发送或存储它们。
  • 确保您的数据库安全。
  • 请确保您没有提供有效/无效回复的过多信息。
  • 防止暴力攻击......

列表一直在继续......

答案 1 :(得分:2)

如果您使用的login_url是通过HTTPS,那么它是安全的。但是为了进一步提高安全性,您可以考虑使用POST发送usernamepassword,而不是使用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);

答案 2 :(得分:1)

为什么这里的每个人都说通过HTTPS使用POST比GET更安全?

即使您正在进行GET,网址也不会在公开状态下发送,在第一步中,浏览器会在端口443上打开到服务器的安全通道,其他所有内容都会被加密,包括GET部分。

不能被嗤之以鼻。我错过了什么吗?

答案 3 :(得分:0)

  

login_url =“login / login.php?username =”+ username.value +“password =”+ password.value;

不,它不安全。你需要使用POST而不是Get(目前你正在使用GET)发送它。