Наше существующее приложение имеет основных механизаторов для предотвращения злоупотреблений, таких как повторное угадывание пароля, отправка спама и т. Д. С использованием таблицы MySQL. Я смотрю, если это практично, чтобы внедрить это в кассандру, но я еще недостаточно знаком с кассандрой, чтобы узнать, является ли предложенная ниже идея хорошей идеей или простой глупой. : DОтслеживание и дросселирование неудачных попыток входа в cassandra
Обратите внимание на то, что мы не слишком беспокоимся о ситуации, когда имеется несколько узлов, и данные не полностью реплицируются, дополнительная попытка сбоя паролей время от времени не имеет большого значения.
-- Table to keep track of currently locked accounts, IP addresses, etc
create table throttle_lock(
uid text primary key
);
-- This IP got locked for 300 seconds
insert into throttle_lock (uid) values('4.5.5.6') using ttl 300;
-- Table to keep track of recent suspicious activity
create table throttle_counter(
uid text,
time timeuuid,
primary key (uid, time)
);
-- Store recent activity, such as sign in failure, for 60 seconds
insert into throttle_counter (uid,time) values('1.2.3.4', now()) using ttl 60;
insert into throttle_counter (uid,time) values('[email protected]', now()) using ttl 60;
insert into throttle_counter (uid,time) values('1.2.3.4', now()) using ttl 60;
insert into throttle_counter (uid,time) values('1.2.3.4', now()) using ttl 60;
-- The following logic occurs, for example, on sign in.
is_locked(uid) {
results = 'select * from throttle_lock where uuid='1.2.3.4'';
if(results > 0) {
return locked;
}
results = 'select * from throttle_counter where uid='1.2.3.4'';
if(results > 3) {
insert into throttle_counter (uid) ('4.5.5.6') using ttl 300;
return locked;
} else {
return not_locked;
}
}
ли надгробия будет большой проблемой, я знаю, что они могли бы быть, если мы получим серьезную нагрузку или атаковать, однако если наш сайт становится тем популярным, я осмелюсь сказать, что мы будем нужны специализированные аппаратные чтобы справиться с этим вид безопасности.
Мой вопрос был о решении на основе Кассандры. Конечно, если бы мы смогли придумать более сложную/сложную систему, это был бы отличный вариант, который стоит исследовать. – Jacob