ホームページ  >  記事  >  運用・保守  >  Linux Server Guard: Web インターフェイスをディレクトリ トラバーサル攻撃から保護します。

Linux Server Guard: Web インターフェイスをディレクトリ トラバーサル攻撃から保護します。

PHPz
PHPzオリジナル
2023-09-09 16:40:521481ブラウズ

Linux Server Guard: Web インターフェイスをディレクトリ トラバーサル攻撃から保護します。

Linux サーバー保護: ディレクトリ トラバーサル攻撃から Web インターフェイスを保護する

ディレクトリ トラバーサル攻撃は、攻撃者がシステム ファイル パスや機密情報にアクセスしようとする一般的なネットワーク セキュリティの脅威です。不正アクセスを取得するファイル。 Web アプリケーションでは、ディレクトリ トラバーサル攻撃は、URL パスを操作することによって実装されることが多く、攻撃者は特別なディレクトリ トラバーサル文字 (「../」など) を入力して、アプリケーション コンテキストの外側のディレクトリに移動します。

Web インターフェイスに対するディレクトリ トラバーサル攻撃を防ぐために、次の措置を講じてサーバーのセキュリティを保護できます。

  1. 入力検証
    Web アプリケーションでは、入力検証はディレクトリ トラバーサル攻撃を防ぐための重要な手順です。ユーザーの入力を受け取った後、それを厳密に検証し、「../」などの特殊文字をフィルターで除外する必要があります。ユーザー入力は、プログラミング言語の正規表現またはフィルター関数を使用してチェックできます。
function validateInput(input) {
  // 过滤掉特殊字符
  const pattern = /../g;
  return !pattern.test(input);
}

// 例子
const userInput = "../../etc/passwd";
if (validateInput(userInput)) {
  // 处理用户输入
  // ...
} else {
  // 输入无效,可能存在目录遍历攻击
  // ...
}
  1. ファイル パスの処理
    ファイル パスを処理するときは、相対パスではなく絶対パスを使用する必要があります。絶対パスによってファイルの正確な場所が決定され、相対パスによる誤解が生じることはありません。
import java.nio.file.Path;
import java.nio.file.Paths;

public class FileProcessor {
  public void processFile(String filename) {
    // 使用绝对路径
    Path filePath = Paths.get("/var/www/html", filename);
    // ...
  }
}

// 例子
FileProcessor fileProcessor = new FileProcessor();
fileProcessor.processFile("index.html");
  1. 権限制限
    攻撃者がディレクトリ トラバーサル攻撃を通じて未承認のディレクトリにアクセスすることを制限するには、サーバーに適切な権限を設定する必要があります。 Web サーバー プロセスに最小限のアクセス許可があり、必要なファイルとディレクトリのみにアクセスできるようにします。

たとえば、Apache サーバーの場合、構成ファイル (「httpd.conf」など) で次の権限ルールを設定できます。

<Directory /var/www/html>
  Options None
  AllowOverride None
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
</Directory>

上記の設定では、ローカル ループバック アドレス (127.0.0.1) を除く /var/www/html ディレクトリへのすべてのアクセスが無効になります。

  1. ファイル ホワイトリスト
    ディレクトリ トラバーサル攻撃のリスクをさらに軽減するために、指定されたファイルとディレクトリへのアクセスのみを許可するファイル ホワイトリストを維持できます。これをアプリケーションのコードに実装して、ユーザーが要求したファイル パスがホワイトリストに含まれているかどうかを確認することで制限できます。
def isFileAllowed(filePath):
  allowedFiles = ['/var/www/html/index.html', '/var/www/html/style.css']
  return filePath in allowedFiles

# 例子
userFilePath = "/var/www/html/../../../etc/passwd"
if isFileAllowed(userFilePath):
  # 处理用户请求
  # ...
else:
  # 文件不在白名单中
  # ...

上記は、Web インターフェイスをディレクトリ トラバーサル攻撃から保護するための基本的な対策です。ただし、サイバーセキュリティは継続的な取り組みであり、システムのセキュリティを確保するために、定期的にソフトウェアを更新し、脆弱性にパッチを当て、定期的なセキュリティ監査と侵入テストを実施する必要があることを忘れないでください。

以上がLinux Server Guard: Web インターフェイスをディレクトリ トラバーサル攻撃から保護します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。