簡體   English   中英

使用訪問級別的正確方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM