Нормально ли так делать?
Может лучше просто записать что то в сессию, например, $_SESSION['auth'] = 1
Да.Но ведь ее смогут подделать? Или такое нельзя делать?
Не могут, пользователь знает лишь идентификатор сессии на сервере, изменить данные в ней он не может.
Сессии хранятся на сервере, Куки хранятся на стороне клиента, т.е. к сессиям доступ может получить только лишь тот, кто может получить доступ и к самим файлам на сервере, а к кукам доступ может получить сам пользователь, вот они то и не безопасны.
Это нормально, вряд ли у вас там 100500 тыс активных пользователей.