如何防止特殊字符组合欺骗我的登录过程

时间:2015-11-07 07:28:55

标签: javascript angularjs validation

我的登录表单工作正常,除非用户传递“1或1”或“1”=“1”等字符串,忽略登录过程并验证用户。

这是我的客户端代码。

$scope.user_login=function(){
    if($scope.user_name==''){
        alert('user name filed should not keep blank');
        loginField.borderColor('txtname');
    }else if($scope.user_pass==''){
        alert('password filed should not keep blank');
        loginField.borderColor('txtpwd');
    }else{
        var userData={'user_name':$scope.user_name,'user_pass':$scope.user_pass};
        $http({
            method: 'POST',
            url: "php/Login/login.php",
            data: userData,
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
        }).then(function successCallback(response){
            console.log('login',response);
            //alert("aa"+response.data['msg']);
            if(response.data['user_type']=='1'){
            $location.path('dashboard');
            }

        },function errorCallback(response) {
            //alert(""+response.data['msg'].length);
            if(response.data['msg'].length > 0)
                alert(response.data['msg']);
            $scope.user_name=null;
            $scope.user_pass=null;
        });

    }
    }

请帮我解决此问题。

1 个答案:

答案 0 :(得分:0)

这是sql注入。应该在login.php中阻止它。

请阅读this文章并使用其中描述的技术来解决您的问题。

这是一个关于此的问题: How can I prevent SQL injection in PHP?