好吧我想允許每個頁面有一個用戶1視圖,然後向他們發送一個cookie,以阻止他們再次查看該頁面,但我不喜歡cookie,我會這麼做與IP,但我寧願通過餅乾。這可能嗎?我會怎麼做?1查看IP或設置Cookie
回答
簡單的答案:
if(isset($_COOKIE['myCookie'])){
die('Not allowed! Only one view per user!');
}
else{
setcookie('myCookie', true);
}
//content here
與會議做它:
session_start();
if(isset($_SESSION['mySession'])){
die('Not allowed! Only one view per user!');
}
else{
$_SESSION['mySession'] = true;
}
//content here
重定向而不是顯示一個醜陋的錯誤:
if(isset($_COOKIE['myCookie'])){
header('Location: error.php');
exit;
}
else{
setcookie('myCookie', true);
}
//content here
將投票的最佳答案,歡呼 –
這些都不會工作在更長的時間跑。 –
不幸的是,會話還基於cookie或在鏈接中保留ID - 因此刪除Cookie緩存將會阻礙兩者。這同樣適用於我的「答案」。從根本上說,這只是不正確的方法 – Basic
這很可能
<?php
if(isset($_COOKIE['blocked'])) {die('Access denied');}
setcookie("blocked", true);
?>
當然,繞過(刪除cookie)是微不足道的。
你得到的真正問題是一個信任問題。 Cookies由客戶發送給您,您應該永不信任客戶。
基本上,如果你想限制訪問權限,你需要在服務器端記錄一些無法更改的內容(例如強制用戶登錄,與用戶關聯),或者接受這一點,提出一個非常不安全的防守。
請注意,IP地址是不好的,因爲公司中的許多用戶可能會看起來有相同的IP地址 - 所以阻止一個會阻止所有IP地址。此外,一些用戶在家裏就可以只通過斷開/重新連接的調制解調器/路由器
你說得對,但我只想拒絕每個人的觀點(電腦) –
它有多重要?如果這不重要,像這樣的cookie就沒問題 - 但是即使是具有高級用戶知識的人也可以繞過它。您或者需要不正確地識別每個用戶,記錄誰在瀏覽頁面並阻止服務器端,或者相信客戶端告訴您真相,並希望它沒有以任何方式修改。基本上,沒有其他選擇。您的解決方案的優勢取決於:a)您能夠識別訪客的程度如何; b)客戶對您檢查的細節進行欺騙的難度。 Fudging餅乾是微不足道的 – Basic
不是非常重要。如果他們繞過它(它不是管理面板等),他們可以編輯任何內容。只是一段文本,另一個用戶希望它們只查看一次。 –
if (!isset($_COOKIE['visited'][$page_id]))
{
// leave him view the page
$_COOKIE['visited'][$page_id] = true;
}
else
{
// get him out of there
}
這需要在索引/頁的begginning寫入獲得一個新的IP地址。
但是,我不建議這樣做,因爲客戶端可以輕鬆編輯Cookie。 SESSION是安全的方式。
我會避免使用:
A)餅乾來限制訪問(可以通過該客戶端編輯)
B)的IP地址(可以很容易地改變)
爲@Basic。說,也許讓他們登錄,只讓該用戶查看一次。
他們可以創建另一個帳戶:( –
@NateCorky這就是爲什麼大多數網站強制一個電子郵件地址可以檢查爲唯一的。當然,現在每個人都有多個地址,所以這也是不好的。這是一個持續時間很長的遊戲的一個終點,它是在努力和安全之間找到一個折中的辦法,最極端的情況是用戶可以重新格式化他們的系統(或者說不那麼劇烈,交換瀏覽器),現在絕對沒有辦法知道它是同一個人,面對面會面並給他們一個帳戶,但不能保證每個用戶都是獨一無二的 – Basic
是的,這是不幸的:(但我想讓客人看到它,只有註冊,如果所有者文本文件想要爲每個人定義1個視圖,這將是不可能的。:(我將暫時使用cookie,直到我構建一個安全的系統(ish) –
- 1. 存儲IP或爲PHP POLL設置cookie?
- 2. PHP cookie只設置1秒?
- 3. Django如何查看正在設置和未設置的cookie?
- 4. magento:保存或查看設置較慢
- 5. Django將cookie設置爲1年
- 6. 檢查cookie是否設置
- 7. 將cookie設置爲1小時並在加載時檢查它
- 8. 以編程方式設置或查看「高級Wi-Fi」設置
- 9. 如何在查看文件中設置Cookie在Laravel
- 10. GWT Cookie不能設置或獲取
- 11. 如何檢查一個php cookie設置或不在jquery
- 12. 檢查Cookie是否爲空或在php中設置無效?
- 13. 未在Cookie中設置Cookie
- 14. javascript cookie,設置多個cookie
- 15. xmlhttprequest和設置cookie和cookie
- 16. PHP cookie設置
- 17. Javascript設置cookie
- 18. jquery cookie設置
- 19. Cookie未設置
- 20. Cookie未設置
- 21. 設置Cookie
- 22. 設置Cookie
- 23. Silex設置Cookie
- 24. Symfony2:設置cookie
- 25. 設置cookie的
- 26. Cookie未設置
- 27. 如何設置查看Session.Timeout
- 28. PdfTron是否內置了用於在Cookie中保存查看設置的選項?
- 29. Qt:設置IP
- 30. 查看IE7每會話cookie
但是,當cookie被清除時,他將能夠查看該頁面。 –
任何用戶都可以查看該頁面,或者用戶是否已在您的網站註冊? – Abhishek
任何用戶,來賓和註冊,我都會通過IP來做到這一點,但我不希望他們家中的每個人都無法查看它 –