
PHP - Erreurs courantes (injection Sql, xss, upload) Préambule Depuis quelques années nous assistons au boom d'Internet : 1 foyer sur 2 possède une connexion haut débit et le nombre de sites présents sur la toile ne cesse d'augmenter. Internet représente de forts enjeux aussi bien financiers, culturels que commerciaux. Il est rare de croisé une personne n'ayant jamais été sur un site Web. Nombreuses sont les personnes ayant l'envie de créer leur site par leurs propres moyens malgré le déclin des tarifs pour la création des sites Web et les efforts menés par les agences Web afin de proposer des sites toujours plus performants, adaptés au budget des consommateurs eux même restreint par la crise économique. Cependant il ne faut pas oublier que le développement Web est une "discipline" relativement complexe et demande un investissement personnel considérable, ce qui peut s'avérer très rapidement un vrai casse tête lorsque l'on débute dans la matière. Structure et objectifs de cet article A qui s'adresse cet article ? Pourquoi ? Injections SQL
Botnet Un article de Wikipédia, l'encyclopédie libre. Un botnet (de l'anglais, contraction de « robot » et « réseau ») est un réseau de bots informatiques, des programmes connectés à Internet qui communiquent avec d'autres programmes similaires pour l'exécution de certaines tâches. Historiquement, botnet désignait des réseaux de robots IRC. Le sens de botnet s'est étendu aux réseaux de machines zombies, utilisés pour des usages malveillants, comme l'envoi de spam et virus informatiques, ou les attaques informatiques par déni de service (DDoS). Usage légitime[modifier | modifier le code] Il existe d'autres usages légitimes de botnets, comme l'indexation web : le volume des données à explorer et le nécessaire usage de parallélisation impose l'usage de réseaux de bots. Dérives et usages malveillants[modifier | modifier le code] En 2007, Vint Cerf considérait qu'un ordinateur sur quatre faisait partie d'un botnet[6]. Usages principaux des botnets malveillants[modifier | modifier le code]
Les filtres PHP : une fonctionnalité importante de sécurité Peut-être que certaines des discussions les plus amusantes que j'ai vues dans les forums de développeurs sont les discussions pour savoir si PHP est un "vrai" langage de programmation ou non. Apparemment, il est dit que PHP n'aura jamais la puissance de Java, parce que PHP est un langage faiblement typé. Eh bien, oui. Ce que vous n'avez pas besoin de vous rappeler cependant, c'est que PHP n'a jamais été conçu pour être un clone de Java. PHP n'est pas un système à l'état solide. Il dure une fraction de seconde - alors que la page se charge - et alors il cesse de fonctionner. La validation est peut-être la chose la plus importante que vous puissiez faire sur un site Web. Les filtres PHP sont une extension de PHP qui vous aideront à facilement - et de manière fiable - valider les variables et les chaînes de caractères, de sorte que nous puissions espérer, qu'une chose comme cela ne se reproduise plus : ou, pire encore, <? <? Jamais essayé de valider une URL ? Eh bien, non. <? <?
Attaque par déni de service Un article de Wikipédia, l'encyclopédie libre. Une attaque par déni de service (denial of service attack, d'où l'abréviation DoS) est une attaque informatique ayant pour but de rendre indisponible un service, d'empêcher les utilisateurs légitimes d'un service de l'utiliser. Il peut s'agir de : l’inondation d’un réseau afin d'empêcher son fonctionnement ;la perturbation des connexions entre deux machines, empêchant l'accès à un service particulier ;l'obstruction d'accès à un service à une personne en particulier. L'attaque par déni de service peut ainsi bloquer un serveur de fichiers, rendre impossible l'accès à un serveur web ou empêcher la distribution de courriel dans une entreprise. Les attaques en déni de service se sont modifiées au cours du temps (voir historique). Tout d'abord, les premières n'étaient perpétrées que par un seul « attaquant » ; rapidement, des attaques plus évoluées sont apparues, impliquant une multitude de « soldats », aussi appelés « zombies ». Par exemple :
PDO : Une autre façon d'accéder à vos bases de données Introduction Qu'est-ce que PDO ? PDO (PHP Data Objects) est une extension PHP qui définit une interface d'accès à une base de données. Il a en quelque-sorte le même rôle que les fonctions mysql_connect, mysql_query, ... Il est inclus dans PHP depuis sa version 5.1. Qu'a-t-il de plus que les fonctions mysql_... ? Son principal avantage est qu'il permet une abstraction pour l'accès aux données. Mais comme chaque serveur SQL n'exécute pas les requêtes SQL de la même façon, il est possible que vous ayez à réécrire certaines requêtes. PDO est aussi orienté objet, vous pouvez donc l'étendre et gérer les erreurs avec les exceptions. Se connecter à votre serveur SQL C'est la partie la plus simple. J'ai souligné ce que vous pouvez modifier. Exécuter une requête sans retour Qu'est-ce que j'appelle une requête sans retour ? Pour ce type de requête, il est préférable d'utiliser la méthode exec(), qui retourne le nombre de ligne affectées. Regardez cet exemple : <? Récupérer des données 1. <? Note
Zero day Un article de Wikipédia, l'encyclopédie libre. Le terme 0 day ou Zero day (en français « jour 0 ») peut être interprété de différentes manières : Dans le domaine de la sécurité informatique, une vulnérabilité zero-day est une vulnérabilité d'un produit qui est soit inconnue du fournisseur du produit, soit qui ne dispose pas de correctif approprié. Une exploitation 0 day est susceptible d'engendrer la création d'un ver car, par définition, la grande majorité des utilisateurs ne sera pas protégée contre cette faille jusqu'à ce qu'elle soit découverte et corrigée ;Dans le domaine de la contrefaçon numérique, on parle de 0 day lorsqu'un logiciel, film ou toute autre œuvre protégée est mis à disposition avant sa distribution légale, ou le jour de sa diffusion.
[Résolu] Injection Sql ??? PDO... Bonsoir, Vu l'heure c'est peut-être normal^^ mais je suis paumé (comme d'hab quoi ) Bon j'ai lu sur le manuel de php( ) que: Citation Si votre application utilise exclusivement les requêtes préparées, vous pouvez être sûr qu'aucune injection SQL n'est possible (Cependant, si vous construisez d'autres parties de la requête en vous basant sur des entrées utilisateurs, vous continuez à prendre un risque) . Donc si je pige bien, plus besoin de faire un "mysql_real_escape_string" pour prévenir les injections SQL puisque PDO le fait directement grâce aux requêtes préparées...Chose que j'ai lu dans d'autres forum/site! Je dois quand même faire une vérif? ), plus tard ils pourront écrire un commentaire mais c'est tout! Voilà merci de votre aide( si tard " Rien ne vaut la recherche lorsqu'on veut trouver quelque chose
Empoisonnement du cache DNS Un article de Wikipédia, l'encyclopédie libre. L'empoisonnement du cache DNS ou pollution de cache DNS (DNS cache poisoning ou DNS cache pollution en anglais) est une technique permettant de leurrer les serveurs DNS afin de leur faire croire qu'ils reçoivent une réponse valide à une requête qu'ils effectuent, alors qu'elle est frauduleuse. Une fois que le serveur DNS a été empoisonné, l'information est mise dans un cache, rendant ainsi vulnérable tous les utilisateurs de ce serveur. Ce type d'attaque permet, par exemple, d'envoyer un utilisateur vers un faux site dont le contenu peut servir à de l'hameçonnage (dans le cas du DNS, on parle de pharming) ou comme vecteur de virus et autres applications malveillantes. Un ordinateur présent sur Internet utilise normalement un serveur DNS géré par le fournisseur d'accès. Introduction[modifier | modifier le code] Cette technique peut être employée pour substituer un contenu, que les victimes s'attendent à obtenir, par un autre contenu.
Injection SQL De nombreux développeurs web ne sont pas conscients des possibilités de manipulation des requêtes SQL, et supposent que les requêtes SQL sont des commandes sûres. Cela signifie qu'une requête SQL est capable de contourner les contrôles et vérifications, comme les identifications, et parfois, les requêtes SQL ont accès aux commandes d'administration. L'injection SQL directe est une technique où un pirate modifie une requête SQL existante pour afficher des données cachées, ou pour écraser des valeurs importantes, ou encore exécuter des commandes dangereuses pour la base. Cela se fait lorsque l'application prend les données envoyées par l'internaute, et l'utilise directement pour construire une requête SQL. Avec le manque de vérification des données de l'internaute et la connexion au serveur avec des droits de super utilisateur, le pirate peut créer des utilisateurs, et créer un autre super utilisateur. Exemple #2 Exemple d'injection SQL Exemple #4 Révélation des mots de passe <?
Dans la peau d’un hacker black hat Robert Hansen, du site WhitehatSec a mis en ligne sur son blog, une interview passionnante. Durant plusieurs jours, il a eu l'occasion d'échanger avec un black hat, c'est à dire un hacker qui pratique son art illégalement essentiellement pour l'argent. Il a pu lui poser toutes les questions qu'il avait en tête et ainsi mieux connaitre l'envers du décor. J'ai trouvé intéressant de vous la retranscrire ici en français. Ces dernières années, je me suis efforcé de me mettre à l’écoute de la "communauté black hat". La plupart du temps, malgré leurs réticences, mes interlocuteurs dans le domaine de la sécurité informatique ont conscience de l’utilité d’un dialogue avec les cybercriminels. Je crois au contraire qu’il est extrêmement important que les experts en sécurité informatique maintiennent un dialogue ouvert avec la communauté black hat. Un "black hat", qui a choisi le pseudonyme Adam, et avec qui j’ai beaucoup discuté, a récemment déclaré vouloir rentrer dans le droit chemin. 1. 2. 1.
Injection SQL Un article de Wikipédia, l'encyclopédie libre. Exemple[modifier | modifier le code] Considérons un site web dynamique (programmé en PHP dans cet exemple) qui dispose d'un système permettant aux utilisateurs possédant un nom d'utilisateur et un mot de passe valides de se connecter. Ce site utilise la requête SQL suivante pour identifier un utilisateur : SELECT uid FROM Users WHERE name = '(nom)' AND password = '(mot de passe hashé)'; L'utilisateur Dupont souhaite se connecter avec son mot de passe « truc » hashé en MD5. SELECT uid FROM Users WHERE name = 'Dupont' AND password = '45723a2af3788c4ff17f8d1114760e62'; Attaquer la requête[modifier | modifier le code] Utilisateur : Dupont' --Mot de passe : n'importe lequel La requête devient : SELECT uid FROM Users WHERE name = 'Dupont' -- ' AND password = '4e383a1918b432a9bb7702f086c56596e'; SELECT uid FROM Users WHERE name = 'Dupont'; L'attaquant peut alors se connecter sous l'utilisateur Dupont avec n'importe quel mot de passe. SELECT ...
Proxy Un article de Wikipédia, l'encyclopédie libre. Un proxy est un composant logiciel informatique qui joue le rôle d'intermédiaire en se plaçant entre deux hôtes pour faciliter ou surveiller leurs échanges. Dans le cadre plus précis des réseaux informatiques, un proxy est alors un programme servant d'intermédiaire pour accéder à un autre réseau, généralement internet. Par extension, on appelle aussi proxy un matériel (un serveur par exemple) mis en place pour assurer le fonctionnement de tels services. Patron de conception en programmation[modifier | modifier le code] Représentation schématique d'un serveur proxy, où l'ordinateur au milieu agit comme un intermédiaire entre les deux autres. Le concept de proxy (patron de conception) peut être utilisé dans n'importe quel programme informatique. Si deux personnes qui ne parlent pas la même langue veulent communiquer, elles ont besoin d'un interprète. Proxy réseau[modifier | modifier le code] Accès internet[modifier | modifier le code] Pour HTTP
securite ubuntu Ubuntu est un système relativement sûr1), mais cela ne doit pas vous empêcher d'être vigilant et de suivre quelques recommandations. Voici comment protéger efficacement vos données personnelles. Parce que vos informations personnelles sont enregistrées à l'intérieur de votre système, et sans sécurisation il serait facile d'accéder à toutes vos données à distance et encore plus facilement physiquement. C'est pourquoi il est nécessaire de définir une méthode de sécurité fiable . Pour les particuliers Pour le particulier, l'enjeu est plutôt la tranquillité et la stabilité du système. Cela signifie un système régulièrement mis à jour et l'installation de logiciels uniquement à partir des dépôts officiels. Pour les entreprises On ne le répétera jamais assez, surtout aux PME/PMI : la sécurité est un enjeu majeur d'une politique économique ! Nous sommes entrés dans l'ère d'un capitalisme sauvage, où tous les coups sont permis pour semer et/ou abattre la concurrence. Pour aller plus loin : Astuce
squid Squid est un serveur mandataire, en anglais un proxy, entièrement libre et très performant. Il est capable de gérer les protocoles FTP, HTTP, HTTPS et Gopher. Il est généralement utilisé dans certaines entreprises et universités pour des fonctions de filtrage d'URL ou en tant que tampon. Les pages Internet sont stockées localement ce qui évite d'aller les recharger plusieurs fois et permet d'économiser la bande passante Internet. Pré-requis Disposer d'une connexion à Internet configurée et activée. Installation Installer le paquet squid. Si après l'installation vous obtenez [fail] lors du démarrage de Squid, alors il faut simplement spécifier le nom de la machine dans la configuration de Squid. Pour mettre en pratique Squid, il suffit simplement de configurer les navigateurs web client afin d'utiliser un proxy, ayant pour adresse celle de la machine squid. Il est également possible d'appliquer le serveur mandataire à l'ensemble des utilisateurs et logiciels des stations clientes. Tampon DNS