ソフトウェア セキュリティがすべてのプログラマーに必要なスキルであるのはなぜですか?

ソフトウェア セキュリティがすべてのプログラマーに必要なスキルであるのはなぜですか?

プログラマーまたは開発者として、安全なアプリケーションを作成することの重要性を無視することはできません。

ソフトウェア セキュリティは、ソフトウェアの潜在的な脆弱性を特定し、それらを保護するために必要な予防措置を講じることにより、悪意のある攻撃の管理に取り組みます。

開発者がバグを無視したり、既存のバグを修正しながら新しいバグを導入したり、アップデートによって新しい脆弱性を導入したりする可能性があるため、ソフトウェアが 100% 安全であることは決してありません。

ただし、すべてのソフトウェア開発者が安全なソフトウェアを確実に作成するために使用できる主な方法が 2 つあります。最初から安全なコードを作成し、そのコードを効果的にテストすることが重要です。

ソフトウェア セキュリティがすべてのプログラマーに必要なスキルであるのはなぜですか?

ソフトウェアのセキュリティは非常に重要な役割を果たします

安全なコードの書き方

安全なコードを書くには、やるべきことは 1 つだけ、それはエラー処理です。ユーザーがアプリケーションに提供できるすべての潜在的な値を予測し、その値に対するプログラム内で応答を生成できれば、安全なコードを作成していることになります。

優れた開発者は皆、自分が開発するアプリケーションについてほぼすべてを知っているため、これは思っているよりもはるかに簡単です。したがって、アプリケーションがタスクを実行するために必要なすべての値 (承認された値) を理解し、存在する可能性のあるその他の値がすべて未承認の値であることを理解する必要があります。

安全なコードを書く

ユーザーから 2 つの整数値のみを受け取り、それらに対して加算演算を実行するプログラムを作成するとします。優れた開発者は、アプリケーションについてすべてを理解できるようになりました。あなたはこのプログラムが受け入れるすべての値 (整数値) を知っており、このプログラムが実行するタスク (加算演算) も知っています。

Javaでプログラムを作成する例

import java.util.Scanner;
public class Main {
//The main function that executes the program and collects the two values
public static void main(String[] args) {
System.out.println("Please enter your two integer values: ");
int value1;
int value2;
Scanner input = new Scanner(System.in);
value1 = input.nextInt();
value2 = input.nextInt();
addition(value1, value2);
input.close();
}
//the function that collects the two values and displays their sum
private static void addition(int value1, int value2) {
int sum;
sum = value1 + value2;
System.out.println("The sum of the two integer values you entered: "+ sum);
}
}

上記のコードは、要件に正確に一致するアプリケーションを作成します。実行すると、コンソールに次の行が生成されます。

Please enter your two integer values:

ユーザーが 2 つの整数値をコンソールに入力するまで、アプリケーションは一時停止したままになります (最初の値を入力し、Enterキーを押し、これを繰り返すことを意味します)。

ユーザーがコンソールに値54を入力すると、プログラムは次の出力を生成します。

The sum of the two integer values you entered: 9

それは素晴らしいことです。プログラムは、本来の動作を正確に実行します。ただし、悪意のあるユーザーがアプリケーションに「g」などの整数以外の値を入力すると、問題が発生します。これは、アプリケーションに未承認の値から保護するコードがないためです。

この時点で、アプリケーションはクラッシュし、アプリケーションに潜在的なゲートウェイが作成されるため、ハッカーは次に何をすべきかを正確に知ることができます。

プログラムセキュリティの例

import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
//The main function that executes the program and collects the two values
public static void main(String[] args) {
try {
System.out.println("Please enter your two integer values: ");
int value1;
int value2;
//using the scanner class to read each input from the user,
//and assign it to is respective variable (throws an exception if the values are not integers)
Scanner input = new Scanner(System.in);
value1 = input.nextInt();
value2 = input.nextInt();
//calls the addition function and passes the two values to it
addition(value1, value2);
//closes the input stream after it has come to the end of its use
input.close();
//handle all the errors thrown in the try block
}catch(InputMismatchException e){
System.out.println("Please enter a valid integer value.");
}catch(Exception e) {
System.out.println(e.getMessage());
}
}
//the function that collects the two values and displays their sum
private static void addition(int value1, int value2) {
int sum;
sum = value1 + value2;
System.out.println("The sum of the two integer values you entered: "+ sum);
}
}

上記のコードは例外処理を実行するため安全です。したがって、整数以外の値を入力すると、プログラムは次のコード行を生成します。

Please enter a valid integer value.

例外処理とは何ですか?

ソフトウェア セキュリティがすべてのプログラマーに必要なスキルであるのはなぜですか?

例外処理

基本的に、例外処理はエラー処理の最新バージョンであり、エラー処理コードを通常の処理コードから分離します。上記の例では、すべての通常の処理コード (または例外を引き起こす可能性のあるコード) はtryブロック内にあり、すべてのエラー処理コードは catch ブロック内にあります

上の例をよく見ると、catch ブロックが 2 つあることがわかります。最初の引数は、 InputMismatchException引数を受け取ります。これは、整数以外の値が入力された場合にスローされる例外の名前です。 2 番目の引数はException引数を受け取り、その目的は開発者がテスト中に見つけられなかったコード内の例外を見つけることであるため、これは重要です。

コードを確認してください

コードのテストと再テストの力を過小評価してはなりません。多くの開発者 (およびアプリ ユーザー) は、ソフトウェアが一般公開された後に新たなバグを発見します。

コードを徹底的にテストすることで、考えられるあらゆる状況でアプリケーションが何を行うかを確実に把握でき、データ侵害からアプリケーションを保護できるようになります。

上の例を考えてみましょう。完了したら、整数値のみを使用してアプリケーションをテストしたらどうなるでしょうか?実際にはそうでないにもかかわらず、潜在的なエラーをすべて特定できたと思ってアプリケーションを終了する場合があります。

実際には、潜在的なエラーをすべて特定することはできないかもしれません。これが、エラー処理がコードのテストと並行して機能する理由です。上記のプログラムをテストすると、特定の状況で発生する潜在的なエラーが明らかになります。

ただし、テスト中に表示されなかった他のエラーが存在する場合は、上記のコードの 2 番目の catch ブロックがそれを処理します。

データベースのセキュリティ

アプリケーションがデータベースに接続する場合、そのデータベースへのアクセスを防ぐ最善の方法は、アプリケーションのすべての側面が安全であることを確認することです。しかし、アプリケーションがデータベースへのインターフェイスを提供することだけを目的として設計されている場合はどうなるでしょうか?

ここからが少し面白くなります。最も基本的な形式では、データベースを使用すると、ユーザーはデータを追加、取得、更新、削除できます。データベース管理システムは、ユーザーがデータベースと直接対話できるようにするアプリケーションです。

ほとんどのデータベースには機密データが含まれているため、整合性を維持し、このデータへのアクセスを制限するには、アクセス制御という要件があります。

アクセス制御

アクセス制御は、データベースにアクセスできる人の種類を決定し、アクセスの種類を制限することにより、データベースの整合性を維持しようとします。したがって、優れたデータベース管理システムでは、誰がいつデータベースにアクセスし、何をしたかを記録できなければなりません。

また、登録ユーザーが操作を許可されていないデータにアクセスしたり、データを編集したりすることを防ぐこともできます。


Windows 10で欠落しているデフォルトの電源プランを復元する方法

Windows 10で欠落しているデフォルトの電源プランを復元する方法

このガイドでは、Windows 10でデフォルトの電源プラン(バランス、高パフォーマンス、省電力)を復元する方法を詳しく解説します。

Windows 10 で BlueStacks 5 の仮想化 (VT) を有効にする方法

Windows 10 で BlueStacks 5 の仮想化 (VT) を有効にする方法

仮想化を有効にするには、まず BIOS に移動し、BIOS 設定内から仮想化を有効にする必要があります。仮想化を使用することで、BlueStacks 5 のパフォーマンスが大幅に向上します。

WiFi接続に接続する際のドライバーの切断を修正

WiFi接続に接続する際のドライバーの切断を修正

WiFi 接続に接続するときにドライバーが切断されるエラーを修正する方法を解説します。

Windows での DIR コマンドの使用方法

Windows での DIR コマンドの使用方法

DIR コマンドは、特定のフォルダーに含まれるすべてのファイルとサブフォルダーを一覧表示する強力なコマンド プロンプト コマンドです。 Windows での DIR コマンドの使用方法を詳しく見てみましょう。

ソフトウェアを使わずに Windows 10 アプリをバックアップおよび復元する方法

ソフトウェアを使わずに Windows 10 アプリをバックアップおよび復元する方法

ソフトウェアなしで Windows 10 アプリをバックアップし、データを保護する方法を説明します。

Windows でローカル グループ ポリシー エディターを開くための 11 のヒント

Windows でローカル グループ ポリシー エディターを開くための 11 のヒント

Windows のローカル グループ ポリシー エディターを使用して、通知履歴の削除やアカウントロックの設定を行う方法を説明します。

最高の IP 監視ツール 10 選

最高の IP 監視ツール 10 選

重要なリソースを簡単に監視及び管理できる<strong>IP監視</strong>ソフトウェアがあります。これらのツールは、ネットワーク、インターフェイス、アプリケーションのトラフィックをシームレスに確認、分析、管理します。

AxCrypt ソフトウェアを使用してデータを暗号化する方法

AxCrypt ソフトウェアを使用してデータを暗号化する方法

AxCrypt は、データの暗号化に特化した優れたソフトウェアであり、特にデータ セキュリティに優れています。

Windows 10 Creators Updateのアップデート後にシステムフォントを変更する方法

Windows 10 Creators Updateのアップデート後にシステムフォントを変更する方法

システムフォントのサイズを変更する方法は、Windows 10のユーザーにとって非常に便利です。

Windows 10で機内モードをオフにできないエラーを修正する方法

Windows 10で機内モードをオフにできないエラーを修正する方法

最近、Windows 10にアップデートした後、機内モードをオフにできない問題について多くのユーザーから苦情が寄せられています。この記事では、Windows 10で機内モードをオフにできない問題を解決する方法を説明します。