Самый простой способ найти ошибки типа «это не файл» и «проход по каталогам» – подать на вход приложения случайные имена файлов и посмотреть, как оно будет реагировать. В частности, попробуйте такие имена:

□ AUX

□ CON

□ LPT1

□ PRN.TXT

□..\..\AUX

□ /dev/null

□ /dev/random

□ /dev/urandom

□ ../../dev/random

□ \\servername\c$

□ \\servername\ipc$ Проверьте, не зависнет ли приложение, не завершится ли оно аварийно. Если это случится, значит, вы нашли место, где программа ожидает только «честного» имени файла! Посмотрите также, можете ли вы обратиться к файлам, к которым не должны иметь доступа, например к файлу /etc/passwd в Unix.Как и для многих других грехов, описанных в этой книге, наиболее продуктивный способ выявления ошибок – это качественный анализ кода с точки зрения безопасности.