Front End / Back End / Full Stack : quelles différences?

Pour comprendre la différence entre développement Front End et Back End, imaginez que vous ouvrez un magasin de vêtements.

Vous allez avoir besoin de 2 parties dans la magasin, il y a d’abord la boutique qui est l’espace de vente où vous allez recevoir vos clients. Vous allez engager une personne qui va alors s’occuper d’agencer la boutique pour que cela reflète l’identité de votre marque mais aussi pour donner aux clients l’envie d’acheter vos produits.

A l’arrière de la boutique inaccessible au client, c’est là où vous allez ranger et gérer vos stocks de vêtements, gérer les livraison avec vos fournisseurs, etc, bref ce que le client ne verra jamais mais dont l’activité est essentiel pour faire tourner votre boutique.

Et bien disons maintenant  que le magasin c’est un site web, le développeur front end va s’occuper de tout ce que va être vu par le client et le développeur back end s’occupe de tout ce qui permet de faire tourner le site web

Le développement Front End

Le « frontend » désigne les éléments d’un site internet que vous voyez à l’écran et avec lesquels vous pouvez interagir depuis votre navigateur

Et tout ça c’est en général codé avec du HTML, CSS, JavaScript par le dev Front End. A noter que ce sont de plus en plus les webdesigners qui prennent en charge le développement front end

Il s’agit sur une page web notamment de polices, de menus déroulants, de boutons par exemple. Bref tout ce que vous voyez sur votre navigateur et avec lequel vous pouvez interagir

Mais comme On l’a vu : pour que ce front end puisse tourner il faut aussi du développement back end !

Le développement Back End

Le « backend » est l’arrière boutique d’un site web et donc invisible à l’utilisateur mais qui donne vie au site web. Et il est composé essentiellement de trois éléments :

  • Un serveur (pour l’hébergement web)
  • Une application (c’est à dire le site web) qui tourne donc sur le serveur
  • Et une base de données qui va stocker toutes les données : que ce soit celle du site web, données clients, ou produits, etc.

Et c’est codé avec des langages comme le PHP, Python SQL, Ruby et Java par le développeur Back End.

Le développement Full Stack

Enfin terminons avec Une dernière catégorie de développeurs. Ce sont des devs qui sont capables aussi bien d’intervenir sur le front end que sur le back end. On les appelle les développeurs Full Stack. Un développeur Full Stack est donc un développeur capable d’intervenir sur n’importe quelle couche technique d’une application.

La DMZ pour les nuls

Le terme DMZ vient de l’anglais “DeMilitarized Zone” et veut dire zone démilitarisée en francais. En informatique, la DMZ est un sous-réseau isolé séparant le réseau local (le LAN donc) et un réseau considéré comme moins sécurisé, comme Internet par exemple. Et cette séparation est faite par un firewall.

La DMZ héberge justement des machines du réseau interne qui ont besoin d’être accessibles depuis l’extérieur, c’est le cas notamment lorsqu’ils fournissent un service fourni aux utilisateurs sur Internet (serveur web, un serveur de messagerie, proxy, RP, un serveur FTP public, DNS, VoIP, etc)

La DMZ joue le rôle de « zone tampon » entre le réseau à protéger et un réseau hostile. Les serveurs du LAN ne sont jamais exposés directement à Internet. Et à l’inverse, les personnes de l’extérieur n’ont jamais à accéder directement à des ressources du LAN. Tout doit d’abord transiter par la DMZ

En terme de sécurité cela veut aussi dire qu’en cas de compromission d’un des services dans la DMZ, le pirate n’aura accès qu’aux machines de la DMZ et non au réseau local.

A noter qu’il est aussi tout à fait possible de mettre en place des DMZ en interne afin de cloisonner le réseau interne selon différents niveaux de protection

En termes d’architecture, Il existe plusieurs façons de concevoir un réseau avec DMZ.

La première méthode est d’utiliser Un seul pare-feu avec trois interfaces réseau à créer. Le réseau externe est formé sur la première interface, entre le FAI et le firewall. Le réseau interne est formé à partir de la deuxième interface réseau. Et la DMZ à partir de la troisième interface. Et les différentes règles de firewall vont contrôler le trafic entre lnternet et la DMZ, et entre le LAN et la DMZ. Le principal inconvénient de cette architecture est que si cet unique firewall est compromis, cette architecture tombe.

Une architecture plus sécurisée consiste simplement à utiliser deux firewalls pour créer une DMZ. Le premier laisse passer uniquement le trafic vers la DMZ. Le second n’autorise que le trafic entre la DMZ et le réseau interne. Cette configuration est considérée comme mieux sécurisée, puisqu’un pirate devra compromettre deux machines pour accéder au LAN interne.

Pour aller plus loin sur ce sujet, je vous conseille fortement d’aller voir ma vidéo sur le firewall

L’Open Data, c’est quoi ?

L’open data est l’ouverture au grand public, via le web, de données collectées par des organismes publics ou des entreprises. et dont la diffusion est considéré comme d’intérêt général.

Bon, rassurez-vous,  je vais vous expliquer ça un peu plus en détails

Voici quelques exemples de données ouvertes :

  • Les horaires de passages du métro en temps réel et les incidents sur les lignes
  • Les données environnementales comme les prévisions météorologiques),
  • Les informations comme la base des prix du carburant, etc

Evidemment, il y a des conditions à respecter pour la mise à disposition de ces données.

Une donnée dite ouverte doit être :

  • complète, primaire et libre de droits,
  • accessible publiquement, gratuitement, et sans condition discriminatoire,
  • proposée dans un format exploitable et non propriétaire.

Voici un exemple de portail open data publique : http://opendata.paris.fr

Il s’agit du portail de données publiques de la ville de Paris. Il permet d’avoir par exemple la disponibilité en temps réel des autolib et des velib, la liste des sites municipaux équipés d’un point d’accès WiFi, etc.

Pourquoi l’Open data?

Les objectifs sont multiples :

  • Améliorer la transparence des données publiques : et donc contribuer à la transparence l’État en rendant publiques des données relatives aux dépenses de l’administration,
  • Et de ce fait Renforcer l’efficacité de l’action publique et la qualité du service public
  • Ensuite, l’open data permet de favoriser la croissance de l’économie numérique et l’Innovation notamment en encourageant la réutilisation de ces données ouvertes et leur monétisation via la création de services innovants pour les citoyens notamment via des applications web et mobiles.

Et pour illustrer ça, on peut prendre l’exemple de Datacity qui est un programme mis en place par la ville de Paris et l’incubateur NUMA. Ce programme réunit des acteurs industriels, startups, et autorités locales. L’objectif est de trouver des solutions innovantes  via les données de l’Open Data et de la ville de Paris pour améliorer la qualité de vie des citoyens, tout ça en traitant notamment problématiques lié à l’environnement urbain comme l’énergie, la gestion des déchets, la logistique, ou la mobilité

Le système d’exploitation pour les nuls

Dans ce post, je vais vous parler de l’OS (pour Operating System en anglais) ou système d’exploitation en français.

Qu’est ce qu’un OS? A quoi sert-il?

Le système d’exploitation est présent dans divers appareil électronique :

  • Sur les ordinateurs avec Windows et Mac OS
  • Le marché des serveurs avec Windows Serveur et Linux
  • Tout comme un smartphone ou une tablette avec iOS et Android

On voit tous ce qu’est un OS mais est ce que vous savez vraiment à quoi il sert?

 

Première chose à savoir c’est que l’OS est le 1er programme exécuté lors du démarrage d’une machine. Parce qu’un ordinateur ne fait qu’éxécuter des ordres (instructions). Et c’est l’OS qui va le guider dans le démarrage , quels sont les première actions à réaliser, ce qu’il faut afficher. Et c’est après ce démarrage que l’OS vous donne la main pour que vous puissiez vous servir de l’ordinateur.

Au delà du démarrage, le rôle de l’OS est d’assurer le lien entre les ressources matérielles de la machine et les logiciels applicatifs qui tournent dessus.

Pour illustrer tout ça, on va dire que L’OS est un guichet. En effet, l’OS reçoit des demandes des application pour l’utilisation des ressources de la machin. Et parmi les ressources de la machines, on aura par exemple ressources de stockage, de mémoires, des disques durs ou alors des ressources de calcul du processeur.

Le système d’exploitation accepte ou refuse ces demandes, puis réserve les ressources pour éviter que leur utilisation n’interfère avec d’autres demandes des autres applications.

Et en ce sens l’OS est responsable de la bonne exécution des applications via l’affectation des es ressources nécessaire au bon fonctionnement. Les utilisateurs interagissent donc avec les applications qui elles communiquent avec l’OS.

Néanmoins il est possible aussi pour Les utilisateurs de demander directement des services au système d’exploitation par une interface graphique, des lignes de commandes, des interfaces de programmation.

Maintenant nous allons voir les composants les plus important dans un OS et leur rôle :

  • Le kernel (ou noyau en francais) est un espace mémoire isolé repregoupant les fonctions clé de l’OS comme la gestion de la mémoire, des processus ou des entrées-sorties principales.
  • L’interpréteur de commande (en anglais shell) permettant la communication avec le système d’exploitation par l’intermédiaire d’un langage de commandes.
  • Le «File System» ou système de fichiers (en français), permet d’enregistrer les fichiers dans une arborescence. mais aussi de gèrer et autoriser la lecture et l’écriture des fichiers. Il offre également des mécanismes de protection permettant de contrôler quel utilisateur ou programme peut manipuler quel fichier.
  • Pilotes (ou drivers en anglais) qui sont des gestionnaires de périphériques) assure les entrées / sorties avec les périphériques comme les imprimantes, webcam, clé USB, souris etc. Chaque périphérique a ses propres instructions, avec lesquelles il peut être manipulé. Et evidemment Le système d’exploitation en tient compte.

IDS et IDS : comprendre l’essentiel

Dans cette vidéo, je vais vous expliquer ce qu’est un IDS et un IPS. Qu’est ce qu’un IDS? Qu’est ce qu’un IPS? Quels sont leurs rôles, leurs points communs et leurs différences ?

Intrusion Detection System

IDS pour Intrusion Detection System veut dire système de détection d’intrusion en français. Il s’agit d’un mécanisme qui a pour objectif de re pérer tout type de trafic potentiellement malveillant (par exemple les tentatives d’intrusion, attaques virales, débits trop importants et trafic sortant de l’ordinaire).

Pour résumer, un IDS va détecter une activité suspecte en s’appuyant sur une norme. Si les activités s’éloignent de la norme, l’IDS lance une alerte. Et l’IDS remplit cet objectif en surveillant les activités d’une cible (qui peut être un réseau ou des machines hôtes).

En fonction de la cible on aura 2 types d’IDS différents :

  • le premier est le Network IDS ou l’IDS réseau
  • Les NIDS (Network Intrusion Detection System), surveillent l’état de la sécurité du du réseau.
Network IDS

Le NIDS est situé sur un réseau isolé et ne voit qu’une copie du trafic. Et quand je dis trafic je parle des paquets qui circulent sur le réseau. Et en cas, de détection d’une menace, le NIDS peut lever des alertes et ordonner les actions pour le blocage d’un flux

En terme d’architecture,  Le NIDS est situé sur un réseau isolé et analyse une copie du trafic du réseau à surveiller, entre ses points d’entrées et les terminaux du réseau. A noter qu’Il est entièrement passif et n’est pas capable de dialoguer avec le réseau surveillé.

Host IDS

Il y a ensuite les Host IDS ou  IDS système. Les HIDS (Host Intrusion Detection System), surveillent l’état de la sécurité des hôtes selon différents critères :

  • Activité de la machine (comme par exemple le nombre et listes de processus, le nombre d’utilisateurs, ressources consommées, etc.)
  • Le second critère de surveillance est l’Activité de l’utilisateur sur la machine : horaires et durée des connexions, commandes utilisées, programmes activés, etc
  • Et évidemment le HIDS analyse toute Activité potentielle liée à l’activité d’un ver, d’un virus ou cheval de Troie

En terme d’architecture, le HIDS master récupère les informations remontées par une machine sur laquelle un client HIDS est installé. Ensuite, le HIDS master va analyser ces informations sur le fonctionnement et l’état des machines  afin de détecter les menaces.

Intrusion Prevention System

Passons maintenant à l’IPS. L’IPS (pour Intrusion Prevention System) veut dire système de prévention d’intrusion en français.

Il est situé en coupure, c’est à dire qu’il n’analyse pas une copie des données comme l’IDS, mais va analyser les données elles-mêmes. Ce qui veut dire que Les données réelles passent à travers l’IPS. L’IPS va réagir en temps réel en stoppant le trafic suspect qu’il reconnaît, notamment en bloquant les ports.

Comme l’IDS, il existe 2 principaux types d’IPS

Network Intrusion Prevention System

Les NIPS (network intrusion prevention system) sont des IPS permettant de surveiller le trafic réseau.

Le NIPS analyse le trafic réseau en s’appuyant sur une base de données de signatures d’attaque (comme un anti virus) et dès qu’il reconnait une signature, il en déduit que c’est une attaque.

Dans ce cas il peut prendre des mesures pour bloquer l’attaque avant qu’elle n’ait commencé en bloquant le flux malveillant.

Host Intrusion Prevention System

Les HIPS (host intrusion prevention system) sont des IPS permettant de suivre l’état de sécurité des machines hôtes. Le HIPS réalise cela à travers la surveillance des différentes éléments de la machine : les processus, les drivers, les .dll etc.

En cas de détection d’un processus suspect, le HIPS peut le stopper pour mettre fin à l’attaque.

Il y a deux inconvénients majeurs concernant les IPS :

  • Comme les IDS, les IPS ne sont pas fiables à 100 % mais la le principal risque c’est de bloquer du trafic légitime en cas d’erreur d’analyse
  • Le deuxième inconvénient de l’IPS est que, il est donc vulnérable et attaquable puisqu’il est en coupure sur le réseau.

Un flux malveillant peut exploiter une faille afin de prendre le contrôle sur l’IPS et désactiver ses fonctions de sécurité, et même pour éventuellement s’en servir pour mener de nouvelles attaques

Firewall et IPS réseau

Dernière chose parce qu’il y a beaucoup de confusion dessus, c’est la différence entre un firewall et un IPS réseau

Le rôle d’un IPS reseau est de détecter des attaques sur un réseau à partir d’une base de données de signatures d’attaque (comme un anti virus) et de les bloquer si nécessaire.

Le rôle d’un firewall est différent puisque son but est de faire du filtrage d’accès en définissant les communications autorisés ou interdites.

Par exemple :

  • Les accès sortant directes en HTTP vers l’extérieur du réseau sont interdits et ces flux doivent donc passer par le proxy de l’entreprise avant d’aller vers l’exterieur.
  • Ou alors Les accès entrants en tel protocol applicatif sont interdits sauf s’ils proviennent de cette machine externe spécifique à destination de cette machine interne spécifique, etc.

Mais c’est vrai que certains firewalls embarque des fonctions IPS avec eux d’où les confusions. Ce sont des fonctions complémentaires

D’ailleurs sachez que j’ai fait une vidéo dédiée sur les firewalls si vous voulez en savoir plus!

L'architecture technique en cookies