パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Webプログラミングにおいて、すべての言語はセキュアでない」記事へのコメント

  • どんな環境でも、穴があるようにコーディングしたら、セキュアじゃないでしょ。

    何やったら問題かを、わかった上でコーディングしないと。

    Web上のセキュリティホールって、何をさすのかも問題だし。SQLインジェクションなのか?CSRFなのか?

    ただ、PHPの出力がデフォルトでhtmlspecialcharsがかかった状態で出力されるべきである、というのは同意だな。それだけでも(詳しくない人間が当座で書いた)初心者コードがかなり助かったと思う。あと、PDO標準装備であるべきだったと思う・・・PHP登場時は、クラスが無かったら無理か。

    magic_quote, magic_quote_gpcってのもあるみたいだけど、評判悪いし。

    --
    -- gonta --
    "May Macintosh be with you"
    • Re:言語? (スコア:3, すばらしい洞察)

      by yatakaras (37253) on 2010年05月14日 9時18分 (#1763782)

      現状では言語仕様自体がセキュアなんてことはないと思う。

      もし、存在するとすればXSSやSQLインジェクションなんか書いたら
      コンパイルエラーかワーニングで指摘してくれる新世代の言語なんだろう。

      ただそれでも環境設定一つで脆弱性は生み出されてしまう。
      言語だけでセキュアにしようなんていうのはその考えが「脆弱性」
      セキュリティ教育による「技術者意識の向上」が一番の解決策だろう。

      親コメント
      • by taka2 (14791) on 2010年05月14日 13時15分 (#1763946) ホームページ 日記

        > もし、存在するとすればXSSやSQLインジェクションなんか書いたら
        > コンパイルエラーかワーニングで指摘してくれる新世代の言語なんだろう。

        旧世代の perl4 の時代から、perl には taint モードがありますよ。
        外部から入力されたデータは「汚染されている」ものとマークされ、
        変数代入などで汚染が伝播していきます。
        でもって「危険なオペレーション」に「汚染されたデータ」を入れるとエラーになる。

        最大の問題は、デフォルトはオフで、-Tオプションを付けないとtaint mode にならないことですかね。
        setuid している場合は自動でオンになるので、普通のスクリプト言語として使う分には困らないのですが…

        あと、taint mode を使ってると、たまに汚染除去がめんどくさくなって
        「$a=($a=~/^(.*)$/)[0];」みたいなコードを書いちゃったりして、

        > セキュリティ教育による「技術者意識の向上」が一番の解決策だろう。

        という意見はその通りだと思う耳が痛い話ですが…

        親コメント

物事のやり方は一つではない -- Perlな人

処理中...