Июньское обновление SMF 2.1 (2014 год)

Всем привет! Пришла пора очередного отчета о прогрессе в разработке SMF 2.1.

Изменено хеширование паролей 

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

SMF использовал алгоритм хэширования SHA-1 для паролей в SMF 1.1 и SMF 2.0 и, в то время, как SHA-1 до сих пор не имеет известных уязвимостей, это слабый хэш по сегодняшним стандартам и может быть взломан через атаку перебором. И, хотя, это все еще является сложной задачей, возможно, требующей фермы GPU для широкомасштабного использования, это все же представляет угрозу, особенно, для паролей которые часто бывают слабыми или используют словарные слова.

В SMF 2.1 все хэширование изменено на bcrypt. Это намного более безопасный и сильный алгоритм чем SHA-1 и менее восприимчивый к brute force атакам. Любой форум обновляемый с SMF 2.0 или SMF 1.1 перехэширует пароли пользователей при первом логине, а новые пользователи сразу получат пароли с  bcrypt.

Лайки и Упоминания

В SMF теперь можно привлечь внимание пользователей, просто упомянув чей-то ник используя синтаксис @username, аналогично популярным социальным сетям, таким как Facebook и Twitter. Это действие отправит оповещение или email уведомление, в зависимости от настроек пользователя.

Лайки тоже получили новые возможности и усовершенствования, такие как возможность лайкнуть сообщение через AJAX без перезагрузки страницы и задание прав доступа для групп.

Требуемая версия PHP увеличилась

Из-за изменений в хэшировании паролей и других улучшений требующих таких новый функций как замыкания, мы решили поднять минимальную требуемую версию PHP до 5.3.8. SMF 2.1 не будет работать на PHP предыдущих версий.

Преобразование лямбда-функций create_function в настоящие анонимные замыкания

В SMF есть множество вызовов create_function (свыше 200), а create_function требует много памяти и не оптимизируется кэшерами байткода. С PHP 5.3 мы решили воспользоваться возможностью и преобразовать все из них в настоящие замыкания, которые будут удобнее в поддержке и имеют поддержку очистки используемой области памяти сборщиком мусора.

Оптимизация главной страницы

Главная страница улучшена в отношении запросов — старый огромный запрос разбит на три меньших запроса. Также, разделы теперь сортируются явно с помощью сортировочного кэша для всех типов БД, вместо используемого ранее неэффективного условия ORDER BY для Postgres, SQLite. Это также исправляет неправильный порядок сортировки в MySQL 5.6+ не влияя на производительность.

Прощай Карма!

Как и было решено ранее в голосованиях, мы полностью удалили карму, которая теперь станет отдельной самостоятельной модификацией для SMF 2.1.

Постойте! Мы сделали еще кое-что!

  • Несколько улучшений в разрабатываемой теме оформления Curve2, связанных с отзывчивостью.
  • В хлебных крошках автоматически скрываются родительские разделы, если они недоступны пользователю.
  • jQuery обновлен до 1.11.
  • Несколько исправлений касающихся неопределенных индексов, неожиданных результатов и прочего.
  • И несколько других вещей, о которых я наверняка забыл.

Вот и все :), спасибо что дослушали. С каждым коммитом, мы приближаемся к бета-версии, надеясь выпустить ее как можно скорее. Как всегда, все последние изменения, которые я перечислил здесь и многое другое можно увидеть в нашем репозитарии на GitHub, но будьте осторожны, это все еще альфа-версия. Не бойтесь опробовать ее, но не используйте на рабочих форумах, в ней могут быть ошибки или мы можем неожиданно изменить что-то, из-за чего ваш форум станет неработающим.

Оригинал статьи: http://www.simplemachines.org/community/index.php?topic=523335.0

Автор оригинала: Dragooon

Перевод: digger