За последние 24 часа нас посетили 18115 программистов и 1697 роботов. Сейчас ищут 1595 программистов ...

Не получается создать авторизацию

Тема в разделе "PHP для новичков", создана пользователем viktor72, 14 авг 2016.

  1. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Жалкая попытка, сказать про чушь... Когда сам ляпнул не подумав.
    What?
    У нас Location не в хедере то случаем передаётся? Эммм....
    Я написал возможную его проблему, а дальше ему уже рыть.
    ЗАметь! Не я первый умничать начал. Я не спорю, что ты там умнее, к примеру. Но факт в том, что ты начинаешь разводить срачь.

    Ещё раз уточню ты хочешь всем своим выше сказанным сказать, что header отправляется позже чем все заголовки и то бишь после формирования документа и передачи его браузеру? Даже используя ob_start ?

    То есть логика работы с ob_start

    Сначала документ формируется на сервере, потом формируются заголовки. Но отправляются сначала заголовки? Или же документ?

    Ты сказал :
    А я сказал
     
    #51 askanim, 17 авг 2016
    Последнее редактирование: 17 авг 2016
  2. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Ну да, я маленько не правильно выразился, но не зачем было так наезжать,, можно было просто поправить! Ты всё таки модератор, а не быдло из подворотни. Я просто с работы и уставший и во втором сообщение я подкорректировал свои мысли. И выразился чётко по ману.
    Ща ещё под корректирую, последнею цитату, там со всеми заголовками хедер сначала отправится, а потом уже сформировавшийся html документ. Поправь меня, если я ошибаюсь!
    И обьясни в каком месте написана чушь с умным видом.
     
  3. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Буфер творит чудеса и сам распределяет.
     
  4. viktor72

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

    С нами с:
    20 дек 2015
    Сообщения:
    326
    Симпатии:
    6


    Эту истину я в принципе познал... но как выяснилось бывают нюансы...
    У меня скоро разовьётся фобия на хедер (боязнь столкновения с хедером и всяческое его избегание)..
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Это как раз касается тебя. И твоего неумения принимать что-то сказанное другими.

    Поправляю. Когда сервер отправляет запрос клиенту, он не делает этого не в реальном времени а-ля push-уведомление по вебсокету.
    Попробуй дернуть браузером такой код:

    PHP:
    1. <?php
    2. echo 0;
    3. sleep(10);
    4. echo (1);
    И сделай аудит запроса. Увидишь что-то вроде:

    upload_2016-8-17_17-49-53.png

    Тут явно написано, что загрузка ответа сервера заняла 2мс, в то время как ожидание загрузки заняло 10 секунд.
    При этом, при выполнении в консоли у тебя 0 и 1 должны появиться по очереди, а не разом. Связано с тем, что сформированный ответ сервера отправляется только после того, как пых подтвердит, что он закончил работу. Связано с тем, что у самого сервера есть свой буфер вывода, который работает как накопитель для PHP.

    Таким образом, когда ты пишешь header, он на самом деле никуда не отправляется, он кладется в точно такой же буфер вывода. С той лишь разницей, что буферу вывода сервера не важно, в каком порядке что в него пришло - его задача принять набор данных и отдать клиенту. А буферу вывода PHP не все равно. И если он был задействован, он собирает в себя все данные, кроме заголовков, которые прокидывает сразу в буфер вывода на уровне сервера. И гарантирует, что остальной контент будет отдан после.

    Буфер вывода PHP даже не обязательно руками закрывать. Он автоматом сбрасывается в буфер сервера, по окончании работы скрипта.

    Таким образом то, что я сказал, означает следующее: если в самом начале кода написать ob_start(); , можно будет раз и навсегда забыть о проблемах с очередностью отправки контента и заголовков.

    Я написал это и только это.

    Теперь ясно, что я имел ввиду? Или снова будешь говорить, что я грешу против HTTP-протокола?
     
    askanim нравится это.
  6. viktor72

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

    С нами с:
    20 дек 2015
    Сообщения:
    326
    Симпатии:
    6
    Чем плох md5 и чем хорош password_hash я вообщем то не понял?
    --- Добавлено ---
    Наверное я бы предпочел познать что то простое , а затем постепено нагружатся знанияеми, видя что даже у знающих людей единого мнения по некоторым ворпосам нет.
     
  7. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Да ладно. Всё же понятно тебе объяснили. Либо следи, чтоб header был до любого вывода, либо ставь ob_start() в начале скрипта. Лично у меня в скриптах не может быть вывода, пока всё не просчитается, так что при нормальной работе просто не бывает вывода до header, header я вызываю на этапе рассчётов, если header("Location"), то после него обязательно die ставлю, поэтому я не забочусь об ob_start().
    md5 плох тем, что все о нём знают, существуют радужные таблицы для самых распространённых паролей, короче, подобрать по хешу md5 пароль не так уж и сложно. password_hash - там алгоритмы похитрее, он сам заботится о соли, короче, его крутые ребята из Зенда придумали так, чтоб пароль был максимально взломостойкий.
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Первое правило - не пугайся того, что непонятно. Само оно понятным не станет. Просто возьми и почитай про это. И попробуй применить. И все встанет на свои места.
    --- Добавлено ---
    Не совсем так, алгоритмы там никакие не выдуманы новые, он использует те, что есть в системе, более того, позволяет тебе самому указать, каким алгоритмом надо хэшить строку. Ценность этой функции в другом - она позволяет любому дебилу организовать правильное хранение паролей, не заставляя пользователей расплачиваться приватными данными за деилизм разработчика, не умеющего в соль.

    Это и хорошо и плохо. Хорошо потому, что является удобным инструментом. Плохо потому, что является ответом на бедственное положение в плане пониманий основ безопасности среди когорт PHP-адептов, черпающих мудрость с ютубов, с одной стороны избавляя мир от проблемы, связанной с их квалификацией, а с другой - позволяя этой квалификации падать еще ниже.
     
  9. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Ну я предполагаю, что он и соль не просто так прилипляет перед хешем, иначе бы тоже взломать можно было, он ведь соль в пароле хранит
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Это тоже часть реализации "любой дурак осилит". По-старинке же соль хранили рядышком с хэшем пароля, в соседнем столбце. Это слишком сложно. Это две переменные надо использовать. А теперь хватит одной - соль подклеивается к хэшу пароля, содержит в себе идентификатор алгоритма, которым надо проверять его, и ее длина также известна. Вуаля - одна строка в базе вместо двух.

    И это тоже с одной стороны удобно, а с другой грустно, потому что сделано было от безысходности. В общем, я не говорю, что я против этого, не. Я говорю, что это не супер-алгоритм, это просто автоматизация "бест-практис" решения в плане обеспечения безопасности паролей, которое позволит даже низкоквалифицированному разрабу не слить мой пароль налево. Потому что в противном случае он бы в лучшем случае вообещ ничего не солил, в худшем даже ничего бы не хэшировал, храня пароли как есть, либо, в терминальном случае - хранил бы пароль в куках. Такое до сих пор встречается, увы.
     
  11. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    https://habrahabr.ru/company/mailru/blog/271245/ довольно неплохая статья по теме.
     
    askanim и Fell-x27 нравится это.
  12. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Скорее, от не умения излагать мысли.... :\
    А вообще, спасибо.
     
  13. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    md5 не служит для шифрование пароля, нет, не нужно его использовать.
    Сейчас востребовано использовать Password Hashing Функции
    Ранее нужно было использовать crypt и chr.
     
  14. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @rodent90
    А ты вкурсе, что в давних временах. " когда по земле ходили динозавры", в былых 2000 - ых юзали двойное шифрование md5. И за не имением других возможностей md5 служил для шифрования паролей (Плюс соль), просто (На сегодняшний день) метод мягко говоря устарел или даже ушёл в историю.
    --- Добавлено ---
    Спросишь, - откуда я знаю? Просто люблю читать. - Отвечу я тебе.
     
  15. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    md5 - вообще не шифрование. Шифрование - это когда можно расшифровать потом :)
     
    askanim нравится это.
  16. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Двойное хэширование, оно просто не безопасно, с солью тоже правильно использовать, как минимум дописывать в конец данных.
     
    askanim нравится это.
  17. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @mkramer вот где как пишут, где то это хэширование, кто-то ляпнет, что это шифрование, а ещё вычитал на стеке что это не обратимое шифрование. Хотя сейчас вроде как нашёл функции самописные для расшифровки...

    @denis01 да ща нафиг этого не нужно, когда есть password hash :)

    http://www.softtime.ru/forum/read.php?id_forum=7&id_theme=13052
     
  18. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    то что оно не безопасно, значит что не нужно это использовать больше
     
  19. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @denis01 я не говорил, что я его использую, я лишь сказал, что его когда-то очень, при очень давно юзали. Я знаю, что md5 ломается на раз ;)
     
  20. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @askanim мы об одном и том же говорим :)
     
    askanim нравится это.
  21. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @denis01 у меня вообще, система авторизации такая, когда проходишь авторизацию сравнивается пароль password verify, ещё и в сессию password hash записывается :D и в бд соответствующему пользователю, а при каждом обновлении страницы сравнивается password verefi и эта сессия. После выхода соответственно рушу сессию, и удаляю значение из бд. А на восстановление пароля выдаю хешированную ссылку... Которая отправляется на мыло.
    --- Добавлено ---
    Осталось только про TLS почитать и уменьшить время жизни пакетов. И вообще почитать ещё про защиту потому, что мне кажется что всё это фигня, умные люди ловят пакеты и их смотрят в двоичный код, и из всего этого гэ находят полезную информацию типа логинов с паролем для входа в систему... Ну или ещё что-нибудь, что там можно поймать.
    Хотя я в этой теме про пакеты плаваю и толком не фига не знаю, ещё не углублялся, но когда нибудь дойду.
     
  22. machetero

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

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    зачем ссылки хэшировать ?:confused::D
    --- Добавлено ---
    У тебя вся система жесть. Но я не хочу разводить спор об этом, поэтому молча постою в сторонке ))
     
  23. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Там не расшифровка, там подбор по словарю. Про радужные таблицы я писал - это набор с md5-кодами самых распрострённных паролей, аля qwerty. Если в словаре не будет - не сработает, просто словари сейчас большие имеются. Необратимое шифрование - да, встречал, но по определению, шифрование - это обратимый процесс
     
  24. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Затем чтобы её нельзя было стырить. А то уйдёт аккаунт.
     
  25. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    поделись логикой атаки и алгоритмом защиты.