Wie würde ich über das Entfernen von Skript-Tags und alles, was in ihnen steckt, mit PHP gehen?Streifen <script> Tags und alles dazwischen mit PHP?
Antwort
Wie David sagt, reicht das Filtern von Skript-Tags nicht aus, wenn eingehende Daten bereinigt werden sollen. HTML Purifier verspricht das volle Paket zu tun:
HTML Purifier ist eine standardkonforme HTML-Filter-Bibliothek in PHP geschrieben. HTML Purifier entfernen wird nicht nur all bösartigen Code (besser als XSS bekannt) mit einer gründlich geprüft, sicher noch permissiven weißen Liste, es wird auch Ihre Dokumente sind Standards kompatibel, was nur erreichbar mit einem umfassenden Wissen über W3C stellen Sie sicher, Spezifikationen.
Gehen Sie mit HTML Purifier wie vorgeschlagen Pekka.
Gehen Sie nie mit regex für diesen Fall
Hier ist ein Beispiel, Regexes Filter gebrochen, Arbeiten auf Browsern (getestet auf Firefox)
<script script=">>><script></script><script>//" >
/**/
alert(1);
</script
>
Sie können das tun mit der Funktion 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>');
?>
NEIN, er kann diese Funktion nicht verwenden! Diese Funktion für " entfernt werden, wie ich es verstehe. –
Ich benutze diese:
$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));
Ich denke, diese Variablennamen sollten länger sein. – xorinzor
- 1. finde und alles inklusive andere Tags mit Regex
- 2. Entfernen Tag und Inhalt dazwischen mit REGEX/PHP
- 3. Selective Streifen-Tags in Textmate
- 4. PHP <? Tags auf WAMP
- 5. Streifen alle Klassen von p-Tags
- 6. PHP 5.x und Ignorieren <xml> Tags?
- 7. Stripping alles außer HTML-Tags mit Perl
- 8. Javascript und `<> ...</>` Tags
- 9. TinyMCE 4 - Klartext/Streifen HTML-Tags Schaltfläche
- 10. Streifen-Tags von Json Ajax Antwort
- 11. PHP - ersetzen <img> Tags und zurück src
- 12. PHP regex spezifische URL und andere Streifen
- 13. PHP-Regex zum Ausschneiden alles zwischen definierten Tags
- 14. <?= ?> spezielle Tags in PHP
- 15. Wie Tomahawk <t:saveState> und <t:dataList> Tags mit Standard-JSF-Tags ersetzen?
- 16. PHP-REGEX - Ersetzen Zeilenumbruch mit <br> innerhalb Pre-Tags
- 17. ckeditor Streifen <span> und Stil Attribute
- 18. wie PHP-Tags mit dem Domparser
- 19. passende zwei Zeichen mit mehreren Zeilen dazwischen
- 20. Service und Datenzugriffsschicht mit Streifen und Mongodb
- 21. PHP und HTML CSS TAGS
- 22. Wie Ladungen mit Streifen und Node.js
- 23. Streifen verbinden mit Omnipay
- 24. Mehrere Vorkommen mit nichts dazwischen
- 25. NSDateFormatter mit benutzerdefinierten String dazwischen
- 26. PHP ungreedy alles
- 27. Regulärer Ausdruck alles passen, außer HTML-Tags
- 28. Streifen Präfix und Wert
- 29. PHP: Alles auflisten enthält
- 30. Auswahl alles aus SQL-Datenbank mit PHP und android
Ich hoffe, Sie sind nicht versuchen, eine Benutzereingabe mit schwarzen Listen zu sanieren. Sie werden 'onclick',' onmouseover', 'href =" javascript: ',' src = "javascript:' und viele andere vermissen. – Quentin
Sie sollten wirklich Davids Hinweise besuchen, aber um Ihre Frage zu beantworten, finden Sie in meinem Beitrag. – oezi
Bitte fragen Sie Ihren Bedarf klar – Karthik