You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Juan a32bec9a7e
session updates and evaluation database
3 years ago
..
eval-blanc corrections eval-blanc 3 years ago
evaluation session updates and evaluation database 3 years ago
session1 quelques précisions 3 years ago
session2/blog session updates and evaluation database 3 years ago
session3 blog update login + md5 3 years ago
session4/api session updates and evaluation database 3 years ago
README.md README update : CORS and HASH 3 years ago

README.md

developpement BACK-END avec notions de sécurité / sécurisation

Les résumé des point vue lors des différentes session et un résumé des failles et des solutions pour les sécuriser.

session 1 :

/bak

exemple de code php correspondant à certain pseudo codes

  • variables php
  • tableaux
  • boucles for
  • ...

/blog

Exemple d'un code de blog permettant d'afficher un article après connection à une base de données.

  • code mysqli pour se connecter à une base de données
  • comment se protéger des failles xss (fonction strip tags ou htmlentities)
  • comment valider un champ avec une expression rationnelle

session 2 :

/blog

Exemple d'un code de blog permettant d'afficher un article après connection à une base de données.

  • code mysqli pour inserer des enregistrements
  • comment se protéger des injections SQL (en utilisant des requêtes préparées)
  • en exercice : modifier index.php pour faire pourvoir permettre à un internaute de poster un commentaire.

pour résumer :

  • XSS ou "Cross Site Scripting" = le fait d'injecter du JS dans des champs de saisie pour exécuter du code sur le navigateur client. On s'en protège en supprimant les tags html, soit tous, soit plus finement en limitant ceux autorisés par exemple). Ceci peut aussi être géré via les CORS dans les entêtes échangés entre le serveur et le navigateur de l'internaute.
  • Injections SQL = le fait d'injecter du code SQL dans les champs de saisie en espérant que ce code soit exécté par le moteur de bases de données. On s'en protège en "escapant" les zones saisies ou en forçant les type. Mais plus cimplement en utilisant des requêtes préparée et en laissant la librairie (mysqli pour php) ou l'ORM ou le framework faire le travail à notre place.
  • Ne pas stocker les mots de passe en base = pour éviter que'un utilisateur malveillant ne puisse trouver les mots de passe ou qu'une personne accédant à la base ne puisse les lire en claire. Utilise un hashage (et éventullement un salt) pour sotcker une chaine unique que l'on sait reconstituer mais dont on ne sait pas inverser le process.

referecnce Hash :

Il existe de nombreux types dalgorithme de hachage tels que Message Digest (MD, MD2, MD4, MD5 and MD6), RIPEMD (RIPEND, RIPEMD-128, et RIPEMD-160), Whirlpool (WHIRLPOOL-0, WHIRLPOOL-T, and WHIRLPOOL) ou encore Secure Hash Function (SHA-0, SHA-1, SHA-2, and SHA-3). Dans lunivers des crypto-monnaies, les algorithmes de hachage les plus courant sont SHA-256 et X11.

https://www.blockchains-expert.com/hachage-cryptographique-le-guide-pour-tout-comprendre/

exemple de cors très restricitfs :


 34 <Directory "/home/dev.polux.studio/mds/site">
 35     Header set Content-Security-Policy \
 36         " \
 37         script-src 'unsafe-inline' 'self'; \
 38         default-src 'none'; \
 39         connect-src 'self';  \
 40         img-src 'self' 'unsafe-inline'; \
 41         style-src 'self' 'unsafe-inline'; \
 42         base-uri 'self'; \
 43         font-src 'self' data:; \
 44         "
 45 </Directory>