Tarayıcı önbelleği nasıl kaldırılır?

4 Cevap php

Ben kullanıcıların görüntüleri oy verebilir bir resim web sitesi var. GÖRÜNTÜLER RANDOMLY İLK SAYFADAKİ ÜRETİLEN ARE! Onlar görüntü ayrıntıları sayfasına window.location kullanarak yönlendirildi ediyoruz oylamak kez. Onlar aynı görüntüyü göreceğiz ... tarayıcı önbelleği geri tıklayın .. ve onlar bunu sınırsız kere oy verebilirsiniz .... eğer

Ben nasıl önbellek kaldırmak için? Ben geri düğmesine ne zaman ilk sayfa yenilemek istiyorum! Ben zaten kullanılıyor:

<meta http-equiv="Pragma" content="no-cache">
    <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
    <META HTTP-EQUIV="Expires" CONTENT="-1">

ve

<input type="hidden" id="refreshed" value="no">
<script type="text/javascript">
    onload=function(){
        var e=document.getElementById("refreshed");
        if(e.value=="no")e.value="yes";
        else{e.value="no";location.reload();}
        }
</script>

teşekkürler!!

4 Cevap

Birden çok kez oylama kullanıcıların önlemek için denetimi istemci tarafı kullanmak istemiyorum. Bu sadece aptalca.

Eğer bir kullanıcı zaten bu görüntü için oy olup olmadığını sunucu üzerinde kontrol etmek istiyorum, ve eğer öyleyse, onları doğrudan bir sayfada "Oops zaten bunun için oy verdin" ve oy sayılmaz.

location.replace("URL_HERE"); yerine location.href = "URL_HERE"; kullanıcının tarihinin yeni bir giriş oluşturmasını yönlendirmeyi engelleyecektir kullanılması. Ama hala Anon cevabı kesinlikle doğru olduğunu düşünüyorum.

Ve "hacker" JS ne devre dışı olur?

Eğer birkaç başka şeyler yapmak için tavsiye ederim:

  • bir 24 saat için için oy görüntü miktarını sınırlamak
  • 24 saat boyunca DB tüm oy tutmak
  • Kayıtlı kullanıcıların higer max-oy limiti vermek

Bunun yerine bir dizindeki bir dosyaya işaret dinamik kullanıcıya görüntüyü beslemek gerekir. Yani bir var

image.php?id=1234

Image.php içinde hemen hemen sadece, görüntüyü açmak onu uudecode ve tarayıcıya yazdırabilir. Görüntü programlama alınır beri sadece bunu engellemek ya da onlara yeni bir resim zorlayabilir. Kullanıcıların belirli bir görüntü almak istiyorum ve her zaman rastgele bir görüntü hizmet etmek istemiyorsanız, o zaman url hiç kimlikleri kullanmayın ve sadece rastgele bir resim dosyasını kadar hizmet vermektedir.

Ayrıca bu durumda bir UUID üreten iyi bir fikir olacaktır, url yararsız rastgele veriler sopa yardımcı olur. Yani bir çözüm ile gitmek bile sadece o gibi bir şey yapmak gelmez

print '<img src="'. $image .'?'. uniqid() .'">';

Bu herhangi bir gümüş kurşun, ama görüntü önbelleğe almayı engeller başka bir hüner.