merhaba arkadaşlar.
bir oylama sistemi yapıyorum. Genelde ziyaretçiler belediye ve üniversite gibi yerlerden sisteme girip oy veriyorlar.
herhangi bir üyelik ya da login işlemi yok.
Gelen ziyaretçi 1 kez oy kullanabilsin istiyorum.
Session ile ip ile yapsam işlemi üniversitelerde tek ip'den çıkabilir ya da belediyelerde.
Cookie ile yapsam gizli sekmede girip birden fazla kez oy kullanabilir.
Benim yapmak istediğim şey her bilgisayardan 1 kez oy kullanabilsin. Php'de mac addressini almamın bildiğim kadarıyla bir yolu yok.
Burada bana bir mantık önerir misiniz daha önce bu tarz durum yaşadınız mı?
PHP'de session ya da cookie mantığı sorusu
5
●200
- 24-12-2024, 01:45:33Hocam illaki sizde bakmışsınızdır, yapay zeka önerisi bu şekilde
İşte öneriler:
1. IP ve User-Agent Kombinasyonu
Kullanıcının IP adresini ve User-Agent bilgisini birlikte saklayabilirsiniz.
Aynı IP'den farklı cihazlar olsa bile farklı User-Agent'lar (tarayıcı bilgisi) gelecektir.
Ancak yine de bu yöntem üniversiteler gibi aynı IP'den çıkan çoklu kullanıcılar için yeterince sağlam olmayabilir.
2. Cookie Tabanlı Doğrulama
Kullanıcının tarayıcısına bir cookie yerleştirin ve oy verildiği bilgisini bu cookie'de saklayın.
Kullanıcı gizli sekmede veya cookie'leri temizleyerek tekrar oy verebilir, ancak bu yöntemi diğer yöntemlerle birleştirerek kötüye kullanımı azaltabilirsiniz.
3. JavaScript ile LocalStorage Kullanımı
LocalStorage'a bir bayrak kaydedebilirsiniz. Bu, cookie'den daha kalıcıdır, ancak kullanıcı tarayıcı ayarlarını sıfırlayarak bunu da temizleyebilir.
4. Doğrulama için E-posta veya SMS Kullanımı
Üyelik sistemi olmadan, ziyaretçinin bir e-posta adresi veya telefon numarası doğrulaması yapmasını sağlayabilirsiniz.
Bir doğrulama kodu gönderip, doğrulanan kullanıcıların oy vermesine izin verebilirsiniz.
5. MAC Adresi veya Donanım Kimliği
Doğrudan PHP ile MAC adresi almak mümkün değildir, çünkü bu bilgi tarayıcı seviyesinde iletilmez. Ancak, bir masaüstü uygulaması ya da tarayıcı eklentisi kullanıyorsanız, donanım kimliği gibi cihaz bilgilerini alabilirsiniz. Bu yöntem genelde kullanıcıdan onay gerektirir ve pratik değildir.
6. Fingerprinting (Tarayıcı Parmakizi)
Device Fingerprinting adı verilen bir yöntemle kullanıcının tarayıcısına ve cihazına özgü bir parmak izi oluşturabilirsiniz.
Parmak izi oluşturmak için şunları birleştirebilirsiniz:
IP adresi
User-Agent bilgisi
Tarayıcı özellikleri (örneğin ekran çözünürlüğü, zaman dilimi, yüklü eklentiler)
WebGL ve Canvas gibi tarayıcı API'lerinden gelen bilgiler.
Bu yöntem %100 güvenli değildir, ancak kötüye kullanımı zorlaştırır.
7. ReCAPTCHA veya Basit Bir Doğrulama
Oy verme sürecinde reCAPTCHA gibi bir doğrulama kullanabilirsiniz. Bu, otomasyonla yapılan çoklu oylamaları engelleyecektir.
8. Maksimum Sınırları Belirleme
Özellikle tek bir IP adresinden gelen çoklu oylamaları sınırlamak için bir günlük, saatlik veya toplam oy sınırı koyabilirsiniz.
---
Önerilen Kombinasyon
1. Kullanıcının IP ve User-Agent bilgilerini saklayın.
2. Tarayıcıda hem cookie hem de localStorage'da bir bayrak bırakın.
3. Oy verme işleminden önce bir reCAPTCHA doğrulaması ekleyin.
4. Gelişmiş bir çözüm istiyorsanız tarayıcı parmakizi oluşturmayı düşünün. Bunun için açık kaynaklı kütüphanelerden faydalanabilirsiniz (örneğin, FingerprintJS).
Bu yöntemlerin hepsi %100 çözüm sunmasa da bir araya geldiğinde kötüye kullanımı ciddi ölçüde azaltacaktır. - 24-12-2024, 01:57:39VektorMedya adlı üyeden alıntı: mesajı görüntüleen mantıklı yol buna çıkıyor. deneyeceğim. önerileriniz için çok teşekkür ederim.chemochan adlı üyeden alıntı: mesajı görüntüle
Teşekkür ederim hocam.