filtre html en PHP

Posté le mardi 13 février 2007 à 7 h 33, Read it in english with Google

cela faisait longtemps que je cherchais un bon filter de syntaxe HTML en PHP pour pouvoir enfin proposer aux posteurs d’écrire les commentaires en HTML pure.

Tout le monde jusqu’alors a dérivé cette problèmatique. Entre le BBcode, le wikitext (mainte fois reproduit), le Textile, le zcode (bbcode avec des > <) on est bien loin de la simplicité, des normes et du potentiel du language HTML. Par contre niveau sécurité, c’est sur qu’on est tranquille vu qu’on peut pas faire grand chose 🙂

Comme l’a dit Einstein :
Une personne intelligente résout un problème. Une personne sage l’évite.

Il faut croire qu’on est rentré dans l’air de l’intelligence 😀 , voici HTML Purifier

Attention, HTML purifier n’est pas un filtre batard, la syntax HTML qui ressort est valider par le W3C.
On est bien loin des anciens filtres comme PHP Input Filter (franchement limité), kses (mais où est le site officiel ?), le package PEAR HTML_Safe… etc
Ici c’est de l’or en barre, mais l’or ça pèse lourd. Je doute que les applications qui l’utiliseront filtreront les posts avant chaque affichage comme c’est le cas actuellement (punbb, IPB…).

C’est gourmand, mais efficace. Bien entendu, HTMLPurifier peut vous enlever les interactions javascript (qui pourrais provoquer des failles XSS). Tout est entièrement paramètrable, restreindre un attribut, une classe CSS, empêcher l’application d’un paramètre CSS, enlever les liens ou les images avec des URL externe, tout ce qu’on pouvait en attendre !!! Un petit plus, il parse aussi dans l’encodage que l’on veut !!! vraiment magnifique.

Le projet est tout jeune, il reste quelques améliorations à faire mais on en parle de plus en plus. Je suis encore en phase de test mais ça parait TRES prometteur et peut-être qu’enfin on pourra offrir des interfaces WYSIWYG dans les forums et les blogs 🙂

25 réponses à “filtre html en PHP”

  1. Delapouite

    Merci pour cette réponse claire sur ce problème pourtant si banal.

    Quelles sont les résultats de ta phase de test finalement ?

  2. XoraX

    Difficile à dire…
    L’éxécution n’est pas lente mais on obtient des résultats à la limite de l’acceptable pour une utilisation en directe.
    Tout d’abord il faut savoir que html-Purifier utilise, si il peut, la classe DOMDocument de php5. Cette classe n’étant pas disponible sous php4, il utilisera dans ce cas son propre parser php appelé DirectLex. Étonnamment, la différence n’est pas flagrante…

    voici quelques statistiques fait avec la méthode purify et la config par defaut de HTMLPurifier. Afin de mieux comparer, je les ai fais sur plusieurs serveurs, tous sur php5/cgi sauf mon P4, et réalisé hors des heures de pointe.

    Le parser PEARSax3 est un parser disponible sur PEAR que HTMLPurifier a implémenté comme option, je l’ai mis histoire de comparer et de rabaisser la notoriété de certains… « This post » correspond au texte de cet article 🙂

    P3 HT 3GHz, 768Mo DDR

    Case DirectLex PEARSax3 DOMLex
    HTML filesize: 4133 100.00% 0.0321 108.14% 0.0348 73.78% 0.0237
    HTML filesize: 3245 100.00% 0.0291 130.34% 0.0379 87.21% 0.0254
    HTML filesize: 6056 100.00% 0.0513 135.66% 0.0696 126.32% 0.0648
    HTML filesize: 66654 100.00% 0.6258 140.08% 0.8767 135.57% 0.8484
    <a href="foo> 100.00% 0.0053 99.03% 0.0053 34.29% 0.0018
    <a "=> 100.00% 0.0016 119.55% 0.0019 83.99% 0.0013
    This post 100.00% 0.0394 142.61% 0.0562 99.68% 0.0393

    1&1 serveur mutualisé

    Case DirectLex PEARSax3 DOMLex
    HTML filesize: 4133 100.00% 0.0266 107.70% 0.0286 98.92% 0.0263
    HTML filesize: 3245 100.00% 0.0346 98.59% 0.0342 66.78% 0.0231
    HTML filesize: 6056 100.00% 0.0501 133.98% 0.0672 104.79% 0.0525
    HTML filesize: 66654 100.00% 0.4791 146.83% 0.7035 90.21% 0.4322
    <a href="foo> 100.00% 0.0009 253.26% 0.0023 118.38% 0.0011
    <a "=> 100.00% 0.0007 133.66% 0.0009 119.31% 0.0008
    This post 100.00% 0.0188 144.30% 0.0271 89.95% 0.0169

    la dédibox de billy

    Case DirectLex PEARSax3 DOMLex
    HTML filesize: 4133 100.00% 0.0361 99.58% 0.0360 76.10% 0.0275
    HTML filesize: 3245 100.00% 0.0300 130.98% 0.0392 95.42% 0.0286
    HTML filesize: 6056 100.00% 0.0640 129.89% 0.0831 99.31% 0.0635
    HTML filesize: 66654 100.00% 0.6368 131.40% 0.8368 99.35% 0.6327
    <a href="foo> 100.00% 0.0017 490.77% 0.0082 117.19% 0.0020
    <a "=> 100.00% 0.0012 134.93% 0.0016 125.69% 0.0015
    This post 100.00% 0.0258 135.50% 0.0349 93.52% 0.0241

    Tout dépend donc du volume de données que l’on a traiter, mais généralement mieux vaut tout de même utiliser le cache.

  3. werutzb

    Hi!

    I want to extend my SQL knowledge.
    I red so many SQL books and would like to
    read more about SQL for my work as db2 database manager.

    What would you recommend?

    Thanks,
    Werutz

  4. cool

    Merci pour l’info, mais pour l’amour de dieu, tu n’as donc pas de correcteur orthographique ????

  5. XoraX

    ouè j’avoue…. je corrigerais ce soir 🙂

  6. schoooler

    Hi, i’m schoooler

    I’m new to the forum and just saying hello.

  7. ridha

    la version 4.1.1 date de mai 2010 et pourtant elle comporte des fonctions signalées deprecated par php 5.3. bizarre

  8. burun ameliyat? fiyatlar? 2022

    I used to be suggested this web site thrdough my
    cousin. I am now nott positive whether this publish is
    written through him as no one else understand such targeted approximately my trouble.
    You’re incredible! Thank you!

  9. pubg mobile epin sat?n al

    Useful info. Lucky me I discovered your site accidentally, and I’m surprised
    why this twidt of fate did not came about earlier!
    I bookmarked it.

  10. Space Chews Cheech And Chong

    When it comes to creative entrepreneurship, Richard « Cheech » Marin and
    Tommy Chong have been trailblazers since the 1970s.

  11. Hempified CBD

    In recent years, the popularity of CBD products has surged
    as more and more people turn to natural remedies
    for various health issues. One such product gaining traction in the market is
    Hempified CBD Gummies.

  12. Green Glucose Supplements

    Introduction: Green glucose supplements have been gaining popularity in recent years due to their numerous health benefits.

  13. Fiorinoyu otomobile cevirme

    Hello, this weekend is good designerd for me, since this occasion i
    am reading this impressive educational piece of writing here at
    my residence.

  14. odin4d

    The company suspects that nickel within the metallic
    parts of thhe health tracker could also be inflicting skin irritations for some.

  15. ??????? ??? ???

    ??????? ??? ??? — ??? ????????????? ?????? ???????? ??????? ????.

    ???????? ???? ?? ??????????? ???????????? ?? ????????? Android, ??????????? ????????? ????? ???? ??????? ?????????.
    ? ????? ????????? ?????????? ????, ????? ?????????
    ????????.

    ??????????? ??? ???? ??????????? ??????????? ????????? ????, ??? ?????????????? ? ????? ??????? ?????????.
    ????? ? ?????????????, ? ????
    ???????? ?????????????? ???????, ??? ?????????
    ??????????????? ??????? ? ?????? ???? ????? ???????????????.

    ??? ????????????? ??????????, ??? ?????
    ??????????? ????? ???????? ??????? ???????, ?
    ??? ???? ?? ??????? ???????????? ?????
    ???????????????? ?????????? ????? ??? ?????? ??????????,
    ???? ???? ???????????? ? ??????? ?? ????????????.
    ??? ?????? ?????? ??????? ??????? ????? ??????????????, ? ???????????
    ??????????? ???????????.

    ??????? ??????????? ????? ???????????????? ?????? ??? Android — ??? ????? ??????? ????? ?????????

  16. cheap sms

    Welcome to FlexySMS.com, your trusted partner for affordable and streamlined SMS solutions.
    We are experts in providing cheap SMS services, SMS
    gateway solutions, and large-scale SMS options tailored to
    meet your business needs. Whether you’re looking to send marketing messages, updates, or
    notifications, our strong SMS gateway ensures
    fast and protected delivery.

    At FlexySMS, we understand the importance of smooth communication. Our
    platform is designed to be user-friendly, flexible, and very reliable, ensuring that your
    messages reach the intended recipients without any hassle. Utilize our SMS gateway to
    boost customer engagement, optimize marketing campaigns, and
    simplify your communication processes.

    Join the numerous businesses that trust FlexySMS for their SMS needs
    and experience the difference of a service that’s both affordable and reliable.
    Discover the power of FlexySMS and take your business communication to the next level.

  17. login netral88

    Sungguh menakjubkan! Saya kira cuma orang-orang tertentu saja yang
    memiliki kesanggupan untuk menulis artikel sebagus ini. Mohon balas e-mail
    aku untuk mengobrol seputar tulisan yang bagus dan luar biasa lainnya untuk dibaca.
    Juga kunjungi laman aku netral88

  18. login netral88

    Sungguh menakjubkan! Saya kaprah cuma orang-orang tertentu saja yang mempunyai kesanggupan untuk menulis artikel sebagus ini.

    Mohon balas e-mail saya untuk berdialog perihal artikel yang baik dan luar
    biasa lainnya untuk dibaca. Juga kunjungi web saya netral88

  19. ???????????????? ??????????

    ???????????????? ?????????? —
    ??? ???????? ?????? ???????? ??????? ????.
    ???????? ???? ?? ??????? ?? Android, ???????????
    ????????? ????? ???? ?????
    ???????????. ? ????? ????????? ???? ? ??????? ??????? ??????, ????? ??????? ????????? ????.

    ???? ??? ??? ???? ??????????? ??????? ??????, ??? ?????? ??????? ???????
    ??????????. ????? ? ?????????, ? ???? ?????????????????
    ???? ????, ??? ????????? ????? ??????????? ? ?????? ???? ????? ?????????????.

    ??? ????????????? ??????????, ??? ????? ????????? ????? ???????? ??????????? ??
    ????, ? ??? ???? ? ???????????? ????????????? ???????????? ????? ?????????? ?????? ????? ??? ?????? ???????,
    ???? ???? ???????????? ? ???????
    ?? ????????????. ??? ?????? ?????? ??????? ??????? ??????????, ? ??????????? ??????????? ???????.

    ??????? ??????????? ????? ???????????????? ?????? ??? Android
    — ??? ????? ??????? ????? ?????

  20. graine féminisée interieur gros rendement

    C’est pile ce qu’il me fallait. Une montée douce et un goût fruité!
    Je ne m’en lasse pas.

  21. ??????? ???????????????? ???? ?? ???????

    ??????? ???????????????? ????
    ?? ??????? — ??? ???????? ?????? ???????? ???????
    ????. ???????? ???? ?? ??????????? ???????????? ?? ????????? Android, ??????????? ????????? ????? ????
    ????? ???????????. ? ????? ?????????
    ???????????????? ?????? ???, ????? ??????? ?????????
    ????.

    ??????????? ??? ???? ???????????
    ??????? ??????, ??? ?????? ??????? ??????? ?????????.
    ????? ? ?????????????, ? ???? ???????? ?????????????? ???????,
    ??? ????????? ???????????????
    ??????? ? ?????? ???? ?????
    ????????????.

    ??? ????????????? ?????????, ??? ????? ???? ????? ???????? ??????? ???????,
    ? ??? ???? ? ???????????? ????????????? ???????????? ????? ?????????? ?????? ????? ??? ?????? ???????, ???? ???? ???????????? ? ??????? ?? ????????????.
    ??? ?????? ?????? ??????? ??????? ????? ??????????, ? ??????????? ???????????
    ???? ?????? ??????.

    ??????? ??????????? ????? ???? ? ?????? ???
    Android — ??? ????? ??????? ????? ?????

  22. ???? ? ?????? ?? ???????

    ???? ? ?????? ?? ??????? — ??? ???????? ?????? ????????? ???????????????? ????.
    ???????? ???? ?? ??????? ?? ????????? ?????????? ? Android, ??????????? ????????? ????? ???? ????? ???????????.
    ? ????? ????????? ???????????????? ?????? ???, ????? ????????? ????????.

    ??????????? ??? ???? ???????????
    ??????? ??????, ??? ?????????????? ?
    ????? ??????? ?????????????. ????? ?
    ???????, ? ???? ????????????????? ???? ????,
    ??? ????????? ????? ??????????? ? ?????? ???? ????? ????????? ????????.

    ??? ????????????? ????????????, ??? ????? ??????????? ????? ???????? ??????????? ??
    ????, ? ??? ???? ???????? ???????????? ????? ?????????? ?????? ????? ??? ?????? ??????, ???? ???? ???????????? ? ??????? ?? ????????????.

    ??? ?????? ?????? ??????? ??????? ??????????, ? ??????????? ??????????? ???????.

    ??????????? ?????????? ??????????? ????? ???????????????? ??????
    ??? Android — ??? ????? ??????? ????? ?????

  23. ???? ?? ???? ??? ???????

    ???? ?? ???? ??? ??????? — ??? ????????????? ?????? ???????? ??????? ????.
    ???????? ???? ?? ??????? ?? ????????? ?????????? ? Android,
    ??????????? ????????? ????? ???? ????????
    ?????. ? ????? ????????? ??????????
    ????, ????? ???????????? ???????????? ?????????????.

    ???? ??? ??? ???? ??????????? ??????????? ????????? ????, ??? ?????? ???????
    ??????? ?????????????. ????? ? ?????????, ? ???? ???????? ?????????????? ???????, ??? ????????? ??????????????? ??????? ? ?????? ???? ????? ?????????????.

    ??? ????????????? ?????????, ??? ????? ???? ????? ???????? ??????? ???????, ?
    ??? ???? ?? ??????? ???????????? ????? ?????????? ?????? ????? ??? ?????? ?????????? ???????????, ????
    ???? ???????????? ? ??????? ?? ????????????.
    ??? ?????? ?????? ??????? ??????? ????? ??????????,
    ? ??????????? ??????????? ???????????.

    ?????????? ??????????? ????? ???? ? ?????? ??? Android — ??? ?????
    ???????? ??????? ? ????????

  24. ?????????? ???? ??? ?????? ?????????

    ?????????? ???? ??? ?????? ????????? — ??? ????????????? ?????? ???????? ????? ???????????.
    ???????? ???? ?? ??????????? ???????????? ?? ?????????
    Android, ??????????? ????????? ????? ???? ???????? ?????.
    ? ???????? ???????????? ???? ? ??????? ??????? ??????, ????? ???????? ?????????????? ???????.

    ???? ??? ??? ???? ??????????? ??????? ? ????, ??? ?????? ??????? ??????? ?????????.
    ????? ? ?????????, ? ???? ??????? ????? ??????? ???????, ??? ????????? ??????????? ???????????
    ? ?????? ???? ????? ???????????????.

    ??? ????????????? ????????????, ??? ????? ???? ????? ???????? ??????????? ??
    ????, ? ??? ???? ?? ??????? ???????????? ????? ???? ?
    ??????????? ????? ??? ?????? ??????????,
    ???? ???? ???????????? ? ???????
    ?? ????????????. ??? ?????? ?????? ??????? ??????? ??????????, ? ??????????? ??????????? ???????.

    ??????????? ?????????? ??????????? ????? ???? ? ?????? ??? Android —
    ??? ????? ??????? ????? ?????

  25. Ankara hava durumu

    What you said was actually very logical. However, what about this?
    suppose you were to create a killer post title?
    I am not suggesting your information is nnot solid., however suppose
    you added a post title to possibly grab a person’s attention? I mean filtre html en PHP iss kinda vanilla.

    You could peek at Yahoo’s front page and see how they write article titles to get viewers
    to click. You miught try adding a video oor a pic oor two to get
    readers excited about everything’ve got to say. In my opinion, it would bring your posts a little bit more
    interesting.

Laissez un commentaire :