6
votes

Comment démarquer des citations d'une boîte d'entrée à l'aide de PHP?

J'ai ceci:

$inputData['title'] = str_replace('"', '', $_POST['title']);


1 commentaires

En vedette dans Jeff Atwood: Overflow de pile - Bâtir des logiciels sociaux pour l'anti-social à 13 min 25 secs. (Qui indique également que la conversation était probablement d'environ 10 ans plus tôt que la date de publication de 2020.)


3 Réponses :


2
votes

L'entrée de l'utilisateur doit être exécutée via htmlspecialchars () à utiliser dans ce type de cas.


0 commentaires

-1
votes

Je vous recommande vivement d'utiliser htmlenttities ($ string, ent_quotes) avant d'afficher tout ce qui est généré n'importe où ...


1 commentaires

HTMENTITÉS n'a pas fonctionné pour moi, seulement HTMLSpecialchars (). Le problème était que, pour une raison quelconque, les HTMLentités ne manipulaient pas l'accent correctement



8
votes

Si je comprends la question correctement, vous souhaitez supprimer " à partir de $ INPUTDATA ['Titre'] , donc votre code HTML n'est pas fous?

Si tel est le cas, la solution "droite" n'est pas de supprimer des guillemets doubles, mais de échapper avant de faire la sortie réelle.

Vous envisagez de générer HTML, ** Vous devez utiliser la fonction [`htmlspecialchars» [1] **; De cette façon, deux devis * (et quelques autres caractères) * seront codés sur des entités HTML et ne causeront aucun problème lorsqu'il est injecté dans votre balisage HTML.

par exemple: xxx

Remarque: En fonction de votre situation (surtout, sur le codage / charert que vous utilisez peut utiliser) , vous aurez peut-être besoin de passer des paramètres supplémentaires à htmlspecialchars .

En règle générale, vous devez toujours échapper aux données que vous envoyez en tant que sortie, peu importe le type de format de sortie avoir.

par exemple:

  • Si vous générez un XML ou HTML, vous devez utiliser htmlspecialchars < / li>
  • Si vous générez des SQL, vous devez utiliser mysql_real_escape_string ou un équivalent, en fonction du type de base de données que vous travaillez avec

1 commentaires

Je viens de remarquer: on pourrait utiliser des guillemets simples au lieu de guillemets doubles dans l'entrée HTML (comme ). Mais comme HTMLSpecialchars quitte des guillemets simples seuls, cela pourrait être un trou de sécurité?