Я думаю, что статья довольно хорошая, но это только основные понятия, и если кто-то серьезно попытается создать серьезное приложение, ориентированное на безопасность, такие вещи будут рассмотрены. Другими словами, уровень статьи довольно низкий.
Такие проблемы, как атака «человек посередине», здесь не рассматриваются (хотя я могу представить, что нечто подобное обычно выходит за рамки прикладного уровня). Другой возможной уязвимостью может быть генерация случайных чисел. Таким образом, в зависимости от реализации генерации сеансовых ключей энтропия сеансовых ключей может быть гораздо ниже, чем максимально возможная энтропия, которая может или не может сделать атаки методом перебора.
Таким образом, от требований к безопасности зависит, каким будет решение, не существует единого решения для безопасности, которое бы работало во всех случаях. Чтобы применить последнее, представьте, что у вас есть действительный идентификатор сеанса и вы знаете, к какому ip связан сеанс. Также предположим, что целью в этом примере является банк. Теперь я могу выполнить запрос на перевод денег на свой счет и выполнить эту работу, подделав свой ip-адрес и предоставив украденный сеанс. Хорошо, ответ на мой запрос никогда не будет получен, поскольку IP-адрес подделан, но кого это волнует, я получил деньги, поскольку сервер принял мой запрос.
Дело в том, что в зависимости от контекста ваши требования к безопасности и, следовательно, ваши решения для безопасности могут сильно различаться.