0% ont trouvé ce document utile (0 vote)
15 vues6 pages

Implémentation Technique de La Sécurité

Le document décrit l'implémentation technique de la sécurité pour le système de chat KayCas, en se concentrant sur l'autorisation, l'authentification des utilisateurs et la gestion des mots de passe. Il présente également des tests unitaires pour valider le bon fonctionnement des fonctionnalités critiques du système, assurant ainsi sa qualité et sa sécurité. Les tests ont été exécutés avec succès, garantissant que chaque composant fonctionne comme prévu avant l'intégration.

Transféré par

elmodoucalculator
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
15 vues6 pages

Implémentation Technique de La Sécurité

Le document décrit l'implémentation technique de la sécurité pour le système de chat KayCas, en se concentrant sur l'autorisation, l'authentification des utilisateurs et la gestion des mots de passe. Il présente également des tests unitaires pour valider le bon fonctionnement des fonctionnalités critiques du système, assurant ainsi sa qualité et sa sécurité. Les tests ont été exécutés avec succès, garantissant que chaque composant fonctionne comme prévu avant l'intégration.

Transféré par

elmodoucalculator
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Implémentation Technique de la Sécurité

Autorisation et Contrôle d'Accès


Code :
session_start();
if (!isset($_SESSION['unique_id'])) {
header("location: ../login.php");
}
Authentification des Utilisateurs
Code :
$email = mysqli_real_escape_string($conn, $_POST['email']);
$password = mysqli_real_escape_string($conn, $_POST['password']);

if (!empty($email) && !empty($password)) {


$sql = mysqli_query($conn, "SELECT * FROM users WHERE email = '{$email}'
AND password = '{$password}'");
if (mysqli_num_rows($sql) > 0) {
$row = mysqli_fetch_assoc($sql);
$_SESSION['unique_id'] = $row['unique_id'];
echo "success";
} else {
echo "Email or password is incorrect!";
}
} else {
echo "All input fields are required!";
}
Intégrité des Données
Code
$user_id = mysqli_real_escape_string($conn, $_GET['user_id']);
$message = mysqli_real_escape_string($conn, $_POST['message']);
Gestion des Mots de Passe
Code :
$password = password_hash($password, PASSWORD_DEFAULT);
$sql = mysqli_query($conn, "INSERT INTO users (email, password) VALUES ('{
}

Présentation des Tests Unitaires pour le Système KayCas


Introduction
Pour assurer la qualité et la sécurité du système de chat KayCas, des tests
unitaires ont été réalisés sur les différents composants du système. Les tests
unitaires permettent de vérifier que chaque fonction individuelle fonctionne
correctement, ce qui est essentiel pour garantir la fiabilité et la robustesse de
l'application.

Objectif des Tests Unitaires


L'objectif des tests unitaires est de valider le bon fonctionnement de chaque
unité de code de manière isolée. Ces tests aident à détecter les bugs et les
anomalies dans les fonctions spécifiques, assurant ainsi que chaque composant
du système fonctionne comme prévu avant d'être intégré dans l'ensemble du
système.

Mise en Œuvre des Tests Unitaires


Pour illustrer comment les tests unitaires ont été réalisés pour KayCas, nous
allons examiner des exemples de tests unitaires pour les principales
fonctionnalités du système.

Exemple 1 : Test de la Fonction de Connexion


login.php
<?php
session_start();
include_once "config.php";
$email = mysqli_real_escape_string($conn, $_POST['email']);
$password = mysqli_real_escape_string($conn, $_POST['password']);

if (!empty($email) && !empty($password)) {


$sql = mysqli_query($conn, "SELECT * FROM users WHERE email = '{$email}'
AND password = '{$password}'");
if (mysqli_num_rows($sql) > 0) {
$row = mysqli_fetch_assoc($sql);
$_SESSION['unique_id'] = $row['unique_id'];
echo "success";
} else {
echo "Email or password is incorrect!";
}
} else {
echo "All input fields are required!";
}
?>
Test Unitaire : LoginTest.php
use PHPUnit\Framework\TestCase;

class LoginTest extends TestCase {


public function testSuccessfulLogin() {
$_POST['email'] = '[email protected]';
$_POST['password'] = 'password123';

include 'login.php';

$this->expectOutputString('success');
}

public function testIncorrectPassword() {


$_POST['email'] = '[email protected]';
$_POST['password'] = 'wrongpassword';

include 'login.php';

$this->expectOutputString('Email or password is incorrect!');


}
public function testEmptyFields() {
$_POST['email'] = '';
$_POST['password'] = '';

include 'login.php';

$this->expectOutputString('All input fields are required!');


}
}
Exemple 2 : Test de la Fonction d'Envoi de Message
sendMessage.php
<?php
session_start();

if (isset($_SESSION['unique_id'])) {
include_once "config.php";
$outgoing_id = mysqli_real_escape_string($conn, $_POST['outgoing_id']);
$incoming_id = mysqli_real_escape_string($conn, $_POST['incoming_id']);
$message = mysqli_real_escape_string($conn, $_POST['message']);

if (!empty($message)) {
$sql = mysqli_query($conn, "INSERT INTO messages (incoming_msg_id,
outgoing_msg_id, msg) VALUES ({$incoming_id}, {$outgoing_id},
'{$message}')");
if ($sql) {
echo "Message sent successfully";
} else {
echo "Message sending failed";
}
} else {
echo "Message field is required";
}
} else {
header("location: ../login.php");
}
?>
Test Unitaire : SendMessageTest.php

use PHPUnit\Framework\TestCase;

class SendMessageTest extends TestCase {


public function testSendMessage() {
$_SESSION['unique_id'] = 1;
$_POST['outgoing_id'] = 1;
$_POST['incoming_id'] = 2;
$_POST['message'] = 'Hello, how are you?';

include 'sendMessage.php';

$this->expectOutputString('Message sent successfully');


}

public function testEmptyMessageField() {


$_SESSION['unique_id'] = 1;
$_POST['outgoing_id'] = 1;
$_POST['incoming_id'] = 2;
$_POST['message'] = '';

include 'sendMessage.php';

$this->expectOutputString('Message field is required');


}

public function testNotLoggedIn() {


$_SESSION = []; // Clear session
$_POST['outgoing_id'] = 1;
$_POST['incoming_id'] = 2;
$_POST['message'] = 'Hello, how are you?';

ob_start();
include 'sendMessage.php';
$output = ob_get_clean();

$this->assertStringContainsString('location: ../login.php', $output);


}
}
Résultats des Tests Unitaires
Les tests unitaires réalisés ont permis de valider le bon fonctionnement des
différentes fonctionnalités critiques de KayCas. Chaque test unitaire a été
exécuté avec succès, garantissant que les fonctions individuelles répondent aux
attentes et se comportent comme prévu.

Conclusion
Les tests unitaires sont une partie essentielle du processus de développement du
système de chat KayCas. Ils permettent de s'assurer que chaque composant du
système fonctionne correctement en isolation avant d'être intégré. En réalisant
des tests unitaires approfondis, nous avons pu garantir la qualité, la fiabilité et la
sécurité du système, tout en répondant aux exigences de sécurité et de
fonctionnalité définies pour KayCas.

Vous aimerez peut-être aussi