За последние 24 часа нас посетили 22030 программистов и 990 роботов. Сейчас ищут 667 программистов ...

Надежность авторизации

Тема в разделе "PHP для новичков", создана пользователем Roman __construct, 7 окт 2019.

  1. Roman __construct

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

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Вот код из соседней темы, показывающий основную механику авторизации:

    PHP:
    1. <?php
    2.     $t = "12345"; //some random string
    3.     if($_GET['t'] != $t) //for pass http://simple-php-auth.test/auth.php?t=12345
    4.     {
    5.         header('Location: /otsosi.php');
    6.     }
    7.     echo "Все свои, выдыхаем";
    Если в качестве токена использовать рандомную 60-байтовую строку - брутфорс его уже уже не взломает.

    А если вместо get использовать post и https, так и вообще всё чудесно.

    А если добавить время экспирации и рефреш-токен - получим JWT )))

    Так и живем.

    Пример этот вполне годный. Хорошо показывает суть авторизации как таковой.

    Если есть возражения и дополнения - прошу оформлять их конструктивно.
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    ясное дело надо что то с чем то сравнить))) капитан очевидность))
    Твой код показывает как проверить что параметр гет чему то равен, это не авторизация, это херня а не пример.
    Пример к тому же будет выдавать ворнинги

    Не кажется что у тебя много а если? o_O
    А если к твоему коду написать еще 500тыщ строк кода то ваще наверно фейсбук получится)))
     
  3. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Какой нафиг POST?! GET-запросы что уже не достойны авторизации? Куки – слыхал про такое? Я когда писал тебе в соседней ветке, находился в большом недоумении, почему для примера ты выбрал $_GET, а не $_COOKIE.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    Отстой.

    Ни тебе сессий - как на другой странице узнать что авторизация была?

    Ни тебе хранения хешей в хранилище - а что делать если пользователей более одного?

    Эдакий антипаттерн как не надо делать... Зачем тебе это?
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    После header location должен быть exit.
    --- Добавлено ---
    А так конечно мысль выражена ясно.
     
    Roman __construct и miketomlin нравится это.
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Вообще по-моему токены в адресе – отстой. Подходит только для каких-то «одноразовых акций».
    --- Добавлено ---
    С exit, да, тоже прикол :)
    --- Добавлено ---
    @Roman __construct, пойми, у меня к тебе претензии не по сути, а по виду оставляемых на форуме фрагментов кода (это началось с позапрошлой темы, но там ты дал нужные пояснения). Пусть будет простой, но железобетонный вариант. Я тяп-ляп-кода «для примера» на киберфоруме насмотрелся, отчасти поэтому и не просматриваю его больше.
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
  8. Roman __construct

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

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Post, потому что при описанном подходе, токен содержится в url, а url можно найти в логах сервера, например, или в хистори браузера, и хана приватности)) Мало того, такой урл могут перехватить на любом промежуточном сервере, через которые идет трафик.

    А если есть SSL и разместить токен в тело Post-запроса - то его уже в промежуточных точках не подсмотрят :)

    Насчет cookie - ну х.з. Можно наверное и куки. Но лично мне get и post более близки и понятны :)
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Я же написал: что делать с GET-запросами? У GET-запроса нет «тела» ;)
     
  10. Roman __construct

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

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Инигаварика

    еще здесь нет ассиметричного шифрования

    да и вообще это не блокчейн

    а всё что не блокчейн - говно чисто по определению

    //в соседней теме был вопрос по авторизации - это был ответ на него, но возникли нюансы ))
    --- Добавлено ---
    не понял вопрос. что тебе нужно делать с GET-запросами?
     
  11. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Ты сам написал, что передавать токен и т.п. в адресе плохо (я об этом тоже выше отписался). Допустим, в POST-запросах ты передаешь эту инфу в «теле» (читай в POST-параметре или параметрах). Как передавать эту инфу в GET-запросах? :)