Nous construisons un site de contenu généré par l'utilisateur où nous voulons permettre aux utilisateurs d'intégrer des éléments tels que des vidéos, des slideshows, etc ... Quelqu'un peut-il recommander une liste de tags généralement acceptée/attributs permettant de nettoyer les rails, ce qui nous donnera une assez bonne sécurité, tout en permettant une bonne quantité de formatage html/contenu intégrable?Rails Sanitize: Safety + Autorisation Embrayages
Répondre
Tant qu'il est désactivé, vous devriez être en mesure d'autoriser des objets. Vous pourriez même être en mesure de définir les paramètres acceptables réels des balises d'objets, de sorte que vous n'autorisez qu'une liste blanche, et les objets abitraités ne peuvent pas être inclus.
Toutefois, il peut être préférable de fournir un support d'interface utilisateur pour l'intégration. Par exemple, je demande à l'internaute une URL YouTube, puis dérive le code d'intégration de la vidéo.
Plusieurs avantages: - la valeur par défaut du code YouTube n'est pas conforme aux normes, donc je peux construire mon propre code objet - J'ai un contrôle complet sur la façon dont les éléments intégrés sont inclus dans la page de sortie
Honnêtement dire permettant aux utilisateurs utiliser les éditeurs WYSIWYG Html peut sembler bien, mais en pratique, cela ne fonctionne pas bien pour les utilisateurs comme pour les développeurs. Les raisons sont les suivantes:
- Encore un comportement trop différent dans différents navigateurs.
- La liste blanche permet de sécuriser le site, mais les utilisateurs finiront par appeler et demander d'autoriser un autre paramètre pour le tag OBJECT ou similaire. Les listes noires ne sont tout simplement pas sécurisées.
- Peu d'utilisateurs savent ce qu'est le tag HTML.
- Pour les utilisateurs, il est difficile de formater le texte (comment pouvez-vous leur dire d'utiliser HEADER au lieu de BOLD + FONT-SIZE).
- Généralement, il est assez douloureux et vous ne pouvez pas vraiment changer la conception du site si nécessaire, car les utilisateurs n'utilisent pas correctement le HTML.
Si je ferais système CMS comme maintenant, je serais probablement aller avec sémantique balisage.
La plupart des utilisateurs, s'habituer rapidement et c'est juste du texte brut (comme ici à SO).
Vous pouvez également générer du code HTML et prendre en charge les balises nécessaires.
Par exemple, si vous avez besoin d'incorporer l'image que vous pourriez écrire quelque chose comme:
Mon visage: image- http://here.there/bla.gif
qui générerait HTML pour vous comme ceci:
<a class='image-link' title='My Face' href='http://here.there/bla.gif'>
<img alt='My Face' src='http://here.there/bla.gif' />
</a>
Il y a beaucoup de langages de balisage autour, alors il suffit de choisir celui qui vous convient le mieux et d'ajouter vos propres modifications.
Par exemple, GitHub utilisations modifiées markdown
et le code pour l'analyser est juste un couple de lignes.
Un inconvénient est que les utilisateurs ont besoin d'apprendre la langue et ce n'est pas WYSIWYG.
Cordialement,
Dmitriy.
Il y a un super projet pour ça. Il a même embed-analyse ne permet youtube intègre, par exemple
Voulez-vous dire que quelque chose comme démarquage ne nécessite aucun assainissement que ce soit? – Noz
@Noz non, je ne suis pas. –