Co zrobić, aby usunąć tagi skryptów i wszystko wewnątrz nich za pomocą PHP?Strip <script> znaczniki i wszystko pomiędzy PHP?
Odpowiedz
Jak mówi David, filtrowanie tylko znaczników skryptów nie wystarcza, jeśli chcesz odkażać przychodzące dane. HTML Purifier obiecuje zrobić pełny pakiet:
HTML Oczyszczacz jest zgodnych ze standardami HTML filtr biblioteka napisana w PHP. HTML Oczyszczania będzie nie tylko usunąć złośliwą kod (lepiej znany jako XSS) z dokładnie zbadanym, bezpiecznym jeszcze pozwalającej białej listy, będzie również upewnić się, że dokumenty są zgodne z normami , coś osiągnąć tylko z wszechstronnej wiedzy W3C specyfikacje.
Idź z HTML Purifier, jak zasugerował Pekka.
Nigdy nie idź z regex w tym przypadku
Oto przykład, regexes filtry uszkodzony, działa w przeglądarkach (testowane na Firefox)
<script script=">>><script></script><script>//" >
/**/
alert(1);
</script
>
można to zrobić z funkcji strip_tags
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>
NIE, nie może korzystać z tej funkcji! Ta funkcja w ", zostało usunięte, jak rozumiem. –
Używam tego:
$tag_para_remover_codigo_fonte_url_dentro_buscador = array("head","script","style","object","embed","applet","noscript","noframes","noembed");
for ($i=0;$i<count($tag_para_remover_codigo_fonte_url_dentro_buscador);$i++) {
$codigo_fonte_url_dentro_buscador = preg_replace("/< *" . $tag_para_remover_codigo_fonte_url_dentro_buscador[$i] . "[^>]*>(.*?)<\/" . $tag_para_remover_codigo_fonte_url_dentro_buscador[$i] . " *>/i"," ",$codigo_fonte_url_dentro_buscador);
}
$codigo_fonte_url_dentro_buscador = html_entity_decode(strip_tags($codigo_fonte_url_dentro_buscador));
Myślę, że te nazwy zmiennych powinny być dłuższe. – xorinzor
- 1. Heroku, Cienki i wszystko pomiędzy
- 2. Zamień wszystko pomiędzy [i] w regex java
- 3. PHP - zastąp znaczniki <img> i zwróć src
- 4. RegEx, aby wybrać wszystko pomiędzy dwoma znakami?
- 5. Regex dopasować wszystko pomiędzy ciągiem i karetki (^) bez występowania daszka (^)
- 6. Znaczniki czasu MySQL i data php()
- 7. „Symbole Strip debugowania podczas kopiowania” i „Strip Związany Produkt”
- 8. Ucieczka z literału <? Php i <? w skrypcie PHP
- 9. Dlaczego "<?" już nie działa i działa tylko "<? php"?
- 10. MySQL - POMIĘDZY operatorem FLOAT (10,6) działa jak> i <, zamiast> = i <=
- 11. SEO: <button> vs <a> Znaczniki HTML
- 12. Strip Inline CSS i JavaScript w Railsach
- 13. Dlaczego znaczniki czasu PHP i JavaScript nie pasują do siebie?
- 14. JavaScript Strip Vowels
- 15. strip verbose python regex
- 16. Różnica pomiędzy hosta i domeny w parametrach Cookie PHP
- 17. Jak echo w PHP, znaczniki HTML
- 18. Jak usunąć wszystko po spacji w PHP?
- 19. PHP znaczniki usuwania HTML z ciągiem
- 20. Regex - Strip non numeric i usuń centy, jeśli jakieś.
- 21. Python strip() multiple characters?
- 22. strip tags python
- 23. Tridion i SmartTarget: znaczniki tcdl przekonwertowane na <smarttarget: xxx> zamiast <tridion:xxx>
- 24. Php co znaczy <<<?
- 25. Różnica pomiędzy * i + regex
- 26. Znaczniki HTML w i18następnym tłumaczeniu
- 27. Podwójne cudzysłowy pomiędzy skrypt php echo
- 28. <?= ?> specjalne tagi w php
- 29. Różnica pomiędzy `nazwy (DF) [1] <-` i 'nazwy (DF) [1] <- `
- 30. Drzewo D3.js Rozwiń wszystko i Zwiń wszystko
Mam nadzieję, że nie próbujesz odkażać danych wprowadzanych przez użytkownika za pomocą czarnych list. Będziesz tęsknił za 'onclick',' onmouseover', 'href =" javascript: ',' src = "javascript:' i wieloma innymi. – Quentin
powinieneś naprawdę uczestniczyć w podpowiedziach Davida, ale żeby odpowiedzieć na twoje pytanie, zobacz mój post. – oezi
Proszę zapytaj o swoją potrzebę wyraźnie – Karthik