За последние 24 часа нас посетили 17510 программистов и 1721 робот. Сейчас ищут 1859 программистов ...

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

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

Метки:
  1. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Твой вопрос на тысячу рублей был:
    Так что это ты натягиваешь реальность на свое мнение :)
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    @keren, ты тоже так и не ответил. Каким образом чел пароль в формочке входа на моём сайте может ввести не в той кодировке? Если бы кодировка была случайная, мы бы вообще кириллический ввод принимать не смогли.
     
    Fell-x27 нравится это.
  3. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Даже не так. Каким образом это повлияет на безопасность?
     
    Fell-x27 нравится это.
  4. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Я отвечал, например он может скопировать, разные приложения, браузеры, кодировка не случайная но в юникоде некоторые символы могут отличаться, а так же вопросы корректной обработки.
     
  5. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    @keren, Вот это сообщение я скопировал из файла в Windows 1251. Но ты его читаешь, потому что на сервер форума оно всё равно ушло в utf8
     
  6. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    То что я читаю и то что сервер должен валидировать как пароль это разные вещи.
     
  7. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Ты реально не понимаешь, что если бы сообщение из этой формы ушло не в utf-8, ты бы его не прочитал? Соответственно, если бы у меня был кириллический пароль здесь, и я его бы хранил в файле в Windows-1251, то я бы всё равно имел возможность войти сюда копипастой. Об этом заботятся ОС и браузер.
     
  8. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    @mkramer я тебе говорил про валидацию сервера, которая включает определение длинны, соответствие регулярке, обрезку, хеширование шифрование итп и это не имеет отношение к тому что ты говоришь.
     
  9. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Это работает НЕ ТАК.
     
  10. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Так я не в любой кодировке буду определять длину, регулярки ставить и т.п. Мне всегда будет приходить с моей формы пароль в одной и той же кодировке. Если пришёл в другой - значит клиент очень постарался зачем-то, значит я ему скажу: "Пароль неверный, иди в попу". А хешированию я передаю набор байт, получаю другой набор байт. Что-то кроме хеширования с паролем редко что-то имеет смысл делать.
     
  11. Fell-x27

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

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

    @romach вот описал вполне себе живой сценарий. Человек попытался прикинуть проблемы системы, а не проецировать свои личные затыки.
     
  12. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Ну php6 не осилил utf16.
     
  13. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    Приведу пример с моего опыта. В далеком прошлом, взламывая одну игру, массовый взлом аккаунтов, натыкался на спец символ "пробел и тире(низ/минус)". Так вот, отображались они как обычные символы... простой "тире, пробел и т.д.", но количество 1 и 0 в двоичном коде был совершенно разным. Я и так и сяк пробывал, просто ахуевал, не верно бляя!, пока не заглянул в информацию каждого байта.
    --- Добавлено ---
    629 аккаунтов стали моими (с)
    От разработчиков - невозможно узнать вторичный номер каждого аккаунта игры.
    Да овощи...
    --- Добавлено ---
    на данный момент могу так же продолжить взламывать :)
    Twwk
     
  14. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Осторожно кто-нибудь из доброжелателей массаж почек закажет:D
     
  15. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Сам то сейчас понял что написал?
     
    Fell-x27 и MouseZver нравится это.
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    и скажут - вон тот овощь сказал что ломал меня во сне, забаните его, накажите, комп отберите ! позязя!
     
  17. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    А как ты будешь исключать кодировки? Есть варианты регулярки на PHP?
     
  18. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Зачем?
     
  19. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    Чтобы послать если пароль пришел в другой кодировке, вот варианты:
    'текст' - utf8
    'текст' - utf8 (без bom)
    'текст' - utf16 be
    'текст' - utf16 le
     
  20. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Человек, судя по всему, дальше хелловролда не зашел и принимает формы лишь в теории, слабо представляя, как работает браузер. Других вариантов, исключающих троллизм просто нет.
    --- Добавлено ---
    [​IMG]
    --- Добавлено ---
    Держи: http://sandbox.onlinephpfunctions.com/code/863f2083c6f1d679226e321afe4619e88cb39c69

    И учи матчасть.
     
  21. keren

    keren Новичок

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

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Никак. Я точно знаю, в какой кодировке мне пришлёт браузер пароль. Если бы дело касалось закачиваемых текстовых файлов, то там да,пришлось бы задуматься о кодировке. А прислать мне форму в правильной кодировке - забота браузера
     
  23. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    ИМЕННО
    И при копировании туда текста "в другой кодировке" результат все равно будет UTF-8.
     
  24. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    доставило :)
     
    Fell-x27 и romach нравится это.
  25. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Есть ещё один вариант, но я его озвучивать не буду, т.к. он и так всем очевиден )