Общий сценарий атаки:
В 2013 году у Django была общая уязвимость, так как злоумышленник мог создавать чрезвычайно интенсивные вычисления ЦП с помощью очень больших паролей [см. здесь предупреждение безопасности]. Я не уверен, что это возможно при использовании PHP password_verify() и других методов хеширования пароля без каких-либо дополнительных проверок.
Документация PHP говорит:
Использование PASSWORD_BCRYPT для параметра algo приведет к усечению параметра пароля до максимальной длины 72 символа.
Но, PHP-код MAYBE говорит что-то другое:
Код C за функцией PHP 5.5.0 password_verify(), однако, не ограничивает переданный аргумент напрямую (возможно, на более глубоком уровне внутри алгоритма bcrypt?). Кроме того, PHP-реализация не ограничивает аргумент.
Вопрос:
Является ли password_verify() (и другие функции одного и того же набора функций) уязвимыми к DoS через maxed out POST parameters? Также рассмотрите конфигурационные ситуации на уровне сайта в размерах загрузки POST намного больше, чем 4 МБ.