replace dei tag <script></script>

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, ho questo codice:

PHP:
function bbcode($text)
{ 
  $bbcode = array("<script>", "</script>");
  $htmlcode = array("&lt;", "&gt;");
  $newtext = str_replace($bbcode, $htmlcode, $text);
  $newtext = nl2br($newtext);//second pass
  return $newtext;
}

Pero non so se è giusto..

quindi come posso fare che la persona può inserire tutto l'html ma non può inserire i tag <script></script> <iframe></iframe>
per la sicurezza che qualcuno potrebbe mettere dei virus.?

grazie mille.
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Per raggiungere il tuo scopo, abolire soltanto il tag script non è sufficiente.

A questo punto ti si pongono due alternative:
  1. Filtrare tutto ad eccezione di pochi tag di formattazione accuratamente selezionati
  2. Comporre un filtro generico di tutte le possibili componenti nocive che possono portare ad attacchi XSS

Nel primo caso, molto semplicemente, puoi affidarti alla funzione strip_tags() che PHP offre nativamente.

Nel secondo caso, la questione è molto complessa di suo e lo è ancora di più se sei un neofita nel settore e di conseguenza la scelta più pratica diventa l'utilizzo di una libreria come HTML Purifier che, in poche righe di codice, ti permette di filtrare tutta la parte nociva che può essere introdotta tramite html.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
scusa, cosi:

PHP:
<?php
$html = '<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>
           Ciao
        </title>
        <script>
            alert("Ciao!");
        </script>
    </head>
    <body>
        <h2>Ciao</h2>
        <script>
            alert("Ciao!");
        </script>
        <script>
            alert("Ciao!");
        </script>
    </body>
</html>
';

$html = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $html);

echo $html;

?>

non va bene?

sai perché non voglio utilizzare cose di terze parti che non so nemmeno io come si utilizzano..

poi ho fatto tutto da solo senza usare cose di altri.

per i iframe come posso fare?

grazie mille e buona serata.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ciao nel link che mi hai dato di strip_Tags,
ho trovato questo codice va bene?

PHP:
<?php 
function html2txt($document){ 
$search = array('@<script[^>]*?>.*?</script>@si',  // Strip out javascript 
               '@<[\/\!]*?[^<>]*?>@si',            // Strip out HTML tags 
               '@<style[^>]*?>.*?</style>@siU',    // Strip style tags properly 
               '@<![\s\S]*?--[ \t\n\r]*>@'         // Strip multi-line comments including CDATA 
); 
$text = preg_replace($search, '', $document); 
return $text; 
} 
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [PHP] Preg replace in preg replace callback PHP 2
Devil-94 .replace perchè non funziona ? Javascript 1
M replace string con jquery jQuery 1
felino Funzione get_node(): eseguire un replace WordPress 1
filippino Javascript Replace Javascript 1
voldemort Javascript e il metodo Replace Javascript 1
L directory ed replace PHP 0
S Regex per replace di un BBcode con parametri PHP 4
Z New Array e Replace dentro WHILE Javascript 0
M ereg replace PHP 5
max1850 Query sql con replace MS Access 0
D replace dot Javascript 4
L template e replace Classic ASP 1
F replace e innerhtml Javascript 5
metalgemini Problema Codifica caratteri con Replace(var,"","") Classic ASP 3
T come ordinare dei record recuperati da due tabelle MySQL 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
C prendere dei valori da Plugin e inserirli nel database joomla Joomla 0
otto9due Impedire esecuzione diretta dei file PHP 7
seranto Blocco preventivo e Registro dei Consensi per Cookie tecnici? Leggi, Normative e Fisco 2
F Scrivere dei dati in word con php PHP 0
M Problemi con la stampa dei valori in php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
G Somma dei Minuti PHP 3
W Elenco dei link del file presenti in una cartella PHP 2
C Esclusione dei giorni festivi Javascript 0
W Evitare ridondanza dei dati Classic ASP 3
I Passare dei parametri in javascript PHP 0
G Scelta dei Breakpoint HTML e CSS 1
D Javascript per il download dei dati Javascript 0
G MariaDB non restituisce dei valori PHP 7
J estrarre url dei file video da youtube "get_video_info" PHP 6
MarcoGrazia [PHP] Uso dei namespace PHP 5
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
W [WordPress] [WooCommerce] Non trovo più la Tab Visulizzazione dei Prodotti in questo nuovo Plugin WordPress 2
L Trasferimento dei file OLM Mac in formato PST sul sistema Mac Mac e Software 1
W [Javascript] Bootstrap Admin templates, mi dareste dei consigli? CMS (Content Management System) 0
maxnegri Sommare i prezzi dei prodotti aggiunti al carrello di diverse aziende con Select sum php mysqli PHP 10
spider81man [PHP] Pulsante SUBMIT per download diretto dei file PHP 9
C Creazione di una funzione per il filtraggio dei campi di un db Presentati al Forum 0
A [PHP] Generare nomi dei file con lettere minuscole e vocali senza accenti PHP 2
S Visibilità dei like dei propri amici su Facebook Social Media Marketing 2
G [HTML] Modificare ordine dei div in mobile responsive HTML e CSS 5
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
MarcoGrazia [PHP] Percorso dei file PHP 3
M New entry nel mondo dei DB Presentati al Forum 1
M [PHP] Aggiornare i dati dei record selezionati PHP 3
F Autocompletamento dei campi di una pagina jQuery 4
cristoforo58 Stampare dei valori XML in PHP PHP 0
xone [PHP] Contare numero dei giorni tra data_in e data_out PHP 11

Discussioni simili