Возможные коллизии в стандартной реализации хеш-таблицы JavaScript-объекта? - PullRequest
0 голосов
/ 26 мая 2018

Мне недавно довелось подумать о времени доступа к свойствам объекта в JavaScript, и я наткнулся на этот вопрос , который, по-видимому, разумно предполагал, что это должно быть постоянное время.Это также заставило меня задуматься, существует ли ограничение на длину ключа свойства объекта .По-видимому, современные браузеры поддерживают длину клавиш до 2 ^ 30, что, по-видимому, очень хорошо для хэш-функции.Тем не менее,

  • Кто-нибудь знает о том, какие хэш-функции используются двигателями JS?

  • Возможно ли экспериментально создать коллизии средств доступа к свойствам JavaScript?

1 Ответ

0 голосов
/ 26 мая 2018

Кто-нибудь знает о типах хеш-функций, которые используются движками JS?

Да, их разработчики наверняка знают о хеш-функциях и проблемах, с которыми они сталкиваются.На самом деле атак, основанных на хеш-коллизиях , были продемонстрированы в 2011 году на различных языках, в том числе на серверах DOS-атаки againt node.js.

Команда v8 решила проблему, выподробности можно прочитать по адресу https://v8project.blogspot.de/2017/08/about-that-hash-flooding-vulnerability.html.

Возможно ли экспериментальное создание коллизий средств доступа к свойствам JavaScript?

Выглядит так: https://github.com/hastebrot/V8-Hash-Collision-Generator

...