Visualizzazione dei risultati da 1 a 7 su 7

Discussione: bloccare Javascript

  1. #1

    bloccare Javascript

    salve,

    Premetto che non sono sicuro di essere nel forum giusto

    Volevo fare un form dove gli utenti (o meglio gli admin del mio sito, quindi persone fidate) possono inserire del testo ed utilizzare ogni tipo di tag HTML, però ovviamente volevo evitare che potessero inserire javascript possibilmente malevolo.

    Così su due piedi mi viene in mente di sostituire tramite la funzione php preg_replace i tag
    <script (.*)> (Ungreedy)

    </script>

    sostituendo i segni < e > per non essere riconosciuti come tag HTML

    e tutti i tag conententi on (onClick eccetera...)
    <(.*) on(click|keypress|....)="(.*)> (Ungreedy, case insensitive)

    ci sono altri modi per inserire javascript o codice malevolo (senza contare attacchi CSRF camuffati da immagini...se c'è qualche malintenzionato che vuole farlo può farlo direttamente nel forum, ma perlomeno non può attaccare il mio sito) in un documento html da cui dovrei proteggermi?
    The gate to tomorrow is not the light of heaven but the darkness in the depth of the earth

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,661
    visto che lavori in php... sposto lì

    tanto con HTML non hai soluzioni

  3. #3
    il fatto è che io non voglio sapere "come" bloccarli ma "cosa" bloccare
    The gate to tomorrow is not the light of heaven but the darkness in the depth of the earth

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,661
    visto anche il tuo pvt...

    fai un replace dei caratteri HTML
    o un HTMLEncode dei contenuti
    (in asp si chiama così, non so in php)

    sentiamo anche gli esperti di sezione

  5. #5
    Io vorrei permettere agli utenti di utilizzare tutti i tag HTML (e non limitarli al BBcode come ho fatto nei forum), tranne quelli che potrebbero essere rischiosi per un utente che visualizza la pagina.

    Quello che vorrei sapere è se basta "bloccare" il tag <script> e tutte le proprietà "on" (onClick, onKeypress), oppure ci sono altri modi per inserire codice rischioso che non ho preso in considerazione
    The gate to tomorrow is not the light of heaven but the darkness in the depth of the earth

  6. #6
    Purtroppo i metodi per fare delle injection di codice malevolo sono molteplici, ma con alcuni accorgimenti puoi fare qualcosa. Intanto puoi limitare i tag utilizzabili a solo alcuni, come ad esempio il tag b, i, u, p e cose di questo tipo. Poi puoi usare delle espressioni regolari per trovare le coppie attributo valore e di conseguenza levare tutti quegli eventi javascript nell'html. Per lo script puoi usare anche lì un'espressione regolare. Ad ogni modo ti consiglio di "ripulire" il codice e magari per cose semplici di usare un " codice " tuo. Ad esempio:
    Codice PHP:
    <i style="font-size:12pt">Hello world[/i
    potrebbe diventare qualcosa di simile
    Codice PHP:
    i font-size="12pt"]Hello World[/ 
    Che in fase di lettura può essere convertito e diventare nuovamente il codice soprastante.
    LittleChe

  7. #7
    utilizzo già una mia versione del BBcode con B I U immagini, quote link e riga orizzontale per i forum (e visto che sto utilizzando il framework Symfony per fare il sito posso farli applicare a qualunque campo testuale aggiungendo due righe di codice), volevo dare più scelta per creare delle cose più complicate in questa parte del sito (anche se, alla fine, visto chi saranno i miei collaboratori, sarò io stesso ad utilizzare maggiormente TAG HTML complessi, per gli altri i tag di cui parlavo sopra andranno più che bene). Possibile che non ci sia una lista dei metodi più comuni per inserire codice malevolo (e possibilmente come proteggersi?)

    se non esiste mi limiterò ad implementare il BBcode che già uso su quel campo
    The gate to tomorrow is not the light of heaven but the darkness in the depth of the earth

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.