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

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

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

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

開発者がバグを無視したり、既存のバグを修正しながら新しいバグを導入したり、アップデートによって新しい脆弱性を導入したりする可能性があるため、ソフトウェアが 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のタスクバーにWi-Fiアイコンがありません。修正方法は次のとおりです。

Windows 10のタスクバーにWi-Fiアイコンがありません。修正方法は次のとおりです。

何らかの理由 (Windows へのアップグレードや Windows 10 への新規インストールなど) により、このアイコンが消えます。修正方法は次のとおりです。

Windows 10でデフォルトのフォルダー表示設定をリセットする方法

Windows 10でデフォルトのフォルダー表示設定をリセットする方法

このガイドでは、Windows 10 でフォルダー ビューの設定、プレビューの詳細と幅、ナビゲーションの幅をデフォルトのオプションにリセットする方法を説明します。

あなたのための愛らしい赤ちゃんの写真撮影のアイデア

あなたのための愛らしい赤ちゃんの写真撮影のアイデア

下の画像は、赤ちゃんの視点と位置によってどのように美しい写真が撮れるかを示す良いアイデアです。赤ちゃんの人生の貴重な最初の瞬間を守るために一緒に見守りましょう

Windows 10 用の高品質 4K テーマのコレクション

Windows 10 用の高品質 4K テーマのコレクション

Windows 10 のテーマ 4K は、さまざまなテーマをまとめて、コンピューターに新しい変化をもたらします。

Windows 10 でダーク モードをオンにする

Windows 10 でダーク モードをオンにする

Windows 10 はデフォルトで、ウィンドウの背景からタイトル バーに至るまで多くの明るい白の色を使用して、人目を引くように設計されています。さ��に、Microsoft は、Windows 10 にダーク テーマと呼ばれる別のテーマ セットも統合しています。ただし、デフォルトではダークテーマは非表示になっているため、この機能について知っているユーザーはほとんどいません。

Windows Defender ウイルス対策は、これまでよりも迅速にマルウェアを検出して削除する機能を備えています

Windows Defender ウイルス対策は、これまでよりも迅速にマルウェアを検出して削除する機能を備えています

昨年 4 月にリリースされた Windows 10 Creators Update で、Microsoft はクラウド保護サービスを利用して、更新された Windows Defender ウイルス対策アプリケーションを提供しました。このサービスの何が特別なのか見てみましょう!

Windows 10/11でWebサイトの画像をダウンロードするためのホットキーを設定する方法

Windows 10/11でWebサイトの画像をダウンロードするためのホットキーを設定する方法

Windows に、ブラウザーで押すと指定されたフォルダーに画像をすばやくダウンロードできるユニバーサル カスタム ホットキーがあれば素晴らしいと思いませんか?このようなホットキーは、Web 上の画像をダウンロードするための便利なショートカットになります。

システム回復オプションについて学ぶ

システム回復オプションについて学ぶ

システム回復オプション メニューは、Windows の修復、回復、診断ツールのグループです。 Windows 8 以降、システム回復オプションは詳細スタートアップ オプションに置き換えられました。

ESET NOD32 レビュー: 強力なカスタマイズ機能を備えたウイルス対策プログラム

ESET NOD32 レビュー: 強力なカスタマイズ機能を備えたウイルス対策プログラム

ESET NOD32 は、ブラチスラバに本社を置き、世界中で 1 億人のユーザーを抱える ESET の主力製品です。これは優れたウイルス対策ソフトですが、競合他社ほど追加機能はありませんが、ウイルス対策機能は一流です。

Windows の Xcopy コマンド

Windows の Xcopy コマンド

xcopy コマンドは、1 つ以上のファイルまたはフォルダーをある場所から別の場所にコピーするために使用されるコマンド プロンプト コマンドです。多くのオプションとフォルダー全体をコピーする機能を備えた xcopy コマンドは、copy コマンドに似ていますが、それよりもはるかに強力です。