StackOverflowで最もよく使用されるJavaコードスニペットにエラーが含まれています

Java

に掲載された研究 2018年XNUMX月 Empirical SoftwareEngineering誌に掲載 学者によるSebastianBaltesとStephanDiehl で提供されているコードスニペットが からの質問への回答 AndreasLundbladによる2010年XNUMX月のスタックオーバーフロー、PalantirのJava開発者、 これは、コミュニティプラットフォームで最も広く使用されているJavaコードスニペットです。

しかし、 先週の投稿で、 Lundbladは、コードに欠陥があり、バイト数を誤って変換していると説明しました 人間が読める形式で。 問題のコードは7を超える推奨事項を蓄積しており、多くのプロジェクトにも含まれており、GitHubのリポジトリに約XNUMX回見つかります。

注目に値するのは エラーはユーザーによって見つかりませんでした プロジェクトでこのコードを使用したのは誰ですか しかし、ヒントの元の作者によるものです。

考慮されるコードは、バイトサイズを読み取り可能な形式に変換しました。たとえば、110592は次のように変換されます。 「110.6kB」または「108.0KiB」。 このコードは、対数を使用して最適化された、以前に提案されたアドバイスの変形として提案されました。値は、ループ内の初期値を«で除算することによって決定されました。10 18、10 15、10 12、10 19、10 6、10および3″ 、除数がバイト単位の元の値よりも大きい場合でも。

最適化されたバージョンでの計算が不正確なため (長い値のオーバーフロー)、 非常に大きな数を処理した結果 (exabytes)は現実に対応していませんでした。

Lundbladは、コードに些細な変換エラーが含まれているため、ファイルサイズの見積もりがわずかに不正確になるだけだと説明しました。 とはいえ、それよりもはるかに悪いと推定されています。

コードにセキュリティの脆弱性が含まれている可能性があります、 例えば。 その場合、脆弱なアプリケーションをすべて修復するのに数か月から数年かかり、ユーザーが攻撃にさらされることになります。

アドバイスの作者も問題に注意を向けようとしました ソースを参照せず、ライセンスを指定せずに例を使用する。

「複数の人間のコーダーが関与する共同セッションでは、CWE(Common Weakness Enumeration)の指示に従って、セキュリティの脆弱性について各コードを手動で評価しました。

少なくとも72,483つのGitHubがホストするプロジェクトで使用された69の調査済みコードスニペットから、29のタイプに分類された合計XNUMXの脆弱なコードスニペットが見つかりました。 研究されたコードスニペットの多くはまだ修正されていません」と研究者たちは報告書で述べています。

69の脆弱なコードスニペット StackOverflowで見つかりました 合計2859のGitHubプロジェクトで再利用。 Stack Overflowの共有コードスニペットの品質を向上させるために、StackOverflowユーザーがプラットフォームにダウンロードするときにスニペットの脆弱性を検索できるブラウザ拡張機能を開発しました。

ただし、研究者の警告にもかかわらず、開発者は分析を実行せずにStackOverflowコードをプロジェクトにコピーします。

アシュカンサミ、IT准教授、 エンジニアリングと情報技術 イランのシラズ大学で、

「この調査は、障害のあるコードがStackOverflowからGitHubにどのように移行するかを調査する試みでした。 基本的に、私たちが示しようとしているのは、Stack Overflowコードを詳しく調べずに使用すると、アプリケーションの脆弱性につながる可能性があるということです」とSami氏は述べています。 この研究は、2017年の学術論文にも言及しています。

この記事によると、Stack Overflowに投稿された1161の安全でないコードスニペットが、GooglePlayで利用可能な1.3万のAndroidアプリで使用されました。

以前の調査に加えて、作成者を指定せずにStackOverflowコードを使用した開発者の46%、75%はコードがCC BY-SAでライセンスされていることを知らず、67%はこれが帰属の必要性を意味することを知りませんでした。

他の研究のデータによると、サンプルコードの使用は、コードのバグのリスクだけでなく、脆弱性にも関連しています。

たとえば、StackOverflowで72483個のC ++コードサンプルを分析した後、研究者は、最も人気のある推奨事項のリストに含まれる69個のサンプル(0.09%)で深刻な脆弱性を特定しました。

出典 https://programming.guide


コメントを最初に

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。