Nasıl kazınmış olan bağlantıları bir veritabanını korumak istiyorsunuz?

5 Cevap php

Tüm belirli şekillerde sıralanır ve (bazı insanlar için) değerlidir diğer bilgileri, bağlı bağlantıları, büyük bir veritabanı var.

Şu anda (çalışmak gibi) benim kurulum sadece link.php? Id = 123 gibi bir php dosyasını çağırır, bu veritabanına bir zaman damgası ile isteği kaydeder. Bu bağlantıyı tükürür önce, son 5 dakika içinde bu IP yapılmış kaç istekleri denetler. X daha onun büyükse, o captcha sayfasına yönlendirir.

İşte tüm ince ve züppe çalışıyor, ancak site gerçekten popüler (yanı sıra yaklaşık 6 hafta boyunca DDOsed elde edilmiştir) elde edilmiştir, bu yüzden Im yapmam php vurmak zorunda sürelerini en aza indirmek için çalışıyor bu yüzden php, katlı elde edilmiştir bir şey. Ben link.php? Id aracılığıyla düz metin yerine bağlantıları göstermek = ve sadece görünümü sayısına 1 eklemek için onclick fonksiyonu var istedim. Ben hala php kadar isabet, ancak kalıyor, en azından, o arka planda yapar ve kullanıcı onlar hemen talep bağlantısını görebilirsiniz.

Sorun site gerçekten kazınabilir yapar olmasıdır. Bunu önlemek için, ama yine de linki tükürerek önce kontrol yapmak php güvenemez bir şey var mı?

5 Cevap

Bu darboğaz veritabanına gibi görünüyor. Her istek bir eki (isteği günlükleri) gerçekleştirir, daha sonra bir seçme işlemleri uygulamanın temel işlevi gerçekleştirmek için gerekli olan her türlü veritabanı sonra (son 5 dakika içinde IP gelen istekleri sayısını belirlemek), ve.

Sunucu belleği (zaman talep, IP) talep kısıcı verileri muhafaza ziyade veritabanını yormadan düşünün. Iki çözüm memcache vardır (http://www.php.net/manual/en/book.memcache.php) ve memcached (http://php.net/manual/en/book.memcached.php).

Diğerleri de belirtildiği gibi, indeksler tuşları (bağlantı id gibi alanlar) sorgulanır ne için var emin olun. Endeksleri yerinde ve veritabanı hala yük muzdarip ise, (http://varnish-cache.org/) Vernik gibi bir HTTP hızlandırıcı deneyin.

Sen web sunucu düzeyinde ip azaltmayı yapabilirdi. Belki modülü sunucusu için var, ya da bir örnek olarak, apache kullanarak kendi RewriteMap yazmak ve daha karmaşık şeyler yapabilirsiniz böylece bir cini programı danışmak olabilir. Cini program, sorgu bellek veritabanı var. Bu hızlı olacaktır.

Veritabanı kontrol. Eğer her şey düzgün endeksleme? Bu çok girişleri ile bir tablo büyük, çok hızlı ve yavaş şeyler aşağı alırsınız. Ayrıca vs 1 saatten girişleri eski siler bir gece işlemini çalıştırmak isteyebilirsiniz

Bu hiçbiri işe yaramazsa, sizin sunucu dengeleme iyileştirme / yükte arıyoruz. Zaten yükseltmek zorunda önce sayfalara doğrudan bağlantı sadece size çok zaman satın alacak.

Neden sadece AJAX kullanmak değil, istemci tarafında yapılacak her şey, korumalı olamaz?

Sadece link verir ve sayfanızda bir DIV doldurun bir ajax fonksiyonu, bir cevap küçük istek boyutu beacause, neye ihtiyacınız için hızlı enougth çalışacak bulunuyor dediğimiz bir onClick olay var. Sadece damgası denetlemek için çağrı fonksiyonu emin olun, o çelik sen bağlantıları bu işlevi defalarca aramak bir script yapmak kolaydır.

JQuery, ya da diğer AJAX kütüphaneleri (i jQuery ve Sajax kullanın) kontrol edebilirsiniz. Ve ben dinamicly çok hızlı içeriğini değiştirmek sayfanın çok var, müşteri bile bilmiyor saf JS değildir.

Çoğu kazıyıcılar sadece bu yüzden bağlantıları kodlamak ve ardından JavaScript ile istemci web tarayıcısında dinamik bunları çözmek statik HTML analiz.

Belirlenen kazıyıcılar hala bu etrafında alabilirsiniz, ancak veriler yeterince değerli olması durumunda herhangi bir teknik etrafında alabilirsiniz.