За последние 24 часа нас посетили 17637 программистов и 1724 робота. Сейчас ищут 1867 программистов ...

Как правильно валидировать формы?

Тема в разделе "PHP для новичков", создана пользователем Titos, 18 янв 2018.

Метки:
  1. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Вот как раз у тебя бред и увиливание, латиница в utf8 и 1251 одинакова.
     
  2. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Два порядка к бесконечности ;) достаточно там разных символов, это-же не админка сайта которую бутфорсят боты. Так что "невежественный" cбербанк не уязвимее я думаю в этом смысле западных банков.
     
    #52 keren, 21 янв 2018
    Последнее редактирование: 21 янв 2018
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    пора пинать, съехали с тропы "как многобайтные символы мешают чтению password_hash по байтно"
     
  4. Fell-x27

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

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

    Вижу какое-то размусоливание, сводящееся к "сиди помалкивай, там поумнее тебя сидять!". И никакой аргументации. Вообще. Хотя с моей стороны ее вагон был. Непорядок.
    --- Добавлено ---
    Угум, чую, скоро начну выдавать страйки.
     
  5. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Я не заезжал на эту тропу :)
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
  7. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Первый демагогический страйк.

    Все еще не вижу описания уязвимости.
    Все еще не вижу причин, почему нельзя передавать что-то окромя цифр и латинских букв в хэш-функции.
     
  8. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Пароли ж банкоматом выдавались / меняли, а эта тема пропитана легаси и правилами чуть более, чем полностью. Вполне возможно, что ограничения на пароль ввели для сохранения совместимости с какой-нибудь древней хренотенью.
    --- Добавлено ---
    Да, чуть не забыл. @keren ты не прав.
     
    MouseZver нравится это.
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    как боженька написал
    --- Добавлено ---
    теперь после войны можно отдохнуть https://php.ru/news/528210
     
  10. Fell-x27

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

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

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    А IBM?
     
  12. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Вот ни разу не удивлюсь )
     
  13. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    А IBM в твоей цитате говорит о ключе шифрования, а мы говорим тут о пароле - хешанул, кинул в базу и забыл о нём. Если кто-то ухитрится прислать нам его не в той кодировке, хеш не совпадёт, мы его пошлём на три буквы, а наша база как стояла, так будет стоять. А если он к нам захочет вернуться, ок, воспользуется формой "восстановить пароль".
     
  14. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    А гугл?
     
  15. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Например совместимостью с PHP который не поддерживает юникод, (в отличии например от Javascript).
     
    #65 keren, 23 янв 2018
    Последнее редактирование: 23 янв 2018
  16. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Господи, что ты несешь... При чем тут это? У тебя сервер кириллицу принимать отказывается? Хэши не считаются? Переставай рассуждать о том, что не понимаешь. Переставай. Плохая привычка.

    P.S. Все еще жду тысячу.
     
  17. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Вот пожалуйста
    Есть подозрение, что password_hash ничего не знает о иероглифах и прочих многобайтных символах. Если это так, то строка перед хэшированием будет обрезана до 72 байт. В то же время maxlength в браузере ограничивает именно длину в символах. Значит, мы не знаем, как ограничить длину пароля на стороне клиента, если используем эту опцию и хотим позволить пароли максимальной возможной длины.
     
    keren нравится это.
  18. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Я тебе кажется объяснил в чем проблема, на латинице "text" универсален, а по русски "текст" это полдюжины вариантов с разным количеством байтов и способов кодирования, php взаимодействует с разными программами, сервисами у которых свои алгоритмы, и могут возникнуть проблемы тем более если это касается важных данных.
    А нес ты про нарушения сбербанком твоей безопасности, про разное кодирование латиницы. Так что я жду тысячу :)
     
  19. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @keren @Fell-x27 скиньтесь мне по тысяче и я решу, кто из вас прав и кто кому тысячу должен.
     
    TeslaFeo нравится это.
  20. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    И при чем тут хэширование пароля?
     
  21. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
  22. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @keren а тебя не смутило что чувак использует грависы для обрамления строк, а не названия сущностей?
     
  23. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Ну проблема я думаю там создается функцией mysql_set_charset("utf8");
    Которая не перекодирует, а лишь сообщает базе кодировку данных, а кодировка данных другая и она их ломает.
     
  24. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Я уже приводил пруф, что это не так. Нет никакого критерия универсальности. Ты ухватился за частный случай и страдаешь от "ошибки выжившего". Я тебе приводил официальную кодировку винды и мака, и там латиница не пересекается, к примеру. И не пересечение кодировок более распространено, увы.
    Хорошо, что умные люди придумали кодировки и позаботились о том, чтобы "разные программы", принимая данные извне, могли получать указания, как эти данные интерпретировать.
    Да, сбербанк ослабляет мой пароль, не пропуская спецсимволы. Повторяю спецсимволы. Спец. Символы. С.П.Е.Ц.С.И.М.В.О.Л.Ы. Это такие закорючки, ну типа там запятые, точки, тире всякие, плюсыминусы, скобочки и прочие однобайтовые символы, появившиеся в кодировках задолго до кириллицы.

    Я понимаю, что это сложно. По этому разжую очень очень подробно.

    Однобайтовые символы - это такие символы, которые занимают один байт. Символы, занимающие один байт никак не могут создать проблемы, связанные с многобайтовыми строками. Потому что проблемы, связанные с многобайтовыми строками актуальны только для многобайтовых символов. А многобайтовые символы - это символы, состоящие более, чем из одного байта. Так как однобайтовые символы состоят из одного байта, они не являются многобайтовыми.

    Я уже не знаю, как еще тебе объяснить, что ты говоришь чушь, которая никак не относится к делу:)

    Разрабы в курсе этой беды блоуфиша, по этому щас в моде новый алгоритм - Argon2, не страдающий этой херней.
     
    #74 Fell-x27, 23 янв 2018
    Последнее редактирование: 24 янв 2018
    TeslaFeo нравится это.
  25. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    Fell-x27 нравится это.