Любая переменная, которую пользователь может контролировать, злоумышленник также может контролировать и, следовательно, является источником атаки. Это называется "испорченной" переменной и небезопасно.
При использовании $_SERVER многие из переменных можно контролировать. PHP_SELF, HTTP_USER_AGENT, HTTP_X_FORWARDED_FOR, HTTP_ACCEPT_LANGUAGE и многие другие являются частью заголовка HTTP-запроса, отправленного клиентом.
Кто-нибудь знает о "безопасном списке" или незанятом списке переменных $_SERVER?