説明 この質問では、TOCTOUを利用して、ユーザーがアイテムの価格を含む一時ファイルを変更できるようにしています。 ソフトウェア開発では、Time of Check to Time of Use(TOCTOU)は、条件(セキュリティクレデンシャルなど)のチェックとそのチェックの結果の使用の間のシステムの変更によって引き起こされるソフトウェアバグのクラスです。これは競合状態の一例です。 簡単な例は次のとおりです。ユーザーがページを編集できるようにし、管理者がページをロックして編集できないようにするWebアプリケーションについて考えてみます。ユーザーがページの編集をリクエストし、コンテンツの変更に使用できるフォームを取得します。ユーザーがフォームを送信する前に、管理者はページをロックします。これにより、編集ができなくなります。ただし、編集はすでに開始されているため、ユーザーがフォームを送信すると、それらの編集(既に行われている)が受け入れられます。ユーザーが編集を開始すると、適切な認証がチェックされ、ユーザーは実際に編集を許可されました。ただし、承認は後で編集が許可されなくなったときに使用されました。 TOCTOUの競合状態は、Unixでファイルシステムの操作間で最も一般的ですが、ローカルソケットやデータベーストランザクションの不適切な使用など、他のコンテキストで発生する可能性があります。