WEB AI SECURITY / 架空データによるローカル実験 / 2026年10月21日

上限は5件。それでも同時受付で46〜60件を許可した

確認と更新を分けたAでは受付数と台帳が不一致。
一つのロックで処理したBは、10回とも受付5件・台帳5件でした。

各回60件。通常4条件は各10回。値に幅がある欄は1回あたりの最小〜最大です。異常2条件は各1回。実メールは送っていません。

条件回数受付上限拒否内部エラー模擬送信台帳
A・順次10555055
A・同時1046〜600〜14046〜605
B・順次10555055
B・同時10555055
B・書込不可1006000
B・記録破損100600読取不能

実行した条件

説明用PHP CLIプログラムを、順次1プロセス・同時12プロセス×各5件で実行。架空の問い合わせ60件を使用し、毎回台帳を0へ初期化しました。Aは読取時と書込時を別々にロック、Bは読取・上限判定・更新を一つの排他ロックに収めています。

競合を観察するため、受付可能と読んだ直後にA・Bとも20msの人工待機を入れました。Aは読取ロックを解いたあと、Bはロック内で待機します。OSの実行順によって結果は変わります。

macOS-15.7.7-x86_64-i386-64bit / PHP 8.5.5 (cli) (built: Apr 7 2026 16:24:10) (NTS) / Python 3.9.6

各10回の受付数

A同時は46〜60件、その他3条件は全10回5件

記録が使えない場合

Bの書込不可は台帳を読取専用にし、OSが書込用オープンを拒否することを確認。破損条件はJSONの内容を壊しました。各60件とも内部エラーとなり、受付・模擬送信は0件です。容量不足や書込み途中の障害は試していません。

この試験で分かる範囲

単一ホスト・単一共有台帳の説明用モデルです。HTTPフォーム、IP別・時間窓の制限、実メールの到達、DDoS耐性、複数サーバー、処理途中の停止による台帳と送信の整合性は未検証。人工待機を含むため、現実の発生頻度や処理速度を示しません。

全43試行の測定記録

通常40回+異常2回+正常入力1件の事前確認。全2,521件を受付・拒否・内部エラーへ分類。タイムアウト0件。受付IDと模擬送信IDを照合しました。

試験受付拒否エラー模擬送信台帳処理中の最大重複
smoke100111
A-sequential-015550551
A-sequential-025550551
A-sequential-035550551
A-sequential-045550551
A-sequential-055550551
A-sequential-065550551
A-sequential-075550551
A-sequential-085550551
A-sequential-095550551
A-sequential-105550551
A-concurrent-01600060512
A-concurrent-02600060512
A-concurrent-034614046512
A-concurrent-04582058512
A-concurrent-05573057512
A-concurrent-06600060512
A-concurrent-07600060512
A-concurrent-08600060512
A-concurrent-09600060512
A-concurrent-10600060512
B-sequential-015550551
B-sequential-025550551
B-sequential-035550551
B-sequential-045550551
B-sequential-055550551
B-sequential-065550551
B-sequential-075550551
B-sequential-085550551
B-sequential-095550551
B-sequential-105550551
B-concurrent-0155505512
B-concurrent-0255505512
B-concurrent-0355505512
B-concurrent-0455505512
B-concurrent-0555505512
B-concurrent-0655505512
B-concurrent-0755505512
B-concurrent-0855505512
B-concurrent-0955505512
B-concurrent-1055505512
B-readonly0060008
B-corrupt00600読取不能3

測定表CSV

記事へ戻る