Eş yavaş komut geciktirmek

4 Cevap php

Ben indirmek için telifsiz görüntüleri yapacak bir görüntü banka sitesine geliştiriyorum. Ben çok sık indirirken bir bot veya kullanan herkes yavaşlatmak istiyorum, bu yüzden bir günlük dosya sınırı var ve dosyaları sunuyor komut içine değişken uyku dahil etmişlerdir. Ben sonraki indir başladığında geçen zaman kontrol, sonra bir veritabanına son karşıdan tamamlanma süresini yazarak bunu. Bu N saniye sonra ben arda ihlalleri M on katına, M saniye indirme gecikme daha az ise. Komut sunucunun yürütme zamanı limitininin kadar olduğunu gayet iyi çalışıyor.

Benim hosting şirketi uyku süresi yürütme zamanı doğru sayar doğrulamaktadır.

Ben aşırı ihtiyatlı geliştirme aşamasında davranıyor muyum?

Php uyku kullanmadan algılamak ve siteyi kötüye kullananları yavaşlatmak konusunda herhangi bir öneriniz?

4 Cevap

Ben aşırı temkinli olma sanmıyorum, ama do bu ihtiyatlı olmak için kötü bir yol olduğunu düşünüyorum. Uyku süresi yürütme zamanı doğru sayarsa, bunun için ödüyoruz? Muhtemelen de CPU kullanımı ve çok diğer maliyet unsurlarının bir demet doğru sayar. Ayrıca, yavaş yavaş hizmet dışı boğulma Kullanıcı yanlış bir şey yapıyorsun herhangi bir işaret vermez, sadece servis yavaş görünüyor yapar.

Muhtemelen kişi bu yüzden onlar (bu tamamen masum faaliyetlerini gerçekleştirirken, bazı insanlar o kaza tetikleyebilir diye verilen özellikle iyi) davranışlarını değiştirebilir neler bildirerek dostça bir mesaj-imajına hizmet daha iyi olurdu. Onlar fazla beş ya da on kez mesajı imajına hizmet ısrar ederse, o yüzden sadece tamamen kendi istekleri yanıtlayan durdurmak, kesinlikle bir senaryo.

Neden sadece o / o "yanlış" ne yaptığını kullanıcı farkına varması ve bir hata görüntüler değil mi?

Bu şekilde, kullanıcı neler olduğunu bilecek ve davranışlarını düzeltmek için karar verebilirsiniz. Rastgele gecikmeler ile, senin sunucu ile yanlış bir şey şüpheli olur ve belki de sadece daha kararlı çalışan bir rakip sunan arayın.

Bir zaman sayacı ile bir div kullanın ve javascript.example bu sefer mekanizma uygulamak: (www.rapidshare.com) ise uyku süresi yürütme süresi olarak sayılır, size yürütme zamanı sınır kapısı oldukça yüksek bir şansı var demektir.

Herhangi bir gecikme komut dosyası yürütme zaman aşımı daha uzun ise, bir süre için tamamen o kullanıcıyı engellemek isteyebilirsiniz (24 saat?).

Nasıl agresif kim indirirken tam olarak karar veriyorlar? IP adresi aynı IP adresinden gelen görünen NAT arkasında bir kaç kişi olabilir gibi,% 100 güvenilir değildir.