Ben oylama için SO bir mesaj kontrolöre bir XHR yöntem mesajlarını uygulayan ve URL yoluyla sonrası kimliği ve oy türünü gönderirse ek bir fkey
parametre gönderilir, örneğin fark:
http://stackoverflow.com/posts/1/vote/2
Ben bu uygulama zaman aynı kullanıcı tarafından yinelenen oylamayı önlemek ve genel mantık ek olarak, spam önlemek için kullanabilirsiniz ne mantık merak ediyorum, benzer bir tekniğin uygulanması için gidiyorum.
Onları saklamak olacak tablo için şema:
thread_id user_id vote_type
2334 1 2
Şimdiye kadar bu mermi puan ile geldi:
- sağlamak Kullanıcı oturum
- geçerli bir gönderi ID ve geçerli oy tipi gönderildiğinden emin
- yazdıktan sonra, kullanıcının daha önce oy değil emin
- karma yaratan kod bir kullanıcı farklı bir tarayıcı, farklı bir işletim sistemi üzerinde olabilir bu yana, böyle bir kullanıcı aracısı gibi dinamik bilgileri içeren, doğru değil mi?
Update:
"SO muhtemelen kullanıcıyı tanımlamak için giriş çerez kullanıyor." - Andrew
Birisi bu yapılabilir nasıl göstermek, ya da başka bir deyişle özellikle fkey
, bir alfanümerik 32-bit dize olan, nasıl oluşturulur bir örnek verebilir misiniz?
Question:
- Benim XHR kod ile her yerde gerçek kullanıcı kimliğini göndererek değilim beri, bu ben, yerine diyelim ki
fkey
saklayabilirsiniz ki benim tablo şemasını güncelleştirmek zorunda demek {[(1)] }?fkey
muhtemelen her bir kullanıcı için benzersiz olması gerekir, ve bu yüzden muhtemelen bir satır neyse bir fkey olan oylama tabloda olup olmadığını sorgulayabilirsiniz.
Benzer bir tekniğin uygulanacağı kimseye herhangi bir ipucu veya fikir takdir ediyorum.