sysopenで安全にファイルをopenする

back
外部入力値をファイル名としてファイルを open する場合は、
| がファイル名に含まれているとコマンドとして実行される。

sysopen を使えば、指定されたファイル名は特別な解釈はされずに open されるので
意図せず外部コマンドを実行されることはない

sysopen(FH, $file, O_RDONLY);


または、-f で予めファイルがあるかをチェックして open を使っても良いかも。

back