Kami sedang bereksperimen dengan berbagai cara untuk membatasi tindakan pengguna dalam periode waktu tertentu :
- Batasi posting pertanyaan / jawaban
- Batasi pengeditan
- Batasi pengambilan umpan
Untuk saat ini, kami menggunakan Cache untuk hanya menyisipkan catatan aktivitas pengguna - jika catatan itu ada jika / ketika pengguna melakukan aktivitas yang sama, kami menekan.
Menggunakan Cache secara otomatis memberi kita data basi membersihkan dan menggeser jendela aktivitas pengguna, tetapi bagaimana skala itu bisa menjadi masalah.
Apa sajakah cara lain untuk memastikan bahwa permintaan / tindakan pengguna dapat dibatasi secara efektif (penekanan pada stabilitas)?
asp.net-mvc
throttling
Jarrod Dixon
sumber
sumber
Jawaban:
Berikut adalah versi umum dari apa yang telah kami gunakan di Stack Overflow selama setahun terakhir:
Penggunaan sampel:
Cache ASP.NET berfungsi seperti jagoan di sini - dengan menggunakannya, Anda dapat membersihkan entri throttle secara otomatis. Dan dengan pertumbuhan lalu lintas kami, kami tidak melihat bahwa ini adalah masalah di server.
Jangan ragu untuk memberikan umpan balik tentang metode ini; ketika kami membuat Stack Overflow lebih baik, Anda mendapatkan perbaikan Ewok Anda lebih cepat :)
sumber
REMOTE_ADDR
danHTTP_X_FORWARDED_FOR
variabel server dan sanitizes tepat.Microsoft memiliki ekstensi baru untuk IIS 7 yang disebut Dynamic IP Restrictions Extension untuk IIS 7.0 - Beta.
Contoh:
Jika Anda menetapkan kriteria untuk diblokir setelah
X requests in Y milliseconds
atauX concurrent connections in Y milliseconds
alamat IP akan diblokirY milliseconds
maka permintaan akan diizinkan lagi.sumber
<location>
. Setiap permintaan untuk aplikasi atau tidak sama sekali.Kami menggunakan teknik yang dipinjam dari URL ini http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx , bukan untuk pelambatan, tetapi untuk Denial Of Service (DOS) orang miskin. Ini juga berbasis cache, dan mungkin mirip dengan apa yang Anda lakukan. Apakah Anda mencekik untuk mencegah serangan DOS? Router tentu dapat digunakan untuk mengurangi DOS; apakah menurut Anda router dapat menangani pelambatan yang Anda butuhkan?
sumber