Я проектировал веб-приложение в node.js с помощью express и mongoDB, и мне просто пришло в голову, что любые переменные, которые я объявляю в скрипте, будут доступны всем пользователям, потому что узел работает как один поток.Например, я использую средство проверки форм на стороне сервера, вот его фрагмент:
app.post('/purchase', requireLogin, function(req, res) {
var b = req.body;
var ee;
for (i in b) {
if (!validatePresenceOf(b[i])) {
var ee="Please fill out all fields.<br />\n";
}
}
var exp = b.exp_mm+"/"+b.exp_yy;
var d = /^(0[1-9]|1[012])[- /.]\d\d$/
if (!d.test(expiration)) {
ee+="Expiration date is invalid.<br />\n"
}
if (!isValidCreditCard(b.card_type, b.card_num)) {
ee+="Credit card number is invalid.<br />\n";
}
});
Мне интересно, если другой пользователь совершает покупку почти в то же время, может ли переменная b быть переопределена с помощьювторой запрос до завершения валидатора?Если это возможно, то как лучше всего обойти это, и будет ли это происходить каждый раз, когда я объявляю переменную?Похоже, что это может вызвать некоторые проблемы с безопасностью в случае изменения переменной до завершения процесса.
Спасибо!