За последние 24 часа нас посетили 22936 программистов и 1214 роботов. Сейчас ищут 707 программистов ...

Защита от перенаправления по url.

Тема в разделе "Сделайте за меня", создана пользователем Denzi, 14 май 2021.

  1. Denzi

    Denzi Новичок

    С нами с:
    14 май 2021
    Сообщения:
    1
    Симпатии:
    0
    Как написать систему защиты, чтобы тебя перенаправляло на ту страницу с которой ты хочешь перейти. То есть если ты с юзера хочешь в админ попасть, то тебя обратно на юзера перекинет, и на оборот. Если ты с авторизации на юзера хочешь перейти просто по ссылке, то тебя направит на авторизацию. Так же на странице юзера имеется окно с отправкой запроса. Я сделал запрет с помощью ($_SERVER['HTTP_REFERER'] но когда юзер отправляет запрос его перекидывает на страницу авторизации. Внизу скриншоты попытки написания защиты у user, такой же код у tech(admin), только с изменением ссылки.
     

    Вложения:

  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    PHP:
    1. <?php
    2.  
    3. if(!isset($_SESSION['role']))
    4. {
    5. $_SESSION['role'] = 0; //установка значения по умолчанию. 0 - аноним
    6. }
    7.  
    8. if($_SESSION['role'] == 0)
    9. {
    10. // этот блок кода выполняется для анонимных пользователей
    11. }
    12.  
    13. if($_SESSION['role'] == 1)
    14. {
    15. // этот блок кода выполняется для авторизованных пользователей
    16. }
    17.  
    18. if($_SESSION['role'] == 2)
    19. {
    20. // этот блок кода выполняется для авторизованных пользователей с особыми привилегиями
    21. }
    22.  
    23. /////////
    24. //далее пример выбора какой блок выполнять в зависимости от значения $_SESSION['role']
    25.  
    26. if($_SESSION['role'] == 1)
    27. {
    28. // этот блок кода выполняется для авторизованных пользователей
    29. }
    30. elseif($_SESSION['role'] == 2)
    31. {
    32. // этот блок кода выполняется для авторизованных пользователей с особыми привилегиями
    33. }
    34. else
    35. {
    36. // этот блок кода выполняется для всех прочих, в том числе и неавторизованных пользователей
    37. }
    38.  
    39. print_r($_SESSION); // просмотр содержимого массива $_SESSION
    40.  
    41. ?>