我正在尝试开发我的登录脚本,以便在登录有效时向用户提供反馈。基本上如果它不正确,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证书,所以我认为这是安全的吗?
由于
答案 0 :(得分:4)
首先,使用HTTP POST。扫描网络流量的任何人都可以看到GET的内容,并且无论SSL如何,都会将其存储在日志,缓存和代理中。
对于POST传输,使用SSL可以提高安全性,但是根据设置的其余部分仍有无数漏洞:
列表一直在继续......
答案 1 :(得分:2)
如果您使用的login_url
是通过HTTPS,那么它是安全的。但是为了进一步提高安全性,您可以考虑使用POST发送username
和password
,而不是使用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)发送它。