Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    217

    dubbio su utilizzo variabile all' interno di una stringa

    ciao ragazzi e auguri !

    Avrei un dubbio: per evitare di usare le virgolette con l' escape all' interno delle stringhe, quindi per non scrivere cose del genere:

    codice:
    $tipo = "tipo1"
    $query = "SELECT tipo FROM tabella WHERE tipo=\"".$tipo."\""
    posso scrivere direttamente così

    codice:
    $tipo = "tipo1"
    $query = "SELECT tipo FROM tabella WHERE tipo=$tipo"
    o ci sono controindicazioni di qualche tipo ? Possibili incompatibilità di forma ? Problemi insomma.

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Certo che lo puoi scrivere anche così (tranne che mancano gli apici). Però in ogni caso avrai una bellissima sql injection

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    217
    mi spiegheresti meglio questa cosa ? Nell' esempio che ho postato la variabile non è definita tramite input utente, ma viene definita all' interno del codice stesso, anche in questo caso c'è possibilità di sql injection anche se register globals è impostato su off ?

    Nel caso invece di variabili definite tramite variabili $_POST o $_GET ho letto che si può utilizzare un filtro di escape string o di casting nel caso il valore sia numerico.

    Lo sbaglio sta nell' utilizzo della variabile direttamente all' interno della stringa, oppure nel fatto che non hai visto filtri nel codice che ho postato ? Dopo la premessa qui su, è ancora a rischio injection ? Se si, potete spiegarmi ?

  4. #4
    Originariamente inviato da JVM
    Lo sbaglio sta nell' utilizzo della variabile direttamente all' interno della stringa, oppure nel fatto che non hai visto filtri nel codice che ho postato ?
    Non c'è alcuna differenza tra:

    Codice PHP:
    $tipo "tipo1";
    $query "SELECT tipo FROM tabella WHERE tipo='".$tipo."'"
    e

    Codice PHP:
    $tipo "tipo1";
    $query "SELECT tipo FROM tabella WHERE tipo='$tipo'"
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    217
    ok grazie

    Per quanto riguarda invece il filtraggio delle stringhe e valori numerici interi con mysqli_real_escape_string e (int) , sempre parlando di injection e input utente mirato a fare danni, sono a posto per le query?

  6. #6
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da JVM
    mi spiegheresti meglio questa cosa ? Nell' esempio che ho postato la variabile non è definita tramite input utente, ma viene definita all' interno del codice stesso, anche in questo caso c'è possibilità di sql injection anche se register globals è impostato su off ?
    Giusto, in quel caso che il contenuto della variabile viene definito soltanto ed esclusivamente da parte tua non ci sarebbe il rischio di una sql injection. Scusa per la confusione.

    Però, è sempre importante di tenerlo in mente. Di non dimenticare mai che tutto l'input da parte dell'utente sarebbe da considerare il nemico .

    Originariamente inviato da JVM
    Nel caso invece di variabili definite tramite variabili $_POST o $_GET ho letto che si può utilizzare un filtro di escape string o di casting nel caso il valore sia numerico.
    Sì, in questi casi si usa normalmente il metodo escaping del database.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    217
    si in effetti è sempre meglio ricordare di stare attenti all' input utente, cosa che mi hanno fatto notare tempo fa sempre qui sul forum, al che mi sono attrezzato e ho cominciato a vedermi funzioni di escape et similia, al fine di evitare brutte sorprese .

    Ma chiedere non fa mai male anzi al massimo si impara qualcosa di nuovo, quindi ogni tanto mi affaccio al forum.

    Grazie ragazzi alla prossima

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.