Estamos experimentando várias maneiras de controlar as ações do usuário em um determinado período :
- Limitar postagens de perguntas / respostas
- Limitar edições
- Limitar recuperações de feed
Por enquanto, estamos usando o cache para simplesmente inserir um registro de atividade do usuário - se esse registro existir se / quando o usuário fizer a mesma atividade, aceleramos.
Usar o cache automaticamente nos fornece janelas obsoletas de limpeza e deslizamento de dados dos usuários, mas como será dimensionado pode ser um problema.
Quais são algumas outras maneiras de garantir que solicitações / ações do usuário possam ser efetivamente controladas (ênfase na estabilidade)?
asp.net-mvc
throttling
Jarrod Dixon
fonte
fonte
Respostas:
Aqui está uma versão genérica do que usamos no Stack Overflow no ano passado:
Uso da amostra:
O ASP.NET Cache funciona como um campeão aqui - ao usá-lo, você obtém a limpeza automática das entradas do acelerador. E com o nosso tráfego crescente, não estamos vendo que isso seja um problema no servidor.
Sinta-se livre para dar feedback sobre esse método; quando aprimoramos o Stack Overflow, você obtém o reparo do Ewok ainda mais rápido :)
fonte
REMOTE_ADDR
eHTTP_X_FORWARDED_FOR
variáveis de servidor e sanitizes adequadamente.A Microsoft possui uma nova extensão para o IIS 7 chamada Dynamic IP Restrictions Extension para IIS 7.0 - Beta.
Exemplo:
Se você definir os critérios para bloquear depois
X requests in Y milliseconds
ouX concurrent connections in Y milliseconds
o endereço IP for bloqueadoY milliseconds
, as solicitações serão novamente permitidas.fonte
<location>
. É todo pedido para o aplicativo ou nenhum.Usamos a técnica emprestada deste URL http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx , não para otimização, mas para o Negial Of Service (DOS) de um homem pobre. Isso também é baseado em cache e pode ser semelhante ao que você está fazendo. Você está se esforçando para impedir ataques do DOS? Os roteadores certamente podem ser usados para reduzir o DOS; você acha que um roteador pode lidar com a otimização necessária?
fonte