Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    144

    [mysql security] Sicurezza nelle mysql query

    Ciao!
    Ho applicato mysql_real_escape_string ad un dato del modulo prelevato tramite POST e messo su db. Ha funzionato bene, infatti al posto degli apici è stato messo un backslash -> \'
    Il problema è che questo backslash è rimasto anche quando ho caricato i dati dal database.
    Quindi ora nella pagina HTML visualizzata dal browser ho parole del genere: l\'assistenza

    Ho pensato di usare reg_replace per sostituire tutti i caratteri speciali però se c'è una soluzione più veloce sarebbe meglio.. Nel caso non ci sia, chi li conosce, mi può fornire una lista dei caratteri speciali pericolosi per mysql?
    Io conosco questi:
    '
    %
    ;
    --
    #
    "
    (
    )
    Grazie!

  2. #2
    Usa

    Codice PHP:
    stripslashes(); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    144
    Ho provato ma il backSlash rimane..

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    144
    All'inizio non andava. invece ora come sto facendo altro ha funzionato.
    Però la questione si complica per il fatto che ho magic_quotes_gpc impostato a 1, quindi è attivo! E dunque vengono inseriti due backslash anzi che uno!
    Come faccio?

  5. #5
    O disattivi il magic_quotes, o togli il mysql_real_escape_string

    Uno ci basta...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    144
    ok, grazie mille! tolgo tutti i controlli php (sia mysql_real_escape_string che addslashes) e lascio magic_quotes_gp attivo!

  7. #7
    Originariamente inviato da Samleo
    O disattivi il magic_quotes, o togli il mysql_real_escape_string

    Uno ci basta...
    mmm non direi proprio

    http://www.tizag.com/phpT/php-magic-quotes.php

    http://stackoverflow.com/questions/1...tes-at-runtime

    e se proprio vuoi esagerare

    Codice PHP:
    // (C) Andrea Giammarchi - Mit Style License
    class App_RemoveMagicQuotes 
    {
        private 
    $__f = array();
        final public function 
    __construct() {
            if(
    get_magic_quotes_gpc()) {
                
    $this->__f = array($this'__rs');
                
    $_GET array_map($this->__f$_GET);
                
    $_POST array_map($this->__f$_POST);
                
    $_REQUEST array_map($this->__f$_REQUEST);
                
    $_COOKIE array_map($this->__f$_COOKIE);
            }
        }
        final private function 
    __rs($w) {
            return 
    is_array($w) ? array_map($this->__f$w) : stripslashes($w);
        }

    se il server te lo permette puoi disattivarle
    in un .htaccess
    php_flag magic_quotes_gpc off



    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    Bè il magic_quotes serve ad aggiungere il backslash, molto utile per prevenire le injection SQL.

    Quindi se il server ha già abilitato il magic_quotes, aggiungere anche il mysql_real_escape_string è superfluo.

  9. #9
    Bè il magic_quotes serve ad aggiungere il backslash, molto utile per prevenire le injection SQL.
    Forse non hai ancora capito
    ma sono le magic_quotes il problema
    dai + considerate alla tregua di un bugs.
    Quindi i metodi che ho postato ti permettono
    di bypassare questo e di utilizzare le funzioni
    dedicate mysql_real_escape_string ad esempio e non la generica addslashes .


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.