PHP geçici bir IP yasaklanması

6 Cevap

Ben şirket için bir iletişim formu oluşturma ve ben mümkün olduğunca spam kanıtı olarak bunu yapmak istiyorum. Ben bir bal pot + oturum denetimi oluşturduk, ama ben de formu kez her x dakikada göndermeniz mümkün olduğunu bunu yapmak istiyorum. Diğer bir deyişle, zaman x miktarda formunu kullanarak IP yasaklayan.

Bunu yapmak için en iyi çözüm nedir?

Birkaç düşünebilirsiniz ama bunların hiçbiri ideal görünüyor.

6 Cevap

Zaman damgası ile birlikte, bir veritabanında form gönderildiğinde, her zaman kullanıcıların IP saklayın. Bir kullanıcı formu gönderdiğinde, ilk önce onlar süre içinde teslim olmadığını görmek için veritabanı kontrol.

Bazı sorunlar olsa da kullanıcılar olabilir aynı IP büyük ağların ortaya çıkabilecek. Gerçekten, hedef kitleye bağlıdır.

Veritabanı. Orada IP'leri saklayın ve onları zaman damgası.

Bazı bloglarda kullanılan gördüm güzel bir yaklaşım botlara karşı korumak için JavaScript kullanmaktır. Gibi onsubmit () olay POST GET form yöntemini değiştirmek. Siz de diğer büyü yapabilirsiniz. Botlar sizin yararınıza için kullanabilirsiniz böylece JavaScript yürütme de çok beceriksiz.

Diğer taraftan - Bu JavaScript etkin olmayan kullanıcıların 0.0000001% zarar verebilir. Peki, seçim gerçekten. :)

(Ben varsayıyorum botlara aka bazı "tarayıcılar" ortadan kaldırarak) kurabiye-destekli tarayıcılarda için formu kısıtlayan sakıncası yoksa, böyle bir şey yapabilirsiniz:

Form sayfası yükler, bir zaman damgası ile bir oturum değişkeni denetler. Hiçbiri bulunursa, o bir tane oluşturur ve aynı sayfaya yönlendirir, ama bir GET parametresi belirten ile "action = start" falan. Eğer $ _GET ['eylem'] == 'start' görürsem ikinci yük, bu oturum değişkeni kontrol edebilirsiniz. Birini bulamazsanız, size çerezler gereklidir diyerek başka yönlendirebilirsiniz.

Çok yakında olmuştur Şimdi eğer başka bir şey damgası kontrol yapabilirsiniz.

Eğer bir güvenlik duvarı arkasında insanların büyük bir grup ile uğraşıyoruz eğer bütün grup engellemek zorunda değilsiniz çünkü bu yöntem, en azından, aynı IP sağlayacaktır.

O şey izin bunları gerektirmez çünkü veritabanı şey sadece kendi verilerini kaydeder, muhtemelen en iyi bahistir. Bunda tek sorun, onlar kendi IP maskeleme veya birden fazla yerden vurmak olabilir olmasıdır. Ben veritabanı ile oturum / çerez IP çapraz referans denemek istiyorum. Aynı kişi aynı IP adresinden gerçekten çok hızlı sitenizi vuruyor ise açık olacak, ama siz de bir kullanıcı kimliği oluşturmak eğer bunlar hızla IP adreslerini geçiyorsanız eğer, sen görebilirsiniz.

Ayrıca aracılığıyla almak için yönetmek olmadığını bir karmaşa temizleme hazır (ya da en azından bir yazılı alet ve bekleme), bazı cron script tür incitmez. Benim site için ben (10 saniye içinde) çok küçük bir zaman içinde birden IP'lere gelen bayrak tam olarak özdeş gönderimleri için bir tane yazıyorum.

En azından size açıklama forma şüpheli gönderimleri göstermek için bazı sorguları yazabilirsiniz.