Я использую jQuery для проверки встроенной формы при регистрации пользователя, чтобы предотвратить ошибки формы после публикации, проверив:
- Имя пользователя доступно
- электронная почта еще не была зарегистрирована
Идея состоит в том, чтобы оставить отзыв пользователя перед отправкой формы, чтобы предотвратить разочарование. Код внизу.
Вопросы:
- Это потенциальная проблема безопасности? У меня была мысль, что кто-то, глядя на мой javascript, может найти URL-адрес, который я запрашиваю, для подтверждения имени пользователя / электронной почты, а затем использовать его самостоятельно (я не знаю, почему они это сделали, но никто не знает).
- Если это так, какую защиту я могу реализовать? Я немного читал о защите межсайтовых сценариев, но не уверен, как это можно реализовать в AJAX-запросах, таких как этот, или даже если это необходимо.
Спасибо за ваш вклад.
Текущий код:
Я определил следующий вид (который я взял из некоторого фрагмента, но не могу вспомнить, где):
def is_field_available(request):
if request.method == "GET":
get = request.GET.copy()
if get.has_key('username'):
name = get['username']
if User.objects.filter(username__iexact=name) or \
UserProfile.objects.filter(display_name__iexact=name):
return HttpResponse(False)
else:
return HttpResponse(True)
if get.has_key('email'):
email = get['email']
if User.objects.filter(email__iexact=email):
return HttpResponse(False)
else:
return HttpResponse(True)
return HttpResponseServerError("Requires username or email to test")
Вот пример кода jQuery:
$.get('is-user-name-available/', { email: $(this).val() },
function(data, status){
if(data == "True"){
$input.fieldValid();
} else {
$input.fieldInvalid("This email address has already been registered. Try another or recover your password.");
}
});
Редактировать: обновил код и перефразировал мои вопросы. [ 10/07/09 ] * +1031 *