Jump to content

Search the Community

Showing results for tags 'Sécurité'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Discussions communautaires
    • Annonces importantes
    • Suggestions
    • Postulation
    • Présentation des membres
    • Discussions générales
    • Multimédias
    • Jeux vidéos
    • Actualités
    • Aide / Support
    • Études
    • Archives
  • Informatique
    • Projets des membres
    • Autres / Divers / Découvertes
    • Crypto-monnaie(s)
    • Réseaux
    • Gestion de serveur
    • Système d'exploitation : Smartphone
    • Système d'exploitation : Ordinateur
  • Programmation
    • Projets des membres
    • Développement web
    • Développement de logiciels
    • Développement d'applications pour smartphones
    • Outils du développeur
    • Aide / Support
  • Emulation
  • Partenariats

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Skype


Site web


AIM


MSN


ICQ


Yahoo


Jabber


Tox


Centres d'interêts


Localisation


Study level

Found 11 results

  1. KEEPASS Keepass est un gestionnaire de mots de passe que j'ai découvert il y a pas longtemps. Il permet d'accéder à ces mots de passes juste avec 1 seul mot de passe. L'avantage c'est qu'il y a une version portable, du coup il est possible de le mettre sur sa clé. Il a plusieurs fonctionnalités intéressantes : - Il génère des mots de passe random avec des symboles, des espaces, des chiffres, majuscules et d'autres caractères complexes impossible à taper au clavier (avec la longueur souhaitée, ça va jusqu'à 3000 caractères je crois). - Il détecte votre navigateur et exécute les fenêtres de login en tapant vos logs automatiquement - Lorsqu'on copie un mot de passe d'en votre gestionnaire, vous n'avez que 5 secondes pour le coller, environ, une fois le temps écoulé c'est trop tard A voir pour le reste, mais c'est un bon utilitaire que je conseil -> Lien de téléchargement sur tous les OS (la version 2.34 est mieux à ce que j'ai entendu) <- Pour toutes questions, n'hésitez pas. Akimace.
  2. Numéro de sécurité social Exercice Java Dans cet exercice nous tenterons de restituer les informations d'une personne à partir de son numéro de sécurité social. Si vous souhaitez une correction personnalisé, veuillez me joindre votre fichier .java par mail à l'adresse suivante : [email protected] Langage : Java Niveau : Débutant (DUT-INFO-S1) Durée : 10-15 minutes Contexte : Un numéro de sécurité sociale est constitué de 13 chiffres de données : Le premier chiffre représente le sexe (1 = homme, 2 = femme),Les deux chiffres suivants représentent l'année de naissance,Les deux chiffres suivants représentent le mois de naissance,Les deux chiffres suivants représentent le département de naisssance,Les trois chiffres suivants représentent le numéro de commune de naissance,Les trois derniers chiffres représentent le numéro d'odre de la naissance dans le mois et la commune. S'ajoute à cela une clef de contrôle sur 2 chiffres qui est égale à : 97 – le reste de la division du numéro sur 13 chiffres par 97 Sujet : Dans un premier temps, vous deverez, à partir d'un numéro de sécurité social à 13 chiffres saisi par l'utilisateur, retrouver le sexe, l'année de naissance, le mois de naissance et le département de naissance de l'utilisateur. Dans un second temps, vous calculerez la clef de sécurité en fonction du numéro de sécurité social. Correction : C'est l'heure de la correction ! Voici donc un correction de ce qui était attendu : On peut néanmois apporter certaines modifications : Vérification de la validité de la saisie.
  3. Bonsoir, vous n'êtes pas sans savoir que, les hackeurs utilisent une méthode appelée "l'injection sql", qui comme son nom l'indique, permet d'injecté du code sql dans une fonction POST ou GET d'une page php. Elle est souvent utilisé pour contourner des connexion (par exemple, 'OR "="). Mais comment se protégé ? Tout simplement, rajoutez dans votre méthode POST ou GET : mysql_escape_string(); Ce qui donnerais au final (avec la variable et la méthode) : $user = mysql_escape_string($_POST['user']); Voila, j'espère que ça vous auras aidé ! ^^
  4. Authentification SSH par clés Le SSH (Secure Shell) permet d'obtenir un accès à distance à une machine UNIX. Par défaut, vous devez vous connecter à l'aide de votre identifiant et de votre mot de passe que vous utilisez habituellement pour vous connecter sur cette machine en local. Néanmoins, on peut utiliser l'authentification pas clés pour améliorer la sécurité et ne plus avoir à saisir de mot de passe. Il faut toute fois faire attention à ce que votre ordinateur soit privé et sécurisé sinon n'importe qui pourra accéder à votre machine distante. 1. Génération de la clé Sur votre orindateur, installez le paquet ssh : sudo apt-get install ssh Puis, générez une clé SSH avec cette commande : ssh-keygen -b 4096Note : L'argument -b de la commande permet de générer une clé d'une longueur définie par l'utilisateur (par défaut : 2048). 2. Exportation de la clé publique sur la machine distante Dans votre shell préféré, tapez la commande suivante : ssh-copy-id [email protected] : L'argument -i permet de spécifier le chemin de la clé publique à exporter. 3. Connexion à la machine distante Vous pouvez connecter dès à présent à votre machine distante sans avoir besoin de taper votre mot de passe : ssh [email protected]
  5. Dans un soucis de sécurité permanent, Google Authenticator est une application mobile gérant les clés de sécurité pour une authentification en deux étapes renforçant ainsi la sécurité de vos comptes avec en plus de votre mot de passe, un code généré aléatoirement toutes les 30 secondes par cette application. La prise en main de cette application est relativement simple : Premier écran de démarrage. L'icône en haut à droite permet d'ajouter d'autres comptes. Vous avez la possibilité de scanner un code barre ou de saisir une clé fournie par votre site. Vos codes générés apparaissent avec une durée de vie de 30 secondes.
  6. Mise en place d'un « port-knocking » 1. La notion de « port-knocking » Dans un souci de sécurité permanant, le « port-knocking » vient renforcer votre défense face aux intrusions indésirables. Son fonctionnement permet d'ouvrir et de fermer dynamiquement le port souhaité grâce à une séquence bien précise de signaux sur des ports définis (ce principe est appelé « toc toc toc ») pour éviter qu'un pirate informatique le repère par un scan des ports de la machine et qu'il puisse en prendre le contrôle total. Principe de fonctionnement du « port-knocking ». © IT-Connect.fr 2. Paramétrage du serveur Le serveur doit disposer d'un firewall bien configurer pour que le service knockd puisse gérer dynamiquement les ports de votre serveur. Ce service est donc en écoute d'une suite de ports associés a un protocole TCP ou UDP. Sa configuration est relativement simple et se fait par le fichier "/etc/knockd.conf". Deux approches vont être présentées : la première est destinée aux connexions qui ne nécessitent pas d'être maintenues (comme HTTP) ;la seconde méthode à celles qui doivent l'être (comme SSH et IRC). 2.1. Connexions non maintenues (no keep-alive) Dans l'exemple ci-dessous, l'utilisateur entrant la séquence de signaux sur les ports 7000, 8000 et 9000 exécutera la commande définie dans "command" permettant ainsi l'ouverture du port 80. Pour que ce port soit refermer, l'utilisateur doit entrer la séquence inverse ou une autre séquence qui sera à définir dans [closeHTTP]. [openHTTP] sequence = 7000,8000,9000 seq_timeout = 5 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 80 -j ACCEPT tcpflags = syn [closeHTTP] sequence = 9000,8000,7000 seq_timeout = 5 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 80 -j ACCEPT tcpflags = syn 2.2. Connexions maintenues (keep-alive) Dans l'exemple de configuration ci-dessous, l'utilisateur entrant la séquence de signaux sur les ports 7000, 8000 et 9000 a 10 secondes pour se connecter au serveur via SSH, après quoi le port se refermera automatiquement mais ne fermera pas les connexions actives. [SSH] sequence = 7000,8000,9000 seq_timeout = 5 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn cmd_timeout = 10 stop_command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT 3. Accès côté client L'utilisateur doit donc entrer la suite de ports qu'il a défini dans le fichier de configuration du daemon « knockd » avec la commande suivante : knock <server_adress> <port_1> <port_2> <port_3>
  7. La stéganographie, dissimuler des données dans des données 1. Principe de la stéganographie La stéganographie repose sur le principe de la dissimulation. Cette technique qui existe depuis très longtemps permet en effet de cacher des données dans des données (un fichier, une image ou encore un texte). Cependant, elle a ses limites puisque quelqu’un d’assez malin peut se rendre compte que votre donnée dissimule d’autres données cachées. 2.Dissimuler des données dans un fichier audio Deepsound est un logiciel qui vous permet de dissimuler vos données dans un fichier audio mais il ne prend en charge que les fichiers audio de type wave et flac.
  8. Pour éviter une attaque bruteforce sur votre ordinateur, vous pouvez verrouiller votre session après plusieurs tentatives de connexion. Pour cela, il vous suffit d'entrer ces deux commandes dans votre Shell (la première règle le nombre de tentatives et la deuxième règle la durée) : net accounts /lockoutthreshold:10 net accounts /lockoutduration:30 Ici j'ai programmé le verrouillage à 10 tentatives pour une durée de 30 minutes.
  9. Le contrôle de compte d’utilisateur permet d’empêcher les modifications non autorisées sur votre ordinateur ; cette fonctionnalité vous avertit lorsque des modifications nécessitant une autorisation de niveau Administrateur doivent être effectuées. Ces types de modifications peuvent avoir une incidence sur la sécurité de votre ordinateur et un impact sur les paramètres des autres personnes utilisant l’ordinateur. Il est recommandé de laisser le contrôle de compte d’utilisateur activé pour accroître la sécurité de votre ordinateur. Pour activer ou désactiver le Contrôle de compte d’utilisateur : Sur Windows 7 : Pour ouvrir Paramètre de contrôle de compte d’utilisateur, cliquez sur le bouton Démarrer, puis sur Panneau de configuration. Dans la zone de recherche, tapez contrôle de compte d’utilisateur, puis cliquez sur Modifier les paramètres de contrôle de compte d’utilisateur. Effectuez l’une des opérations suivantes : Pour désactiver le contrôle de compte d’utilisateur, déplacez le curseur sur la position Ne jamais m’avertir, puis cliquez sur OK. Si vous êtes invité à fournir un mot de passe administrateur ou une confirmation, fournissez le mot de passe ou la confirmation. Vous devrez redémarrer votre ordinateur pour que la désactivation du contrôle de compte d’utilisateur prenne effet. Pour activer le contrôle de compte d’utilisateur, déplacez le curseur pour choisir le moment où vous souhaitez être averti, puis cliquez sur OK. Si vous êtes invité à fournir un mot de passe administrateur ou une confirmation, fournissez le mot de passe ou la confirmation. Sur Windows Vista : Pour ouvrir Comptes d’utilisateurs, cliquez sur le bouton Démarrer, sur Panneau de configuration, sur Comptes d’utilisateurs et sécurité de la famille (ou sur Comptes d’utilisateurs, si vous êtes connecté à un domaine de réseau), puis sur Comptes d’utilisateurs. Cliquez sur Activer ou désactiver le Contrôle des comptes d’utilisateurs. Si vous êtes invité à fournir un mot de passe administrateur ou une confirmation, fournissez le mot de passe ou la confirmation. Activez ou désactivez la case à cocher Utiliser le Contrôle des comptes d’utilisateurs pour vous aider à protéger votre ordinateur pour respectivement activer ou désactiver la fonctionnalité, puis cliquez sur OK. Sources : http://windows.microsoft.com/fr-fr/windows/turn-user-account-control-on-off#1TC=windows-7, http://windows.microsoft.com/fr-fr/windows/turn-user-account-control-on-off#1TC=windows-vista
  10. Certains de vos fichiers sont sensibles et vous ne voudriez pas qu'ils ne tombent dans de mauvaises mains ? Une solution existe pour faire face à ce genre de situation : crypter ces fichiers afin que personne ne puisse y accéder sans avoir une clé de décryptage valide. De nombreux logiciels existent pour crypter ses fichiers mais nous nous concentrerons sur un : AxCrypt. Ce petit logiciel va au plus simple en utilisant le menu contextuel du clic droit. Après l'installation de ce logiciel, vous verrez en faisant un clic droit sur un dossier qu'un sous-menu AxCrypt sera présent. Dedans vous pourrez trouver : Si le fichier n'est pas crypté : Crypter : Permet de crypter son fichier à l'aide d'une clé de cryptage. Crypter et copier : Créer une copie du fichier et l’encrypte à l'aide d'une clé de cryptage. Crypter et copier un exécutable : Créer une copie du fichier et l’encrypte à l'aide d'une clé de cryptage. Celui-ci peut être exécuté à l'aide d'une clé de décryptage et le fichier sera copié et décrypté à l'emplacement voulu. Si le fichier est crypté : Décrypter : Décrypte le fichier à l'aide d'une clé de décryptage. Retirer : Pour tous : Effacer toutes les clés : Créer un fichier clé : permet de créer un fichier contenant des données aléatoires, le logiciel utilisera ce fichier comme clef, plus sûr qu'un mot de passe mais moins facile d'utilisation. Brouiller et supprimer : le logiciel va réécrire le fichier avec des données aléatoires puis le supprimer définitivement. Lien : http://www.axantum.com/axcrypt/
  11. Bonjour à tous, Aujourd'hui je fais essayer de faire un truc plus sérieux, les failles les plus courantes (sql, xss, csrf et exploit cookie). Les failles SQL, c'est le fait que le client peut modifier une requête sql sur vote site, ses failles peuvent permettent de modifier, afficher, supprimer toutes les tables voir la base de donnée. Contexte: J'affiche mes news avec une variable ?page dans l'url <?php $query = mysql_query("SELECT * FROM `news` LIMIT ".$_GET['page'].",10"); ?> normalement l'url va ressemble à: http://mars073.be/faille.php?page=2 .mais si quelqu'un écrit : http://mars073.be/faille.php?page=2;TRUNCATE%20`news`# bah... vous perdez toutes vos news, la requête sera double: SELECT * FROM `news` LIMIT 2; TRUNCATE `news`; #,10 il existe des programmes pour exploiter plus facilement les failles ils permettent aussi de lister les autres tables ._. solution: 1 - vérifier que la variable est un chiffre (numérique); <?php $page = 0; if (isset($_GET['page'])&&is_numeric($_GET['page'])) $page = $_GET['page']; $query = mysql_query("SELECT * FROM `news` LIMIT $page,10"); ?> étrangement cette erreur est très fréquente encore... mais bon parfois y a un pare-feu derrière et c'est pas marrant 2-dans le cadre où il s'agit d'un texte faites appel à la fonction: addslashes(). Exemple: $titre = addslashes($_GET['titre']); 3-Simplement coder en pdo mais ça peut-être dérangeant quand vous n'avez pas codé le site et que vous devez donc tout refaire... Les failles xss, aussi très courantes c'est une faille qui permet au client d'afficher du code html ou javascript, ce qui permet de faire des forkbomb, redirections, voler les logins, etc. Contexte: je débute et j'ai fais une chatbox avec une faille xss: <?php $query = $cxn->query("SELECT * FROM `chat`"); $query->execute(); while ($msg = $query->fetch()) { echo $msg['user']." a dit:".$msg['content']; } ?> maintenant Jean-Kevin envoie le message suivant: <meta http-equiv="refresh" content="0;url=http://JeanKevdu06.free.fr/"> ce qui aura pour effet de rediriger une fois la page charger sur un autre site. pour pallier à ce problème il suffit de faire appel à une fonction: htmlspecialchars(), il existe d'autre fonction avec plus où moins le même effet, c'est à dire convertir le code en caractère lisible. exemple avec le code au dessus: <?php $query = $cxn->query("SELECT * FROM `chat`"); $query->execute(); while ($msg = $query->fetch()) { $msg['content'] = htmlspecialchars($msg['content']); // Dans le contexte le nom d'utilisateur ne peut pas comporter de caractères spéciaux. echo $msg['user']." a dit:".$msg['content']; } ?> je considère les failles "include" comme des failles xss mais si c'est pas totalement vrai, je suppose que vous connaissez tous la fonction include(), vu que c'est la base du php... Bref beaucoup de site utile utilise une variable $_GET (ex: $_GET['p']) et donc il font un code du genre: <?php if (isset($_GET['p'])&&is_file($_GET['p'])) include("pages/".$_GET['p'].".php"); ?> mais bon une fois de plus si le méchant utilisateur change l'url: en ?p=../includes/config bah... ça inclue le fichier config ._.il y a beaucoup de façon différente pour résoudre cette faille mais dans le contexte ej vais utiliser le switch() <?php if (isset($_GET['p'])) { //on test si la page est spécifiée switch (strtolower($_GET['p'])) { // test la valeur de la variable en minuscule pour avoir plus facile case 'home': include("pages/home.php"); //l'acccueil break; case 'contact': include("pages/contact.php"); break; case 'machin': include("pages/machin.php"); // machin break; default: include("pages/404.php"); //page d'erreur } } else { include("pages/home.php"); //si aucune page spécifiée on met l'accueil } ?> Les failles csrf, déjà plus rare, ça consiste dans le faire exécuter par le biais d'une image comme une signature sur un forum, je vais prendre pour exemple un forum.Contexte: Je fais une signature qui va vous déconnecter automatiquement quand vous l'afficherait: je mets le lien pour se déconnecter comme le lien d'une image. [img=http://forum.mars073.be/deconnect.php] Dans ce cas ci il faut utiliser un token, c'est une variable qui va contenir une suite aléatoire.Exemple dans votre script de connexion vous allez surement utiliser des variables $_SESSION, donc il suffit d'ajouter dans votre script de connexion: <?php // ... $_SESSION['token'] = dechex(rand(0, 999999))."-".dechex(rand(0, 999999)); ?> votre bouton déconnexion: <a href="deconnect.php?t=<?=$_SESSION['token']?>">Déconnexion</a> et le script deconnect.php: <?php session_start(); if (isset($_GET['t'])&&$_GET['t']==$_SESSION['token']) { session_unset(); session_destroy(); echo "Vous avez bien été déconnecté"; } else { echo "La requête est incorrect"; } ?> Le forum Melinyel a un système similaire mais en plus n'autorise que certaines extensions mais le systèmes d'extension ne sert à rien vu qu'il peut être trompé avec le ".htaccess". Nous arrivons donc au dernier type de faille les voles de cookies, miam miam... Contexte: mon script php camouflé en "cookie.png" doit voler le cookie du nom de "autolog" qui permet que le compte se connecter automatiquement. /!\Rappel: le cookie est stocké du coté client il y a un risque de modification, donc cryptait le un maximum pour pas qu'il puisse détourner sa connexion sur un autre compte, comme pour les variables caché html ou js. donc nous allons créer votre cookie avec une protection correcte: $crypt = $user['id']."|".md5(sha1($user['name']).$user['haspass']); setcookie( "autolog", $crypt, time()+60*60*24*31, "./marsLogin", "mars073.be", false, true); donc $crypt dans mon exemple est composé de l'id de l'utilisateur et le cumule crypté du nom d’utilisateur crypté et de son mot de passe crypté, même crypté normalement on ne met pas le mot de passe dans le cookie je dis bien normalement.paramètres de mon cookie: 1 - Son nom: "autolog" 2 - sa valeur: $crypt 3 - sa date d'expiration en seconde: 31jours après création 4 - dossier ou je vais le ranger 5 - le seul site (domaine) qui a le droit d'y accéder: "mars073.be" 6 - si le cookie ne peut être utilisé que par des site en https:// : non (si votre site à le https:// mettez "true" si vous voulez) 7 - Interdit la modification du cookie par du javascript par exemple (ne fonctionne pas tout le temps). mais comment faire maintenant pour vérifier l'utilisateur? Comme ça: <?php if (isset($_COOKIE['autolog'])) { $data = explode("|", $_COOKIE['autolog']; // On sépare l'id du reste if (isset($data[1])&&is_numeric($data[0])) { // On vérifie la structure du cookie $query = $db->query("SELECT * FROM `user` WHERE `id` = ".$data[0]." LIMIT 1"); $query->execute(); $user = $query->fetch(); if ($data[1] == md5(sha1($user['name']).$user['haspass'])) { $_SESSION['login'] = $user; echo "Connexion réussite"; } else { echo "cookie incorrect"; } } else { echo "Cookie corrumpue"; } } ?> Je pense avoir fait le tour des trucs les plus courant en php... ps: exemple d'image en php qui passe à travers le filtre du forum avec un simple dossier, quand vous actualisez elle change: Bonne programmation à tous! Cordialement, Mars073
×
×
  • Create New...