Новый комментарий

artemjeka 04.09.2018 в 09:11

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

У меня вопрос в этих функциях создается соль автоматически. Допустим я перенесу сайт на другой хостинг где свой интерпритатор php. Не потеряется ли соль на предыдущем хостинге при проверке пароля на новом хостинге но с прежней БД паролей?

password_verify(
    'password',
    '$2y$10$Ot7AIHSuyDo13Kj6fl2ZOOc7fVCX6fmWx11H6qZQE/J4SLwpN.qQ6'
)
ivashkevich 05.09.2018 в 23:27

Не потеряется, она включена в хэш.

artemjeka 06.09.2018 в 16:46

Имею ввиду интерпитатор на новом хостинге не придумает свою соль?

ivashkevich 07.09.2018 в 08:44

При проверке пароля не рассчитывается новая соль в принципе, она просто берется из уже готового хэша.

Clawson 27.08.2019 в 15:59

Интересности ^^ Правда пока начало статьи не особо понял. Надеюсь после завершения обучения пойму что там и как работает. Но статья полезна уже сейчас. Спасибо.

ivashkevich 28.08.2019 в 05:57

Пожалуйста)

vtolstov 02.10.2019 в 10:22

Добавлю, что passwordhash для каждого пароля генерирует уникальную соль. Пошло это с 7 версии php. Однако это все равно дыра в безопасности, если php может понять что там за соль у каждого пароля. В вики написано, что на данный момент заточенное железо может ломать эти пароли. Алгоритму как никак уже 20 лет.
Ждем php 8. Скорей всего алгоритм поменяют.

ivashkevich 03.10.2019 в 00:32

Появилась функция ещё в PHP 5.5. Знание соли - не дыра. Соль - способ защититься от rainbow tables, в которых просто перечислены хэши без соли, для одного пароля каждый раз одинаковые. Соль же позволяет для одного и того же пароля сгенерить разные результирующие хеши, что исключит поиск по хэшу в списке.

Остаётся только перебор. И конкретно алгоритм mcrypt, используемый на данный момент этой функцией - надежный, так как проверка по этому алгоритму достаточно трудоёмкая.

Простой пароль подберется, конечно, быстро. Но это не проблема алгоритма, а проблема того, кто этот пароль использует. И вот это уже дыра.

vtolstov 03.10.2019 в 05:29

Ну смотри. Так сказать от сокурсника ))). Есть у нас жертва, у которой мы вытащили хеш пароля. Из него получили соль (так как это простая процедура и даже не важно, что для остальных соль другая). Далее алгоритм начинает перебирать пароли, но не через запрос к базе, а путем генерации радужной таблицы с данной солью. Путь не быстрый, но заточенное железо эту операцию делает достаточно шустро.
Конечно, уже не получится использовать стандартные радужные таблицы для поиска такого пароля из-за уникальной соли, придется генерить свою, что однозначно дольше. Но все равно этот способ проще, чем перебор пароля в лоб.
P.S. Там bcrypt. А можно подключить Argon2id. Вот это реально мощная штука.

ivashkevich 03.10.2019 в 17:29

Построение радужной таблицы под конкретную соль дешевле простого перебора? Я, видимо, не совсем понимаю как они работают)

vtolstov 03.10.2019 в 17:34

Простой перебор втыкает пароль в запрос и получает - ок или не ок и идёт дальше. При радужной таблице, одна машина генерит список хешей, а вторая проверяет на совпадение. Первый вариант по старинке называется «в лоб».
Скорей всего мы об одном и том же, только разными словами )))
p.s. в лоб еще перебирают пароли у архивов.

ivashkevich 03.10.2019 в 17:37

Зачем в запрос втыкать? Есть хэш, есть гипотетически правильный пароль. Просто выполняешь проверку. Про радужные таблицы тоже не понял зачем 2 машины. Параллелить смысла нет - пока таблица не сгенерена, смысл её долбить?

2Folls 15.01.2020 в 14:35
$id = (int)$_GET['id'];
и можно тогда обойтись без PDO:)
ivashkevich 18.01.2020 в 06:04

Можно, конечно, но суть PDO прежде всего в предоставлении абстракции при работе с БД. Параметризованные запросы - приятное дополнение.

OneMoreTime 05.04.2020 в 21:44

-использовать функцию htmlentities()

На каком этапе? - перед передчей в БД или на выходе из БД при выдаче клиенту?

Content Security Policy.

С этим что-то пока не очень понятно в конкретной реализации((( И судя по комментариям из статьи по сслыке - работает это дело не очень корректно...

ivashkevich 06.04.2020 в 07:31
  1. Тут можно решать самостоятельно. Исходить нужно из того, нужен ли в базе исходный вариант, или нет.
  2. Все работает корректно. Возможно, статья не самая актуальная. Если тема интересна - погуглите =)
[email protected] 06.05.2020 в 15:45

В данной статье мы поговорим о хэшировании. Данная процедура подразумевает под собой одностороннее шифрование, после которого из получившегося значения невозможно восстановить исходное.

Хэширование - это не шифрование!!! Термин "шифрование" подразумевает возможность расшифровки, а хэширование - необратимо. Правильнее написать "необратимое преобразование данных". Wiki

[email protected] 11.05.2020 в 12:47

include - это выражение, а не функция

ivashkevich 12.05.2020 в 07:58

Спасибо, поправил.

studentDev 31.07.2020 в 09:25

Интересная статья, теперь буду знать) Спасибо!

[email protected] 02.08.2020 в 21:52

Попадался на просторах интернета самописный скрипт букса. Как-то допиливая его под себя обнаружил существенную дыру то ли случайно, то ли нарочно оставленную разработчиком. Смысл бага в следующем. Пользователи могут загружать картинку фона или аватара, при этом проверка типа файла выполнялась на странице на уровне JS, а вот php файле, к которому шло обращение через JQuery, такой проверки не было реализовано, только на размер. В итоге можно было создать простую форму с POST запросом прямо к этому php файлу и отправить на сервер свой файл. А дальше полное управление как вы понимаете.

ivashkevich 03.08.2020 в 02:44

Жёсткий баг)

pixel 11.02.2021 в 18:14

Ух, хорошо что прочитал статью после того как настроил отправку писем на хостинге, а файл с настройками оказался залит в github. После прочтения сразу гитигнор настроил и удалил файлы важные файлы из гита:) Спасибо!

ivashkevich 14.02.2021 в 15:17

Не забывайте, что файл можно найти в предыдущих коммитах в истории гита. Иногда из-за этого приходится пересоздавать репу.

Логические задачи с собеседований