방금 PHP와 MySQL을 시작했으며 이것이 "안전한"것인지 알아야합니다. 로그인 정보는 AJAX (jQuery)를 통해 다음 PHP 파일로 전달됩니다.PHP AJAX 로그인,이 방법은 안전한가요?
jQuery를 AJAX
$("#login_form").submit(function(){
$.post("login.php",{user:$('#username').val(),pass:$('#password').val()} ,function(data)
PHP
ob_start();
mysql_connect("-", "-", "-") or die("ERROR. Could not connect to Database.");
mysql_select_db("-")or die("ERROR. Could not select Database.");
//Get Username and Password, md5 the password then protect from injection.
$pass = md5($pass);
$user = stripslashes($user);
$pass = stripslashes($pass);
$user = mysql_real_escape_string($user);
$pass = mysql_real_escape_string($pass);
//See if the Username exists.
$user_result=mysql_query("SELECT * FROM users WHERE username='$user'");
$user_count=mysql_num_rows($user_result);
if($user_count==1){
if($pass_length==0){ echo "userVALID"; }
else{
$pass_result=mysql_query("SELECT * FROM users WHERE username='$user' and password='$pass'");
$pass_count=mysql_num_rows($pass_result);
if($pass_count==1){
session_register("user");
session_register("pass");
echo "passVALID";
}
else { echo "passERROR"; }
}
}
else { echo "userERROR"; }
ob_end_flush();
내가이 일을하지만 가장 좋은 방법이 될 수 없습니다 알고는, 내가 알고있는 방법입니다! 나는 그것이 중요한 보안 결함이 있는지를 알고 싶다. 그것은 나를위한 개념이며, 따라서 SSL을 통합하지 않습니다.
stripslashes ($ user); ? MAGIC_QUOTE가 활성화되어 있고 REGISTER_GLOBAL도 활성화되어 있다고 의심됩니다. 이 두 기능은 더 이상 사용되지 않으며 사용하지 않는 것이 좋습니다. http://ca.php.net/manual/ko/security.magicquotes.php http://php.net/manual/en/security.globals.php – HoLyVieR