Maison >développement back-end >tutoriel php >Protection de sécurité PHP et prévention des attaques dans le développement de mini-programmes

Protection de sécurité PHP et prévention des attaques dans le développement de mini-programmes

PHPz
PHPzoriginal
2023-07-07 08:55:36929parcourir

Protection de sécurité PHP et prévention des attaques dans le développement de mini-programmes

Avec le développement rapide de l'Internet mobile, les mini-programmes sont devenus une partie importante de la vie des gens. En tant que langage de développement back-end puissant et flexible, PHP est également largement utilisé dans le développement de petits programmes. Cependant, les questions de sécurité ont toujours été un aspect auquel il faut prêter attention lors de l’élaboration des programmes. Cet article se concentrera sur la protection de la sécurité PHP et la prévention des attaques dans le développement de petits programmes, et fournira quelques exemples de code.

  1. Prévention XSS (Cross-site Scripting Attack)

L'attaque XSS signifie que les pirates injectent du code de script malveillant dans les pages Web, obligeant le navigateur de l'utilisateur à exécuter ces codes de script malveillants, atteignant ainsi l'objectif de l'attaque. Afin de prévenir les attaques XSS, nous pouvons utiliser la fonction intégrée htmlspecialchars de PHP pour échapper aux données saisies par l'utilisateur.

L'exemple de code est le suivant :

$userInput = $_GET['user_input'];
$escapedInput = htmlspecialchars($userInput);
echo $escapedInput;
  1. Prévention CSRF (Cross-site request forgery)

L'attaque CSRF fait référence à un pirate informatique forgeant l'identité de connexion de l'utilisateur pour inciter l'utilisateur à effectuer une opération sans le savoir, atteignant ainsi l’objectif de l’attaque. Afin de prévenir les attaques CSRF, nous pouvons utiliser les fonctions intégrées de PHP session_start() et csrf_token pour générer un jeton et vérifier le jeton à chaque fois qu'une opération importante est lancée.

L'exemple de code est le suivant :

session_start();
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = md5(uniqid(mt_rand(), true));
}
$csrfToken = $_SESSION['csrf_token'];

// 显示表单
echo '<form action="submit.php" method="post">';
echo '<input type="hidden" name="csrf_token" value="' . $csrfToken . '">';
echo '<input type="submit" value="提交">';
echo '</form>';

// 提交表单时验证令牌
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if ($_POST['csrf_token'] !== $csrfToken) {
        die('CSRF攻击');
    }
    // 其他处理逻辑
}
  1. Prévention de l'injection SQL

L'injection SQL signifie que les pirates peuvent obtenir, modifier ou même supprimer des données dans la base de données en insérant du code SQL malveillant dans l'entrée de l'utilisateur. Afin d'empêcher l'injection SQL, nous pouvons utiliser la fonction intégrée de PHP mysqli_real_escape_string pour échapper aux données saisies par l'utilisateur.

L'exemple de code est le suivant :

$db = mysqli_connect('localhost', 'user', 'password', 'database');
if (mysqli_connect_errno()) {
    die('数据库连接失败');
}

$userInput = $_GET['user_input'];
$escapedInput = mysqli_real_escape_string($db, $userInput);

$query = "SELECT * FROM users WHERE username='$escapedInput'";
$result = mysqli_query($db, $query);
while ($row = mysqli_fetch_assoc($result)) {
    // 处理查询结果
}
mysqli_close($db);

En résumé, dans le développement de petits programmes, la protection de sécurité PHP et la prévention des attaques sont très importantes. Cet article donne quelques exemples de codes pour la prévention de la sécurité sous trois aspects : XSS, CSRF et injection SQL. Cependant, la protection de la sécurité est un processus continu et les développeurs doivent également prêter une attention particulière aux menaces de sécurité actuelles et prendre les précautions appropriées en temps opportun en fonction de la situation. J'espère que le contenu de cet article pourra apporter de l'aide aux développeurs de petits programmes.

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!

Déclaration:
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