Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21
  1. #11
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da distratto
    Ho letto che bisognerebbe fare l’escape anche dei caratteri % e _.
    Dove e perché

  2. #12
    l'ho letto sulla guida alla sicurezza in php di php.html.it:
    http://php.html.it/guide/lezione/298...sql-injection/

    Dice questo:
    Nota: mysql_escape_string() non aggiunge le sequenze di escape a " % " ed a " _ ".

    Tale funzione (come addslashes) non fa l'escape di tutti i caratteri potenzialmente pericolosi, quali " % ", usati nelle query con LIKE, " ; " e " , ". Per questi è necessario uno str_replace "manuale".
    E' una preoccupazione eccessiva?

  3. #13
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Innanzitutto, l'articolo si riferisce alle query in lettura, non a quelle di scrittura.
    In secondo luogo sì, la trovo una preoccupazione eccessiva. E' vero che quei caratteri possono essere potenzialmente pericolosi, ma solo se non si prendono le misure di sicurezza appropriate in altra sede (verifica sul tipo di dati, escape ecc.).
    Fare l'escape su una virgola o su un punto e virgola, lo dico così su due piedi, mi sembra un'assurdità. L'escape sul '%' invece è necessario se devi cercare proprio quel carattere in una query che usa LIKE.

  4. #14
    Meno male, un problema in meno.

    Allora userò mysqli_real_escape_string() da sola.

    Grazie.

  5. #15
    Ciao,

    io invece ho il problema inverso .. cioè se devo fare una modifica di un campo, stampo il valore letto nel database all'interno di un INPUT. Qui emerge il problema: infatti, siccome nel DB i dati vengono salvati senza le \ davanti agli apici, quando vado a visualizzare il contenuto all'interno di un input, il testo viene troncato perchè gli apici li interpreta come chiusa stringa.

    Es:

    $testo = 'testo testo "testo tra apici" altro testo';

    <input type="text" value="<?php printf("%s", $testo) ?>" />

    nel database viene scritto correttamente senza i caratteri di escape.


    Sapreste come risolvere il problema ??
    http://www.andreacozzi.net/

  6. #16
    Ho lo stesso problema !
    allora GURU (luca200) mi salvi ?!

    In insert ho fatto tutto per benino leggendo la tua pillola !

    Adesso che devo richiamare il valore all'interno di un campo di input per dare la possibilità dell'update mi tronca i volori che contengono gli apici singoli, nel db è salvato ovviamente senza \

    come si fa?


    Originariamente inviato da dr_jack86
    io invece ho il problema inverso .. cioè se devo fare una modifica di un campo, stampo il valore letto nel database all'interno di un INPUT. Qui emerge il problema: infatti, siccome nel DB i dati vengono salvati senza le \ davanti agli apici, quando vado a visualizzare il contenuto all'interno di un input, il testo viene troncato perchè gli apici li interpreta come chiusa stringa.

  7. #17
    Mi rispondo da solo

    Non so se è la soluzione più corretta, cmq funziona

    Codice PHP:
    $valore=ereg_replace("'""&#039 "$row['valore']); 




    .

  8. #18
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Per l'output su browser esiste la funzione htmlspecialchars()

  9. #19
    Scusate, la domanda che magari è niubba...
    Ma se a tutti gli accenti si sostituisce il valore "& acute ;"anzichè fare l'escape, non è meglio?
    "Con la forza della verità, in vita, ho conquistato l'universo"

  10. #20
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da hairac
    Scusate, la domanda che magari è niubba...
    Ma se a tutti gli accenti si sostituisce il valore "& acute ;"anzichè fare l'escape, non è meglio?
    Avrebbe senso se stessimo parlando di una pagina html. Ma siccome stiamo parlando di salvare dati su un database, è una boiata.

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.