Visualizzazione risultati 1 fino 10 di 10
Like Tree2Likes
  • 1 Post By silvermaledetto
  • 1 Post By istitutodinostrativo

Discussione: HTMLENTITIES array

  1. #1
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    47

    Predefinito HTMLENTITIES array

    Buongiorno,
    per essere sicuro di filtrare tutti i valori di un array prima di mandarli a schermo ho scritto una routine che ciclando sull'array (ottenuto da una query) sottopone ad htmlentities() tutti i valori.

    La routine è la seguente :
    Codice PHP:
    <?php
    $partecipanti
    = [
    'Simone' => [
    'anno' => '1986',
    'sesso' => 'M',
    'email' => 'test@notreal.com'
    ],
    'Gabriele' => [
    'anno' => '1991',
    'sesso' => 'M',
    'email' => 'test2@notreal.com'
    ],
    'Josephine' => [
    'anno' => '1985',
    'sesso' => 'F',
    'email' => 'test3@notreal.com'
    ],
    ];

    XSS($partecipanti);

    function
    XSS($partecipanti)
    {
    foreach (
    $partecipanti as &$row) {
    foreach (
    $row as $key => &$value) {
    $value = $value . "dsdsd";
    }

    return
    $partecipanti;

    }
    In teoria dovrebbe funzionare, ho fatto degli echo prima e dopo la 'cura', ma mi sembra una soluzione troppo banale, ammesso che funzioni.

    Grazie

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    Se è facile non è di soddisfazione?

    Codice PHP:
    $value = $value . "dsdsd";
    Assumendo questo fosse in origine $value = htmlentities($value);, per quello che hai descritto, dovrebbe funzionare.

    Una nota: htmlentities() converte tutto il possibile, mentre per evitare XSS di solito basta usare htmlspecialchars(), che converte solo i caratteri "pericolosi"

    Man mano che il tuo sito cresce, ad un certo punto di chiederai: perché devo scrivere tutte queste conversioni? non c'è un modo di farlo in automatico? Si, puoi utilizzare un libreria di "template" per le pagine, che gestisce l'escape dei caratteri per te; ad esempio:

    - https://twig.symfony.com/
    - https://latte.nette.org/ (anche https://latte.nette.org/it/guide)
    - https://platesphp.com/

    Oppure infilarti nel tunnel e scriverne una tu
    Ultima modifica di dreadnaut : 07-07-2023 alle ore 17.00.32

  3. #3
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    47

    Predefinito

    Buongiorno, grazie per la risposta.
    Grazie anche per il suggerimento per i template.
    Non li conoscevo (non li consco) , anche se ho letto qualcosa di SYMFONY tempo fa.
    Non c'è dubbio che siano una soluzione eccellente, sia per la sicurezza sia per ragioni di ordine e pulizia del codice.
    Grazie

    p.s. Avevo dimenticato di passare l'array alla funzione per riferimento...
    Ultima modifica di kairos2020 : 08-07-2023 alle ore 09.12.46

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    Citazione Originalmente inviato da kairos2020 Visualizza messaggio
    Non li conoscevo (non li consco) , anche se ho letto qualcosa di SYMFONY tempo fa.
    Twig è un pezzo di Symfony, ma si può usare separatamente. Sopra volevo suggerire una libreria utile, ma lungi da me spingerti a riscrivere l'intero applicativo in un framework

    Citazione Originalmente inviato da kairos2020 Visualizza messaggio
    p.s. Avevo dimenticato di passare l'array alla funzione per riferimento...
    Ricordarti anche di usarne il risultato:
    Codice PHP:
    $partecipanti = XSS($partecipanti);

  5. #5
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    47

    Predefinito

    Buona sera,

    ho appena scaricato un tutorial, in italiano e della durata di più di tre ore (quindi immagino abbastanza completo) su SYMFONY 5.0, nei prossimi giorni
    lo studierò, guardandolo più volte, alla fine deciderò se utilizzarlo per 'ricostruire' il mio sito.
    L'unica perplessità attiene alla mia capacità di comprenderne l'uso, di tempo per 'fare e disfare' ne ho in abbondanza.
    In ogni caso è stato un suggeriemnto prezioso.
    Grazie

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    Oh, sono confuso! Volevo dissuaderti dal riscrivere tutto

  7. #7
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    47

    Predefinito

    ... ma era evidente

  8. #8
    L'avatar di silvermaledetto
    silvermaledetto non è connesso AlterGuru 2500
    Data registrazione
    01-03-2007
    Residenza
    Provincia di Modena
    Messaggi
    4,613

    Predefinito

    Twig comunque ha dei bei difettoni: non supporta APCu, nemmeno memcache, non permette di cancellare la cache da FTP quando PHP è in esecuzione, imposta permessi errati ai file: lo segnalai al phpBB.com quando si affidarono ad esso per Ascraeus 10 anni fa, adesso 10 anni dopo...non è cambiato nulla!
    Ultima modifica di silvermaledetto : 10-07-2023 alle ore 07.11.26
    laravista likes this.
    Io ne ho... visti forum che voi umani non potreste immaginarvi... PhpBB3 in panne al largo dei database MySQL di Orione... E ho visto i TAG [B] balenare nel buio vicino al postreply di Tannhäuser.... E tutti quei... momenti andranno perduti nel tempo... Come... lacrime... nella pioggia... È tempo... di backuppare....

  9. #9
    Data registrazione
    07-07-2023
    Messaggi
    10

    Predefinito

    Salve buongiorno ho un problema non mi viene permesso di creare la cartella moodledata. http://istitutodinostrativo.altervis...le/install.php
    Email: michelina.pignatelli1983@gmail.com
    laravista likes this.

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

    Predefinito

    Citazione Originalmente inviato da istitutodinostrativo Visualizza messaggio
    Salve buongiorno ho un problema non mi viene permesso di creare la cartella moodledata. http://istitutodinostrativo.altervis...le/install.php
    Email: michelina.pignatelli1983@gmail.com
    Ho risposto qui: https://forum.it.altervista.org/php-...ne-moodle.html
    Evita di chiedere in più discussioni diverse.

    Ciao!

Regole di scrittura

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