правильный способ использования уровня доступа - PullRequest
0 голосов
/ 06 сентября 2018

Итак ... часть моего Интернета - это оплата за просмотр. Поэтому я должен скрыть элементы 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_name = "access";
$cookie_value = $row['access'];
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");

И после этого вызвать cookie с помощью js:

 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, но теперь я хочу дождаться обратного вызова.

Так как мне это сделать? с безопаснее? ИЛИ .. может быть, есть какой-то другой способ намного проще?

1 Ответ

0 голосов
/ 06 сентября 2018

Если вы выполните проверку в Javascript, злоумышленник (или плохой пользователь) может обойти проверку и получить то, что он хочет.

Таким образом, вы должны проверить доступ в PHP с помощью session. Даже если вы проверяете в PHP, не доверяйте значениям cookie. Поскольку значения в session находятся на стороне сервера и могут быть доверенными, в то время как значения в cookie могут быть установлены со стороны клиента и могут быть установлены на любое.

...