Я создаю веб-приложение с Meteor, и у меня есть некоторые опасения по поводу безопасности при создании учетной записи. Я знаю, что могу решить эту проблему, используя метод Meteor, но преимущество выполнения этого на стороне клиента заключается в том, что вы можете войти в систему сразу после создания учетной записи.
В настоящее время у меня нет ничего, подтверждающего мой ввод, чтобы сделать его простым:
Template.register.events({
'submit form': function (e) {
e.preventDefault();
var userInfo = {
email: e.target.registerEmail.value,
password: e.target.registerPassword.value,
password_confirmation: e.target.registerPasswordConfirmation.value
};
check(userInfo, {
email: String,
password: String,
password_confirmation: String
});
//Do some checks on the passwords and email before trying to create account
Accounts.createUser({
email: userInfo.email,
password: userInfo.password,
profileComplete: false
});
}
});
Это прекрасно работает, и именно так это делает пакет account-ui. Проблема в том, что я могу обойти любую проверку ввода (и я проверил это в приложении, работающем только с пакетами учетных записей и учетных записей), просто написав команду javascript в консоли следующим образом:
Accounts.createUser({
email: "NotAnEmail",
password: "123"
});
И это создаст пользователя с адресом электронной почты и паролем, как показано, и войдет в него. Это кажется огромным недостатком пакета account-ui, или, может быть, я просто что-то упускаю? Есть ли способ разрешить создание учетной записи на стороне клиента, убедившись, что вы не можете выполнять какие-либо инъекции javascript с консоли, чтобы обойти проверки ввода?