Я использую jQuery, чтобы проверить, не занято ли имя пользователя.Моя проблема в том, что $.post
, кажется, избегает всего.Например, я использую это:
$.post("http://mywebsite.com/check_username.php", {
"username": $("#username_txt").val()
}, function(data, textstatus, xmlhttp){
// do stuff
});
для отправки имени пользователя на страницу check_username.php
, что примерно равно
$username = mysql_real_escape_string($_POST["username"]);
echo $username; // show the perceived username
echo mysql_query("SELECT * FROM users WHERE username=\"".$username."\";") === false ? 1 : 0;
Если имя пользователя в поле ввода равно "bob"
(с кавычками), возврат данных будет \\\"bob\\\"0
.Без mysql_real_escape_string это читает \"bob\"
.Если я осмелюсь оставить это так, то потенциальные злоумышленники могут легко внедрить код SQL в мое приложение.
Я не видел ничего в документации jQuery по поводу получения и публикации об этом, поэтому я не уверенкак это остановить.Если я не использую jQuery для моего ajax, как я могу это исправить?