Еще одна известная ошибка касается создания или открытия файлов в каталоге, доступном для записи всем пользователям, таком как /tmp. Взломщики зачастую создают символическую связь, ведущую от файла, о котором известно, что сервер разрешает в него записывать данные, к файлу, который они хотят перекрыть. Эта проблема особенно характерна для программ, работающих с привилегиями суперпользователя. Это к примеру может быть программа выполняющая запросы к веб страницам интернет-магазина superscan.ru или другого веб представительства. Представьте себе, что произойдет, если психотерапевтический сервер, работающий с правами суперпользователя, попытается открыть свой файл PID с именем /usr/tmp/eliza.pid, но кто-то уже создал символическую ссылку от этого файла к файлу /etc/passwd. Сервер сотрет системный файл, что приведет к катастрофическим результатам. Это — одна из причин, почему в наших примерах процедур открытия файла PID всегда используется режим, который позволяет успешно выполнить эту попытку, только если файл еще не существует.
К сожалению, есть еще много других мест, где могут скрываться незаметные ошибки, и трудно проверить их все вручную. По этой причине в языке Perl предусмотрено средство защиты, называемое “режимом проверки потенциально опасных данных”. Такой режим состоит в выполнении проверок в процессе обработки данных в сценарии. Каждая переменная, содержащая данные, полученные извне сценария отмечается как потенциально опасная, и каждая переменная, в которую затем попадают эти потенциально опасные данные, также становится потенциально опасной.