webってのははじめるのは簡単で、入出力と条件分岐、ループくらいできれば大方のことはできてしまうと思うのですよ。(色々と反論はありそうですが)そして、入出力と条件分岐、ループくらいできる人、いわゆる「初心者」な方がなにかサービスを作ると、大抵なんかしらの脆弱性を入れ込んでしまうんですね。 これは至極当然のことで、「あたりまえ」のことを「あたりまえのように」記述するとそうなってしまう。たとえば、「ユーザの入力をそのまま出力するプログラムを書け」といわれれば、次のようになりますよね。 print $ARGV[0]; これをwebにもっていくと、次のようになる(Content-Typeとかhtmlタグとか省略してるけど)。 print $ENV{QUERY_STRING}; 何も間違っていない。プログラム的にはこれで正しい。でも、実際にはこれではまずいわけです。なぜならこのコードは「出力結果がブ