За последние 24 часа нас посетили 101648 программистов и 5665 роботов. Сейчас ищут 2483 программиста ...

Написал первые наброски регистрации.

Тема в разделе "PHP для новичков", создана пользователем Михаил Запаленов, 6 сен 2017.

Метки:
  1. Михаил Запаленов

    С нами с:
    2 авг 2017
    Сообщения:
    119
    Симпатии:
    0
    Чтобы они не мучался не понимая почему не проходят валидацию данные. Регулярки для проверки соотвествию шаблону.
     
  2. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Какую валидацию? Снова повторяю вопрос - зачем проверять, какие символы использует пользователь? Особенно в пароле. Какая в этом смысловая нагрузка и польза?
     
  3. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.294
    Симпатии:
    216
    Адрес:
    Default city
    Мне ещё интересно зачем к теме прикреплён тег "php7" ?
     
  4. Михаил Запаленов

    С нами с:
    2 авг 2017
    Сообщения:
    119
    Симпатии:
    0
    Чтобы он хрень какую-нибудь не передал туда.
    --- Добавлено ---
    В интернете видел видосы всякие про sql иньекции и т.п.
     
  5. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Какую? Давай, развивай мысль. Это программирование. Ты или знаешь что делаешь, или нет. Какую хрень может передать человек в логине? И тем более пароле, который, в итоге, один фиг пойдет под хэш? Важно, чтобы ты сам понял, почему у тебя там проблема, а не просто поверил наслово дяде с форума. А то так вот, на вере дядям можно далеко уехать. В овраг, например.
     
  6. Михаил Запаленов

    С нами с:
    2 авг 2017
    Сообщения:
    119
    Симпатии:
    0
    Я скорее не знаю что сделал)
    --- Добавлено ---
    удалил эти методы для пароля и логина
    --- Добавлено ---
    upload_2017-9-7_17-3-39.png
    Убрал проверку и вот поставил для защиты
    trim(htmlspecialchars($_POST['password']));
     
  7. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.294
    Симпатии:
    216
    Адрес:
    Default city
    [​IMG]
     
  8. Михаил Запаленов

    С нами с:
    2 авг 2017
    Сообщения:
    119
    Симпатии:
    0
    ?
     
  9. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.294
    Симпатии:
    216
    Адрес:
    Default city
  10. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
    Пароль не должен храниться открытым. Поэтому вообще всё равно, что туда передадут.
    https://secure.php.net/password_hash

    Что передадут в логин тоже всё равно, если при обращении к БД использовать подготовленные запросы, а при выводе в браузер - пропускать через htmlspecialchars
     
  11. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.294
    Симпатии:
    216
    Адрес:
    Default city
  12. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    И как эта защита должна помочь? Что она делает? Как это обеспечивает безопасность? Безопасность от чего именно? Как можно эксплуатировать уязвимости, от которых ты пытаешься закрыться?
     
  13. Михаил Запаленов

    С нами с:
    2 авг 2017
    Сообщения:
    119
    Симпатии:
    0
    Теги всякие php передать и тп. символы которые могут ошибки вызвать разные. trim пробелы, в книге php 7 в подлиннике читал что всегда надо строку от пробелов очищать, а htmlspecialchars чтобы теги специальные приобразовывать в html-сущность, чтобы всякие гадости не могли передать, примеров не знаю, посветите меня, я нихрена не понимаю, что почему и как надо.
     
    #38 Михаил Запаленов, 7 сен 2017
    Последнее редактирование: 7 сен 2017
  14. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.497
    Симпатии:
    1.726
  15. Михаил Запаленов

    С нами с:
    2 авг 2017
    Сообщения:
    119
    Симпатии:
    0
    mysql
    --- Добавлено ---
    ТОЧНО! нельзя в mysql вызвать php скрипт получается) И при выборке данных потом из бд возращается строка, так что это бесмысленно.
    --- Добавлено ---
    Или неТ?
    --- Добавлено ---
    Неужели я опять чушь несу?
     
  16. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Ты на верном пути.
     
    Михаил Запаленов нравится это.
  17. Михаил Запаленов

    С нами с:
    2 авг 2017
    Сообщения:
    119
    Симпатии:
    0
    А зачем вообще тогда htmlspecialchars делать, и в каких случаях он уместен? Трим думаю оставить нужно, потому что пользователь получается пробелы может одни передать и все.
     
  18. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Конкретика, конкретика. Больше конкретики. Какие всякие php-теги? Какие символы, способные вызвать ошибки разные. У тебя есть их список? Поделись. Как это все может навредить БД?

    Не ломай голову. Никак. Бд вообще невозможно навредить информацией. Но можно запулить SQL_инъекцию в запрос через принимаемые данные. И твои супер-фильтры, вот ни один ни разу не помогают от SQL_инъекции. Ни разу. Ни один.
    Там должно быть написано, зачем. Не надо ничего делать на всякий случай. У всего должен быть смысл. Пробелы не являются вредным символом. Другое дело, что они не всегда желательны, да.
    Это вот именно тот случай. Теперь ты уже не вслепую функции тыкаешь, а обосновываешь. Это правильно.
    Гляди, не важно что ты передал в базу. HTML, JS, байты, содержащие картинку. Ей побоку. Она - коробка. Другое дело то, как эти данные будут использоваться. И тут вот самое важное - изменять данные перед записью в базу нельзя. Это вандализм. Ты их портишь. Введено было не то, что ты сохранил. А исходник не вернуть.

    Если тебе надо вывести какие-то данные на страницу, но не нужно, чтобы они интерпретировались браузером как HTML и JS, или просто в тексте могут быть угловые скобочки, на раз ломающие верстку, то надо прогонять данные через htmlspecialchars непосредственно при выводе. Забрали из бд исходник, модифицировали, отдали.

    В любом случае всегда важен контекст использования данных. Всегда на это это учитывать. Под одну единую гребенку нельзя все чесать.

    И почитай про SQL-инъекции.
     
    Михаил Запаленов нравится это.
  19. Михаил Запаленов

    С нами с:
    2 авг 2017
    Сообщения:
    119
    Симпатии:
    0
    Я понял передав в базу htmlspecialchars ну то есть перед отправкой в базу пропустил этой функции я уничтожил данные, теперь туда сохранились html-сущности и их не восстоновить.
    --- Добавлено ---
    Я убрал в данном случае htmlspecialchars вообще он мне не нужен, т.к. пароль будет хэшированный и т.д.
    --- Добавлено ---
    Как правильно "Солить данные"? Я вот так сделал
    $this->password = crypt($this->password, 'InEnEfRvTlER');
     
  20. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Ну..в данном случае - восстановить, в PHP есть обратная операция. Но смысл ты понял верно. Просто есть более вандальные функции, типа striptags. Вот после нее уже ничего не вернуть. Так или иначе, в базу пишем "как есть", из базы читаем "как надо".

    https://php.net/manual/ru/faq.passwords
     
    Михаил Запаленов нравится это.
  21. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    183
    Я уже третий раз пишу про бинд
    --- Добавлено ---
    А в php 7, придумали какую-то новую функцию для хеширования, только не помню какую
    --- Добавлено ---
    Нашёл, это Argon2
     
  22. xaker01

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

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    Вижу прям дикое обучения человека идет) Кнутом и ремнем.
    Не забывай у пользователя может быть и уникальный email.
    А там уже восстановление пароля, авторизация по емаилу и паролю одновременно.
     
    Михаил Запаленов нравится это.
  23. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Не не, почта, восстановления, одноразовые ссылки, это вот все отдельный феншуй и пока рано.
    --- Добавлено ---
    Человек лучше всего учится на своих ошибках, когда самостоятельно их осознает и понимает причину, пусть даже через наводящие вопросы, но главное расшевелить. У парня это явно получается. Параллельно это развивает правильный подход к решению задач - исходить всегда от необходимого, а не наугад, отдавать себе отчет в том, что делаешь, спрашивать себя "а не занимаюсь ли я сейчас какой-то хренью бесполезной?". Оч полезные вещи.
     
    xaker01 нравится это.
  24. xaker01

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

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    Да понимаю сам в начале какой только фигней не занимался.
    Хотя до этого помогло то что учил логику, раньше удалось понять что творю фигню.
    Да и без наставника, не-не.
    Правильно наставника! тяжело разобраться, куча ошибок совершать будет,
    у самого не было и досихпор тврою фигню бывает. Да что мелочу, часто бывает.
     
  25. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.012
    Симпатии:
    1.679
    Адрес:
    :сердА
    Все мы не без греха.
     
    AlexProg и Михаил Запаленов нравится это.