Я думаю, что вы неправильно понимаете session_start ()
Что происходит с session_start, так это то, что да, он создаст файл для отдельного пользователя. Но в следующий раз, когда вы вызовете session_start (), он будет использовать этот же файл для того же пользователя, потому что у пользователя есть cookie в его системе, который сообщает ему, какой идентификатор использовать. Чтобы массив $ _SESSION был доступен, вы должны вызывать session_start () на каждой странице.
Вполне возможно, что кто-то может разыграть сценарий, как вы только что описали.
На самом деле, да, у хакера всегда может быть робот, который очищает свои куки-файлы после каждой попытки, делает 10 000 запросов и, возможно, создает проблему с записью на диск, но я действительно не стал бы беспокоиться об этом слишком сильно, потому что файлы крошечные, намного меньше, чем сценарий, который вы пишете. Вам бы пришлось написать намного больше файлов (размером в миллионы или миллиарды), чтобы создать проблему.
Если вы действительно хотите увидеть, какие эффекты будут на вашем сервере. Напишите скрипт, который создает файлы в каталоге с эквивалентом 2 абзаца текста. и поместите его в цикл для 10 000 файлов.
Если вы потом беспокоитесь о возможном влиянии, я предлагаю внедрить трекер, который может видеть большое количество посещений, приходящих на сайт с одного IP-адреса, а затем либо временно блокировать IP-адрес, либо делать то, что Google делает и просто предоставляет им статическую страницу капчи, которая не требует много ресурсов для обслуживания.
Итак, возвращаясь к актуальному «вопросу»:
Я установил сеанс для каждого пользователя, который когда-либо посещал мой сайт, потому что я использую сеансы не только для аутентификации пользователя, но и для отслеживания других переменных на моем сайте. Поэтому я считаю, что вы должны установить его, даже если они не вошли в систему.