我的登录表单工作正常,除非用户传递“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;
});
}
}
请帮我解决此问题。
答案 0 :(得分:0)
这是sql注入。应该在login.php
中阻止它。
请阅读this文章并使用其中描述的技术来解决您的问题。
这是一个关于此的问题: How can I prevent SQL injection in PHP?