Visualizzazione risultati 1 fino 4 di 4

Discussione: htmlspecialchars() escludendo alcuni tag html

  1. #1
    Guest

    Post htmlspecialchars() escludendo alcuni tag html

    Salve,
    avrei una domanda per quanto riguarda le funzioni htmlentities() o htmlspecialchars() . Prima di tutto vorrei sapere dettagliatamente le differenze tra questi inoltre. Il mio obiettivo sarebbe di applicare una di queste funzioni in un chat globale ma lasciare comunque inviabili immagini o link a determinati URL.

    Quindi:
    $messaggio = htmlspecialchars($_GET["messaggio"]);

    Per poter però inserire il tag img e a ?

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Differenza tra le due funzioni: dalla documentazione ufficiale, della htmlspecialchars():
    Certain characters have special significance in HTML, and should be represented by HTML entities if they are to preserve their meanings. This function returns a string with these conversions made. If you require all input substrings that have associated named entities to be translated, use htmlentities() instead.
    Equivalentemente, dalla documentazione ufficiale della htmlentities():
    This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all characters which have HTML character entity equivalents are translated into these entities.
    ----------

    In generale, io per far inserire link e immagini utilizzerei i bb-code con le parentesi quadre (o caratteri equivalenti): dopo aver applicato la htmlentities o htmlspecialchars, ti trovi un testo con tutti i caratteri "scrivibili" evitando quindi attacchi xss o comunque html malevolo. Successivamente poi puoi sostituire (tramite espressioni regolari o semplici ricerche di stringhe) i bb-code nei corrispondenti tag html voluti.

    Ci sarebbe anche un altro modo forse più semplice, ma che non permette di stampare tag html (cosa che invece con il modo sopra sarebbe possibile): usando la strip_tags(), e come secondo parametro impostare i tag "a" e "img".

    Ciao!
    Ultima modifica di alemoppo : 05-12-2013 alle ore 17.03.52 Motivo: tratteggi

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    In generale, io per far inserire link e immagini utilizzerei i bb-code con le parentesi quadre (o caratteri equivalenti): dopo aver applicato la htmlentities o htmlspecialchars, ti trovi un testo con tutti i caratteri "scrivibili" evitando quindi attacchi xss o comunque html malevolo. Successivamente poi puoi sostituire (tramite espressioni regolari o semplici ricerche di stringhe) i bb-code nei corrispondenti tag html voluti.
    [...]
    Ottimo! Intendi quindi dire che, prima di tutto la variabile la passi con htmlspecialchars(), una volta fatto tramite regex controllo la presenza di eventuali BBCODE e quindi sostituisco questi con i tag html voluti, intendi questo?

  4. #4
    Guest

    Predefinito

    Risolto! Grazie mille utilissimi! :-)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •