Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Controllo stringa per passare valore a Javascript

    Ciao.
    Se ho una stringa contenente apici o altri caratteri "antipatici" e la passo in una funzione Javascript devo sempre fare l'escape manualmente o ci sono altre strategie?

    Ossia se ho

    Codice PHP:
    $var = <<<EOT
    '''214!"$%/&£&(£;/)(/(""!)<<><09032£?1ì'
    EOT;
    echo 
    '<span class="set_smt_ajax" onclick="change('.$var.');">Qualcosa</span> 
    l'Html mi si impastrocchia tutto e la funzione non mi parte...che cosa devo fare?!?

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    168
    dovresti postare nel forum Javascript
    cmq

    function filtro(value){
    valore = valore.replace(/[^a-zàèéìòùA-Z0-9.]/g," ");

    return valore;
    }

  3. #3
    no, non dovresti postare in javascript, il risultato di php è (x)html, css e javascript.

    prova questo:

    $var = "<<<EOT '''214!"$%/&£&(£;/)(/(\"\"!)<<><09032£?1ì'
    EOT;";

    echo "<span class=\"set_smt_ajax\" onclick=\"change('.$var.');\">Qualcosa</span>";

    se poi il proble è il funzionamento del javascript, allora si, posta in javascript
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  4. #4
    Originariamente inviato da MicheleWT
    no, non dovresti postare in javascript, il risultato di php è (x)html, css e javascript.

    prova questo:

    $var = "<<<EOT '''214!"$%/&£&(£;/)(/(\"\"!)<<><09032£?1ì'
    EOT;";

    echo "<span class=\"set_smt_ajax\" onclick=\"change('.$var.');\">Qualcosa</span>";

    se poi il proble è il funzionamento del javascript, allora si, posta in javascript
    il problema non è javascript, ma php+html in realtà.

    grazie per l'aiuto, ma qui tratti il caso specifico, nel senso che io vorrei risolverlo per tutti gli eventi della mia applicazione.

    questo inghippo si presenta ogni volta che si passa ad una funzione javascript una variabile che deriva da un input utente, perché se l'utente inserisce caratteri pericolosi ('$%& allora il danno è dietro l'angolo per l'html! COn JQuery il problema però sarebbe subito risolto, no?

  5. #5
    filtrare e gestire gli input che arrivano dagli utenti e non è un problema di sicurezza di cui devi conto perennemente.

    puoi usare preg_match per eseguire un controllo con espressioni regolare sulle variabili, usare le funzioni di php per caratteri speciali.

    inizia a studiarti cosa sono gli exploit XSS e Mysql Injection,
    ti anticipo che non è un tema di piccole dimensioni
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  6. #6
    Originariamente inviato da MicheleWT
    filtrare e gestire gli input che arrivano dagli utenti e non è un problema di sicurezza di cui devi conto perennemente.

    puoi usare preg_match per eseguire un controllo con espressioni regolare sulle variabili, usare le funzioni di php per caratteri speciali.

    inizia a studiarti cosa sono gli exploit XSS e Mysql Injection,
    ti anticipo che non è un tema di piccole dimensioni
    d'accordo, sono informato sull'argomento, grazie lo stesso.

    Il mio problema qui non è il salvataggio nel db (nel quale prendo le mie precauzioni con gli escape del caso), in questo caso i dati sono stati prelevati dal db (ipotizziamo $var come un valore di un record) e inviati in una funzione javascript (change()), in sostanza la questione è:

    ogni volta che passo un valore prelevato dal db in una funzione javascript (che si trova nell'HTML, se non uso JQuery, quindi che viene preparato dal server con PHP) devo nuovamente applicare gli escape? E la risposta sarebbe no (secondo me) perché dipende da quali apici usi nel PHP per scrivere l'HTML ad esempio!
    La tua soluzione è specifica per quel caso, ma se io avessi scritto (come all'inizio)

    Codice PHP:
    echo '<span class="set_smt_ajax" onclick="change('.$var.');">Qualcosa</span> 
    la tua soluzione non andava bene.
    JQuery risolverebbe tutto credo, perché sosterei tutto al di fuori dell'HTML e quindi del PHP, ma aspetto qualcuno che mi dia la conferma

    Spero di essermi spiegato.

    Quindi, qual è la strada da seguire???

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 © 2025 vBulletin Solutions, Inc. All rights reserved.