Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di daveus
    Registrato dal
    Apr 2005
    Messaggi
    34

    gestire gli input correttamente? (sql injection)

    Giorno, premetto che ho sempre lavorato con le magic quotes, in quanto ho sempre realizzato script ad-hoc fatti per determinati server. adesso devo sviluppare uno script portabile anche su server dove le magic quotes sono disabilitate (ce ne saranno?)

    dunque.. sono a conoscenza delle varie funzioni per il typecasting delle variabili di input, ma sono un po' confuso su come utilizzarle. esempio in un form POST, ho una textarea che deve creare una nuova riga in un database...

    io avevo in mente di sostituire tutti i caratteri speciali con le relative entities html prima dell'inserimento nel db. questo perchè comunque è un passo che dovrei fare (ovvero convertire tutti i caratteri speciali in entities) quando devo stampare nelle mie pagine il contenuto della textarea. ma è giusto farlo prima (e quindi risolvere il problema delle sqlinjection) oppure è meglio farlo quando visualizzo il campo con echo(htmlspecialchars($campo));?

    riguardo al primo metodo ho un dubbio sulla lunghezza della stringa
    esempio, consento massimo 16 caratteri per un campo
    che è compilato con "my'full'nickname" (16 caratteri esatti)
    in mysql avrei, con il primo metodo
    "my'full'nickname"
    e non sono più 16 caratteri, ma molti di più: quindi?
    anche backslashando i ' avrei 18 caratteri.. mi spiegate un po' com'è il metodo più corretto?

    grassie
    Ciao, Davide

  2. #2
    per gestire le magic_quote usa get_magic_quote_gpc.

    mysql_escape_string() per la gestione dell'escape.

    il limite del nick name lo imposti nel form, non nel db.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di daveus
    Registrato dal
    Apr 2005
    Messaggi
    34
    Originariamente inviato da piero.mac
    per gestire le magic_quote usa get_magic_quote_gpc.

    mysql_escape_string() per la gestione dell'escape.

    il limite del nick name lo imposti nel form, non nel db.

    ok quindi dovrei semplicemente backslashare tutti i caratteri speciali?

    l'altra soluzione, ovvero convertire tutto in entities, è errata?
    Ciao, Davide

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.