Простейший способ обнаружить этот грех во время анализа кода – найти все функции ввода/вывода, в особенности те, где используются имена файлов. Выявив такую функцию, задайте себе следующие вопросы:

□ Откуда поступает имя файла? Можно ли ему доверять?

□ Используется ли это имя файла более одного раза для проверки существования и манипулирования файлом?

□ Находится ли файл в той части файловой системы, к которой потенциально может иметь доступ противник?

□ Может ли противник задать имя так, чтобы оно указывало на файл, к которому он не должен иметь доступа?

Вот перечень типичных функций и операторов ввода/вывода, которые следует искать в программе.

Использование этих функций не обязательно приводит к каким–либо проблемам. Например, в современных системах Unix самые популярные функции создания временных файлов атакам не подвержены. Но если ваша программа работает в слегка устаревшей системе, то неприятности возможны.