Я создаю фильтр для файлов, поступающих на компьютер Unix. Я только хочу разрешить проход текстовым файлам, не похожим на сценарии.
Для проверки простого текста я проверяю исполняемый бит файла и использую тест -T-файла из perl. (Я понимаю, что это не 100%, но он будет ловить двоичные файлы, которые я больше всего хочу избежать). Я думаю, что этого будет достаточно, но любые предложения приветствуются.
Мой главный вопрос заключается в распознавании, когда простой текстовый файл является скриптом. Каждый сценарий, который я когда-либо писал, начинался со строки #!
, поэтому моя первая мысль - прочитать в первой строке файла и заблокировать любой, содержащий его. Существуют ли обычные текстовые файлы, не относящиеся к сценариям, которые начинаются со строки #!
, которые я отмечу как ложно-положительные? Существуют ли лучшие / дополнительные методы идентификации скрипта?