Güvenli yoklama sisteminin kurulması

5 Cevap php

Ben (PHP kullanarak) bir yoklama sistemi kurma sorumlu anda yaşıyorum.

Şimdi o kadar güvenli ve mümkün olduğunca objektif olması için, bir ziyaretçinin sadece bir kez oy kullanabilirsiniz önemlidir. Ben (orada bir IP sadece bir oy olabilir), ve belki onlar nedense IP doğrulama ilettik sonra hiçbir botlar alabilirsiniz emin olmak için bir CAPTCHA testi atmak ziyaretçinin IP tarafından anket doğrulama düşünüyorum .

  1. Yani orada, benzersiz IP doğrulama ve captcha. Ama bu yeterli mi? Tek bir kullanıcı vekiller ya da ben biliyorum, ve benzersiz IP ile birden çok kez oy yok başka yollar kullanarak onun / IP değiştirebilir ki bir olasılık var mı?

  2. Bunu yapmak için daha iyi yollar var mı? Tercihen CAPTCHA olmadan.

Şimdiden teşekkürler.

5 Cevap

Hiçbir giriş gerekli bir kamu oylama sistemi, ne zaman kesinlikle no way to be sure, bir kullanıcı bir kez oy vardır vardır.

IP Denetleme birkaç nedenden için iyi bir fikir değildir. Diğer yanıtlar açıklandığı gibi, ağları çok bir ip arkasında ve kullanıcılar sadece farklı ip ile başka bir pc kullanmak ve tekrar oy verebilirsiniz.

OpenId

Kullanıcıyı tanımlamak ve onlar zaten oy verdiniz olmadığını kontrol etmek için OpenID kullanın.

Register users

İsteğe bağlı Eğer onlar bir OpenID hesabınız yoksa kullanıcıların kendilerini kayıt için izin verebilir.

Oturum sızdırma ve böylece birden fazla oy, zor yapılır güvenli bir sistemi uygulamak için read this

Sen% 100 güvenli bir oylama sistemi oluşturabilirsiniz olamaz.

  • Bu kayıt / IP / çerez dayalı eğer, kullanıcı yeni bir kullanıcı oluşturmak / bir olsun başka bir PC / tüm çerezi silmek.

Ancak auto prefilter + administrator as postfilter iş akışı ile deneyebilirsiniz:

  • Cookie (veya IP / tarayıcınızın özellikleri / vb) ile birden fazla oy kullanmasını engelleyen filtreleme automatically.
  • Bir yönetici görünümünde, yönetici by hand IP veya alt ağ adresine göre ayrıştırmak ve oy silebilirsiniz. Bu ne mükemmel bir çözüm olduğunu, ancak bazı iyi sorgu (aynı IP / alt gelen intervall aynı zamanda aynı oy) ile yönetici kolayca şüpheli oy silebilirsiniz.

Bu çözeltinin Bir büyük dezavantajı bir yönetici ihtiyacıdır. Ama - bence - mükemmel bir çözüm yoktur.

Eğer CA, emin olun hiçbir şekilde her kişi sadece bir kez oylama ki, orada tarafından doğrulanan kimlik gerektiren gidiyoruz sürece. Bu tabii toplam overkill olurdu, bu yüzden asıl soru şudur: Birden fazla oy daha zor yapmak için nasıl.

  • doğrulama kodu ile e-posta. IMHO overkill, ama olmak istiyorum nasıl emin bağlıdır.
  • olarak kim kontrol etmek oturumu kullanın. Açıkçası% 100 güvenli değil, ama ppl% 99 durur.
  • olarak kim kontrol etmek çerezi kullanır. Yukarıdaki gibi, bazı kişi çerezleri silebilir nasıl bilecek.
  • POST kullanmak, GET görmezden.
  • Yukarıdaki 2 ya da 3 kombinasyonunu kullanır.

Doğrulama için IP kullanmak için gidiyoruz eğer, sadece REMOTE_ADDR , combine with whole X-Forwarded-For kullanmayın. Bu şekilde aynı vekil aracılığıyla bağlayan insanları engellemez.

Benzersiz Ip yolu ile gitmeyin. Çok sayıda kullanıcı aynı ip (yani İtalyan isp Fastweb, büyük şirketler, vb) sahip senaryonun bir yeri vardır. Kullanıcı dinamik ip varsa da, onu o seviyor her zaman kendi IP adresini değiştirebilirsiniz ...

En iyi yollarından biri, e-posta adresini ve çerezleri kullanıyor olmalıdır. Kullanıcı (Bunu önlemek değil) birden çok kez oy mümkün olacak, ama en azından onlara her oy için biraz zaman alacak.

Çok oy önlenmesi için hiçbir aptal kanıt yolu yoktur. Çerez Denetleme anothr seçenektir.

Validatin ip adresi ile ilgili. Kullanıcı birçok kullanıcı tarafından kullanılan net işten ne olur?