[英]Correct way to use access level
我的網站的一部分是按次付費,所以我必須隱藏 dom 元素或使用訪問級別顯示。 我在 MySQL 中存儲訪問級別。 值0是用戶創建賬戶后獲得的標准值。 登錄后,他會在我的網站上有一些功能,但不是所有功能。 要解鎖休息,他需要購買一個計划,然后他的訪問級別將增加到 1。因此,如何使用該訪問級別。 我應該使用嗎?
$_SESSION['access']= $row['access'];
之后是這樣的:
if($_SESSION['access'] == 1){
// user with access lvl 1 can go to locked window
echo '<script> function goLocation(val){
window.location.href= "http://www.someweb.co.uk/load.php?titleID="+val;
}</script>'}
else{
// user with access lvl 0 can't go to locked window
echo '<script> function goLocation(val){
alert("Page locked... If you would like to go there buy a access");
}</script>'}
或者我應該將它存儲為 cookie
$cookie_name = "access";
$cookie_value = $row['access'];
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
然后使用 JavaScript 調用 cookie:
getCookie('access');
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
accessLVL = c.substring(name.length, c.length);
return accessLVL;
}
}
return "";
}
並運行主要代碼:
function goLocation(val){
if(accessLVL == 1){
window.location.href= "http://www.someweb.co.uk/load.php?titleID="+val;
}
else{
alert("Page locked... If you would like to go there buy a access");
}
我知道我也可以通過 AJAX 調用來做到這一點,但我現在想等待回調。
我怎樣才能做到這一點?
如果您在 Javascript 中進行檢查,攻擊者(或壞用戶)可以繞過檢查並獲得他想要的東西。
所以你必須用session
檢查 PHP 中的訪問。 即使您正在檢查 PHP,也不要相信 cookie 的值。 因為session
中的值在服務器端,可以信任,而cookie
的值可以從客戶端設置,可以設置為任何一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.