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

NSA、可能な限りメモリ安全なプログラミング言語を使うことを推奨」記事へのコメント

  • by Anonymous Coward on 2022年11月13日 22時08分 (#4359299)

    CやC++は素晴らしいという人も居るけど、セキュリティ的には可能な限り避けるべき代物っていうのは当たり前の話だね。
    気を付けたって規模がデカくなればどっかで絶対やらかすのは避けられないと思うのよね。
    というか大企業だって著名オープンソースだってやらかしてるのに、お前はきちんとできるというのかと。
    組み込みとかなら仕方ないけど。

    C#ならunsafe、Javaならsun.misc.Unsafe、その他色々壊せるけどね。
    ランタイムや参照してるネイティブのライブラリや実行環境やその他諸々で脆弱性があればどうにもならないというか、それ以前にメモリ安全以外の危険は色々あるけどね。

    • by Anonymous Coward

      CやC++が素晴らしいのは、だいたいなんでも書けることであって、書こうと思えば無茶苦茶も書ける。
      これから起こすプロジェクトでは、制約のきつい言語のほうが安全だろうし、CやC++はその知見を取り込まなければならない。
      制約をも記述できてこそ、C++だと自分は思う。

      • by Anonymous Coward

        アセンブラほど「理屈の上では」ってわけではないが、でも現実的な意味でCやC++で何でも書けるかと言われれば疑問符が付く。
        何しろ大規模開発は精神と難易度的に厳しい。
        スマホアプリもコンソールツールもウェブアプリもWindows向けアプリもって意味じゃC#だし、スマホやデスクトップ向けアプリでもうちょい良い感じならDartだし、30億のデバイスで走ると言えばJavaだし、その辺も割と何でもと言えるレベルだと思うけどな。
        「覚えておいて損はしない」ってのは否定しないけど最新規格や細部まで追うべきかは微妙。

        • by nim (10479) on 2022年11月14日 0時45分 (#4359332)

          > スマホアプリもコンソールツールもウェブアプリもWindows向けアプリもって意味じゃC#だし

          今どきはこういうのも、ガチなやつじゃなければ JavaScript でできちゃうからずいぶんハードル下がりましたね。

          親コメント
          • by Anonymous Coward

            WebGLあるし、ガチなやつでもマルチプラットフォームなものはJavaScriptが増えてるのでは?

        • by Anonymous Coward

          https://jp.quora.com/kumikomi-shisutemu-deha-doushite-C-ga-C-ni-shu-tt... [quora.com]

          組み込み系なら損はないどころかリアルタイム性でも現役
          いつかは進歩するだろうけど当面先だろうね

          あとはCOBOLみたいに特殊な環境で脆弱性に対処する荒業もw

        • by Anonymous Coward

          C言語内にインラインアセンブラや、アセンブラコードをマージして使うことで、
          その欠点を補ってるのが、OSのカーネルや、デバイスドライバだね

          どうしてもアセンブラじゃないと出来ないことや、パフォーマンスのためにアセンブラが必要なところのみ、
          アセンブラを使ってる

      • by Anonymous Coward

        Rustが台頭して、C++は完全にその役目を終えたのでは?
        比較すると、C++選ぶメリットがないよね?

        • by Anonymous Coward

          選ぶことはなくても、既存の資産ってのがあるから(強化は必要)。
          極端な話、一晩でひっくり返したようにChromeをRustに移行したりはしないと思うので。
          たとえコンバータを書いたとしても。

        • by Anonymous Coward

          Rust信者はとっととライブラリ移植作業に戻れ

      • by Anonymous Coward

        ひとつのアプリを開発するたびにそれ専用のインタプリタを開発していたこともあったんだよ。アプリの大部分はデータとして記述して、その解釈を行う小さいプログラムがあるような作り。そんな作りの場合でも C/C++ よりも何らかのスクリプト言語の方がいいね。

      • by Anonymous Coward

        危険だが使いこなせば速い。中二心をくすぐるね。
        ピーキー過ぎてお前にゃ無理だよとか言ってみたい。

    • by Anonymous Coward

      そのメモリ安全で防げるもの以外の危険が相対的に少ない、という話なのだが。

    • by Anonymous Coward

      当たり前だけど「セキュリティ的には可能な限り避けるべき代物」なんかこの物言いには違和感。

      C/C++は原理的にメモリ管理のセキュアコーディングは開発者に任されているから、
      開発者はその要件が求められるプログラムではセキュアなコーディングが求められるというだけだろう。

      どんな開発環境だって開発者に任されている領域は開発者の責務において実装しなければならない。

      • by Anonymous Coward on 2022年11月14日 12時58分 (#4359512)

        ここは高木先生 [archive.org]を召喚しないと。

        > > 悪しき習慣です。CやC++がプログラミングに携わる人のすべての必携の言語
        > > として蔓延りかけてしまったことは、世界の情報産業の生産性をいったいど
        > > れだけ損失させたか計り知れません。
        >
        > すべての必携の言語にCがなり得たのは、それだけ優れた言語だったからでしょう。

        いいえ。一部の人が使うのには優れていますが万人が使うべきものではあり
        ません。C以外が普及しなかったのは、様々な背景があるのであって、Cが優
        れていたからではありません。

        > 生産性を損失させたのは、ポインタの使用方法を誤った、Cに熟練していない
        > プログラマの存在だと思います。

        熟練できないプログラマが溢れかえるような言語は優れていないのです。
        (マニアには他人との差別化ができてご満悦でしょうが。)

        親コメント
        • by Anonymous Coward

          そりゃひろみちゅ先生がまだ若くてちょっと言いすぎちゃったんですよ。

          • by Anonymous Coward

            この頃はキレッキレですなあ。

            > のようなポインタ演算を使う人を、まるでかわいそうなプログラマであるかのような
            > 言い方

            かわいそうですね。

            > > 不幸だったのは、1990年代前半あたりで、誰もがC言語を学ばざるを得なくな
            > > ってしまったことでしょう。
            >
            > Cを学ぶことが、まるで不幸であることのような言い方などは

            不幸ですね。

            > Cプログラマに不快感を抱かせるのに必要十分であると思います。

            ちゃんとわかって使い分けているノンマニアなCプログラマは、不快に思わな
            いでし

      • by Anonymous Coward

        そもそも今時はメモリ安全なんか、開発者に任せる必要性がないだろ。
        無駄に責任を負わせるのは止めようと言う話。

      • by Anonymous Coward

        おかしなことを書いたらコンパイルエラーになるように、そういうクラスライブラリが処理系に備わっててもいいんだぞ。
        Rustはそれを達成してるし、C++の今後には、そういうのを期待してる。
        静的解析もだいぶできるようになったけど、もっと、できることを自ら(pragmaいっちょでとかで)絞り込めるように。

        • by Anonymous Coward

          勿論そういう事を言ってる。
          そのクラスライブラリを使えばいいのだし、使わないのなら開発者が実装した部分の挙動は開発者が保証しなければならない。

        • by Anonymous Coward

          期待するより、既にあるなら乗り換えたほうが良くない?

          • by Anonymous Coward

            C++はけっこうやりこんでるから、俺はC++の改修の仕事を取りに行く。そういう価値観なんだよ。

            • by Anonymous Coward

              脆弱性を積み重ねるお仕事、ご苦労さまです。

              • by Anonymous Coward

                いやだなあ。だから、C++に進化してもらうんじゃないか。

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

処理中...