Maison > Opération et maintenance > exploitation et maintenance Linux > Linux Server Guard : protégez les interfaces Web contre les attaques par traversée de répertoires.

Linux Server Guard : protégez les interfaces Web contre les attaques par traversée de répertoires.

PHPz
Libérer: 2023-09-09 16:40:52
original
1628 Les gens l'ont consulté

Linux Server Guard : protégez les interfaces Web contre les attaques par traversée de répertoires.

Protection du serveur Linux : protégez les interfaces Web contre les attaques par traversée de répertoires

Les attaques par traversée de répertoires sont une menace courante pour la sécurité du réseau. Les attaquants tentent d'obtenir un accès non autorisé en accédant aux chemins de fichiers système et aux fichiers sensibles. Dans les applications Web, les attaques par traversée de répertoire sont souvent mises en œuvre en manipulant les chemins d'URL, où l'attaquant saisit des caractères spéciaux de traversée de répertoire (tels que « ../ ») pour accéder à un répertoire en dehors du contexte de l'application.

Afin d'empêcher l'interface Web des attaques par traversée de répertoires, nous pouvons prendre les mesures suivantes pour protéger la sécurité du serveur.

  1. Validation des entrées
    Dans les applications Web, la validation des entrées est une étape importante pour se protéger contre les attaques par traversée de répertoires. Après avoir reçu la saisie de l'utilisateur, celle-ci doit être strictement validée et les caractères spéciaux tels que "../" doivent être filtrés. Les entrées utilisateur peuvent être vérifiées à l'aide d'expressions régulières ou de fonctions de filtre dans un langage de programmation.
function validateInput(input) {
  // 过滤掉特殊字符
  const pattern = /../g;
  return !pattern.test(input);
}

// 例子
const userInput = "../../etc/passwd";
if (validateInput(userInput)) {
  // 处理用户输入
  // ...
} else {
  // 输入无效,可能存在目录遍历攻击
  // ...
}
Copier après la connexion
  1. Traitement des chemins de fichiers
    Lors du traitement des chemins de fichiers, nous devons utiliser des chemins absolus au lieu de chemins relatifs. Le chemin absolu détermine l'emplacement exact du fichier et ne provoquera pas de mauvaise interprétation en raison des chemins relatifs.
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");
Copier après la connexion
  1. Restrictions d'autorisation
    Afin d'empêcher les attaquants d'accéder à des répertoires non autorisés via des attaques par traversée de répertoires, nous devons définir les autorisations appropriées sur le serveur. Assurez-vous que le processus du serveur Web dispose d'autorisations minimales et ne peut accéder qu'aux fichiers et répertoires nécessaires.

Par exemple, pour le serveur Apache, vous pouvez définir les règles d'autorisation suivantes dans le fichier de configuration (telles que "httpd.conf").

<Directory /var/www/html>
  Options None
  AllowOverride None
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
</Directory>
Copier après la connexion

La configuration ci-dessus désactivera tout accès au répertoire /var/www/html à l'exception de l'adresse de bouclage locale (127.0.0.1).

  1. Liste blanche de fichiers
    Pour réduire davantage le risque d'attaques par traversée de répertoires, nous pouvons maintenir une liste blanche de fichiers qui autorise uniquement l'accès aux fichiers et répertoires spécifiés. Cela peut être implémenté dans le code de l'application, en limitant en vérifiant si le chemin du fichier demandé par l'utilisateur est dans une liste blanche.
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:
  # 文件不在白名单中
  # ...
Copier après la connexion

Voici quelques mesures de base pour vous aider à protéger votre interface Web contre les attaques par traversée de répertoires. Mais rappelez-vous que la cybersécurité est un combat permanent et que nous devons également régulièrement mettre à jour nos logiciels, corriger les vulnérabilités et effectuer régulièrement des audits de sécurité et des tests d'intrusion pour garantir la sécurité de nos systèmes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal