这个Ajax登录系统足够安全吗?

时间:2014-11-18 13:01:43

标签: javascript php mysqli

我已经创建了一个Ajax登录系统,这非常简单:login.php只检查$_POST['']字段;如果它是正确的,它返回ok),mysqli等。我通过我的反SQL注入函数保护了那部分代码。

不幸的是,我对Javascript没有多少经验,我担心我的方法的安全性。 将if(data=='ok')放入js是否足够安全?有人能以某种方式将其更改为Firebug中的(data=='')吗?

$.ajax({
    type: "POST",
    url: "system/login.php",
    data: dataString,
    cache: false,
    beforeSend: function(){ 
        $("#login").val('Checking...');
    },
    success: function(data){
        if(data=='ok'){
            $("#login").val('Login')
            $("#msg").html("<div class='alert alert-success' role='alert'><b>Success!</b> You have been logged successfully. </div>");
            setTimeout(function(){
                location.reload();
            }, 2000);
        }else{
            setTimeout(function(){
                $("#loginBox").effect( "shake" );
                $("#login").val('Login');
                $("#msg").html("<div class='alert alert-danger' role='alert'><b>Error!</b> Invalid username and password. </div>");}, 1000);
            }
        }
});

2 个答案:

答案 0 :(得分:1)

您的代码只是重新加载页面。因此,如果你已经修复了任何服务器端未经授权的登录漏洞,那么你就可以了 来自用户的任何输入都被认为是不安全的,必须在服务器端验证。所以你的jQuery代码对黑客来说是不安全的,因为它暴露给用户并且他可以编写自己的函数并尝试登录(但不会通过服务器端验证)。但这对你没关系。

答案 1 :(得分:-6)

我说它不安全。 我只需打开Chrome的Dev-Tools,就可以编辑脚本。我会改变

if(data=='ok')

if(data != 'ok')

然后右键单击 - &gt; &#39;保存&#39; - &GT;关闭&#39;另存为&#39;通过点击取消对话。就是这样,我现在在浏览器中有一个正在运行的脚本,它将评估为&#39; Login ok&#39;如果服务器响应的内容不同于&#39; ok&#39;。

相关问题