【初学者向け】セキュリティ対策入門0〜環境構築編〜本記事の目標OSコマンドインジェクションの概要、原因、対策について理解することです。以下の内容を終えていることです。【初学者向け】セキュリティ対策入門0〜環境構築編〜どうでもいいお話あまり主要ではない脆弱性についてはこちらの番外編で扱っていきます。主要ではないというのは被害ケースをあまり耳にしないという意味で、脆弱性をつかれたときの被害が少ないというわけではないので悪しからず。概要OSコマンドについて不正な命令を入れ込むことです。こちらのSQLインジェクションがSQL文について不正な命令を入れ込むことならば、こちらはOSコマンドというわけです。実際に見てみましょう。いえ、番外編なのでGitHubにソースはないので本記事上で紹介します。$file_list;PHPファイルでOSコマンドを実行したい場合、shell_execという関数を使う必要があります。{任意のOSコマンド}のような文字列をクエリストリングスのparamに与えられたときです。OSコマンドについて学んだことがある方なら、これのやばさが伝わると思います。自由なOSコマンドが使えれば任意のファイルを書き換えたり削除したり様々な被害をもたらすことが可能です。入力値をそのままOSコマンドの一部に渡していることです。対策そもそも使わないOSコマンドをユーザの入力で行わなければいけないケースというのはなかなかないはずです。あったとしてもライブラリを使用するなどの選択肢を検討する必要があります。そもそも使わない観点では、php.iniで特定の関数を実行不可にできるので本対策を行う場合はそれも合わせて行った方がいいでしょう。エスケープする上述の通り、こういった処理は実装しないのが一番です。いえ、どうしても実装したい場合はエスケープする関数もあります。escapeshellargという関数です。具体的にすると以下のような感じです。今回の内容は以上です。最後までご覧いただきありがとうございました。