Code HTML dans une Base de Données

Suivre ce topic
Ce topic est suivi par : Tred
Ce topic a été résolu
Tred

Tred Le 2 mai 2020 à 19:24 (Édité le 2 mai 2020 à 19:25)

Bonsoir à tous ! J'ai besoin de lumière sur ce qui suit car il n'y a pas très longtemps que j'ai commencé avec PHP et MySQL, et il y a des choses dont je n'ai pas la maîtrise. M'est-il permis d'insérer du code HTML dans une base de données lorsqu'en tant qu'Admin je rédige un article ou news (depuis un formulaire) que je veux stocker d'abord dans la BDD et pour le publier plus tard sur mon site ? Aidez-moi à comprendre. Merci !

PrimFX

PrimFX Le 20 mai 2020 à 12:01

Bonjour @Tred,

C'est une très bonne question 😉 Le stockage de HTML ou de code de manière générale fait souvent un peu "peur" lorsque l'on sait qu'afficher du code de façon brute peut rapidement poser des soucis de sécurité comme des injections de code.

Si tu es le seul à pouvoir stocker ces articles en base de données, ça ne posera pas de souci : tu sais ce que tu publies et tu ne vas pas "auto-hacker" ton site, tu peux donc tout à fait stocker directement du code HTML au sein de ta base de données ! Je te recommande toutefois de toujours utiliser des requêtes préparées (si tu utilises PDO & MySQL) afin de t'assurer que tu ne rencontres jamais d'injection SQL. Les requêtes préparées ($bdd->prepare(...)) permettent d'échapper le contenu inséré et donc de sécuriser l'insertion de contenu (HTML ou non) dans ta base de données 😉

En utilisant tes requêtes préparées, le stockage en base de données n'est donc plus un problème. Par contre, l'affichage de code non échappé (c'est-à-dire où le code sera exécuté) peut toujours poser un risque : c'est la raison pour laquelle il faut toujours échapper (par exemple avec htmlentities(...), htmlspecialchars(...), etc. en PHP) du code publié par des utilisateurs de ton site, ou bien l'exécuter uniquement après l'avoir méticuleusement vérifié et (dans certains cas particuliers seulement) : dans le cas du code HTML, tu peux par exemple limiter le code de tes utilisateur à quelques balises seulement. Par contre, à nouveau, il n'y a à priori pas de souci pour exécuter ton propre code après l'avoir stocké en base de données, tant que tu as un total contrôle de celui-ci !

N'hésite pas si tu souhaites davantage de précisions sur certains points : c'est assez difficile à résumer en quelques paragraphes 😅

A bientôt,

Boris

Meilleure réponse
EnderMC

EnderMC Le 20 mai 2020 à 12:09

Bah après on peut faire ça, faut juste penser au htmlspecialchars(), pour qu'il n'y ait pas d'injection de code (comme l'a dit @PrimFX au-dessus). De plus, pour l'affichage, si ce sont des balises HTML avec les chevrons (< et >), on ne vera rien : le htmlspecialchars() va "tranformer" < en &lt; et > en &gt;.

Tred

Tred Le 20 mai 2020 à 13:56

Bonjour à tous ! Merci beaucoup pour vos réponses. C'est compris!!

EnderMC

EnderMC Le 20 mai 2020 à 13:58

Content pout toi 👍

Bankassbook

Bankassbook Le 19 juillet 2020 à 01:11 (Édité le 19 juillet 2020 à 01:22)

Bankassbook

Je vous invité de installé application Bankassbook dans votre téléphone pour bien communiqué avec vos proches en groupe discussion en ligne appelé vidéo vocal messager tout ce gratuit avec application Bankassbook va ci touche ici Bankassbook chat

Bankassbook

Bankassbook Le 19 juillet 2020 à 01:17

Je vous invité de installé application Bankassbook dans votre téléphone pour bien communiqué avec vos proches en groupe discussion en ligne appelé vidéo vocal messager tout ce gratuit Playtube Bankassbook

Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte