Nous expérimentons différentes façons de limiter les actions des utilisateurs au cours d'une période donnée :
- Limiter les messages de questions / réponses
- Limiter les modifications
- Limiter les récupérations de flux
Pour le moment, nous utilisons le cache pour simplement insérer un enregistrement de l'activité de l'utilisateur - si cet enregistrement existe si / quand l'utilisateur fait la même activité, nous étranglons.
L'utilisation du cache nous permet automatiquement de nettoyer les données périmées et de faire glisser les fenêtres d'activité des utilisateurs, mais la façon dont il évoluera pourrait être un problème.
Quels sont les autres moyens de garantir que les requêtes / actions des utilisateurs peuvent être efficacement limitées (accent mis sur la stabilité)?
asp.net-mvc
throttling
Jarrod Dixon
la source
la source
Réponses:
Voici une version générique de ce que nous utilisons sur Stack Overflow depuis un an:
Exemple d'utilisation:
Le cache ASP.NET fonctionne comme un champion ici - en l'utilisant, vous obtenez un nettoyage automatique de vos entrées d'accélérateur. Et avec notre trafic croissant, nous ne voyons pas que c'est un problème sur le serveur.
N'hésitez pas à donner votre avis sur cette méthode; lorsque nous améliorons Stack Overflow, vous obtenez votre correctif Ewok encore plus rapidement :)
la source
REMOTE_ADDR
etHTTP_X_FORWARDED_FOR
variables du serveur et désinfecte de manière appropriée.Microsoft a une nouvelle extension pour IIS 7 appelée extension des restrictions IP dynamiques pour IIS 7.0 - Beta.
Exemple:
Si vous définissez les critères de blocage après
X requests in Y milliseconds
ou siX concurrent connections in Y milliseconds
l'adresse IP sera bloquée, lesY milliseconds
demandes seront à nouveau autorisées.la source
<location>
. C'est chaque demande pour l'application ou aucune.Nous utilisons la technique empruntée à cette URL http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx , non pas pour la limitation, mais pour le déni de service (DOS) d'un pauvre. Ceci est également basé sur le cache et peut être similaire à ce que vous faites. Étrangez-vous pour empêcher les attaques DOS? Les routeurs peuvent certainement être utilisés pour réduire le DOS; pensez-vous qu'un routeur pourrait gérer la limitation dont vous avez besoin?
la source