Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Primi esperimenti per login utenti
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      thedarkita ModSenior • ultima modifica di

      La connessione va fatta in ogni pagina quindi conviene fare un file di configurazione ed includerlo in tutte le pagine

      per quanto riguarda lo script sarebbe più corretto scrivere:
      al posto di :
      [php]$sqlcmd .="WHERE user='$utente' AND pass='$pass' ";[/php]
      questo:
      [php]$sqlcmd .="WHERE user='$_POST[utente]' AND pass='$_POST[pass]' ";[/php]

      cosi eviti anche problemi con le impostazioni dei server

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • G
        greyfox User • ultima modifica di

        attento devi filtrare gli imput seno è automatica una sqlinjection!

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          thedarkita ModSenior • ultima modifica di

          @GreyFox said:

          attento devi filtrare gli imput seno è automatica una sqlinjection!

          ha scritto che per adesso tralasciava la sicurezza...

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • D
            drimmy User Attivo • ultima modifica di

            @GreyFox said:

            attento devi filtrare gli imput seno è automatica una sqlinjection!

            Adesso cerco di ottimizare anche la sicurezza, puoi spiegarmi meglio? grazie

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • T
              thedarkita ModSenior • ultima modifica di

              Per la sicurezza devi filtrare i simboli come ' e " che posso modificarti la query

              puoi usare la funzione addslashes per aggiugnere gli \ davanti a questi simboli e quindi evitare questi codici dannosi

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • D
                drimmy User Attivo • ultima modifica di

                puoi farmi un esempio? grazie

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  thedarkita ModSenior • ultima modifica di

                  Link alla guida ufficiale del php:
                  it2.php.net/addslashes

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • D
                    drimmy User Attivo • ultima modifica di

                    grazie appena ho tempo gli do un'occhiata! :ciauz:

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • G
                      greyfox User • ultima modifica di

                      attento fai anche un filtraggio per simboli come % < > ' " * e nella pagina stessa che interroga il db perche senno possono essere bypassati editando una richiesta http manualmente...inoltre per evitare proxy o spammer utilizza o le lettere delle immagini (come quella per registrarti qui) oppure un'applet in java che prenda l'ip privato del visitatore ...

                      un esempio di funzione per validare un campo puo essere:

                      [php]
                      function quote_smart($value)
                      {

                      if (get_magic_quotes_gpc()) {
                      $value = stripslashes($value);
                      }

                      if (!is_numeric($value)) {
                      $value = "'" . mysql_real_escape_string($value) . "'";
                      }
                      return $value;
                      }
                      [/php]

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • D
                        drimmy User Attivo • ultima modifica di

                        @GreyFox said:

                        attento devi filtrare gli imput seno è automatica una sqlinjection!

                        Ho approfondito l'argomento e una sqlinjection è molto pericolosa quanto semplice da fare, quindi è indispensabile metterla fuori uso. Adesso vedo cosa mi avete consigliato di fare e provo a sistemarlo

                        @GreyFox said:

                        attento fai anche un filtraggio per simboli come % < > ' " * e nella pagina stessa che interroga il db perche senno possono essere bypassati editando una richiesta http manualmente.

                        Come faccio?

                        @GreyFox said:

                        inoltre per evitare proxy o spammer utilizza o le lettere delle immagini (come quella per registrarti qui) oppure un'applet in java che prenda l'ip privato del visitatore

                        A questo penserò quando preparo la pagina per le registrazioni.

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • D
                          drimmy User Attivo • ultima modifica di

                          Al termine del lavoro posto il codice ben commentato di tutte le pagine. Così da poter essere utilizzata da tutti coloro che vogliono una sezione privata nel proprio sito.

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • D
                            drimmy User Attivo • ultima modifica di

                            @Thedarkita said:

                            La connessione va fatta in ogni pagina quindi conviene fare un file di configurazione ed includerlo in tutte le pagine

                            per quanto riguarda lo script sarebbe più corretto scrivere:
                            al posto di :
                            [php]$sqlcmd .="WHERE user='$utente' AND pass='$pass' ";[/php]questo:
                            [php]$sqlcmd .="WHERE user='$_POST[utente]' AND pass='$_POST[pass]' ";[/php]
                            cosi eviti anche problemi con le impostazioni dei server

                            Ho fatto il file config.php che includo in tutte le pagine, per la query non ho capito la differenza...

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • D
                              drimmy User Attivo • ultima modifica di

                              Ho aggiunto il filtro addslashes per evitare la sqlinjection e in effetti funziona, riporto il codice completo della pagina accesso:

                              [php]
                              <?php
                              $utente=$_POST['utente'];
                              $pass=$_POST['pass']; // ricevo i dati dal form di login
                              $utente= addslashes ($utente);
                              $pass= addslashes ($pass); //filtraggio utente e pass per evitare sqlinjection

                              include 'configdb.php';

                              $sqlcmd = "SELECT * ";
                              $sqlcmd .= "FROM utenti ";
                              $sqlcmd .="WHERE user='$utente' AND pass='$pass' "; //select per ricerca dell'user & pass all'interno della tabella
                              $risultato = mysql_query( $sqlcmd ); // invio query al db
                              if (! $risultato) //controllo interrogazione database
                              exit ("errore nell'interrogazione: $sqlcmd");

                              if (mysql_num_rows ($risultato)==0) //controllo presenza user e pass nella tabella
                              {
                              exit ("Utente o Password errati");
                              $accesso="no"; //accesso non effettuato
                              }
                              else
                              $accesso="ok"; //accesso effettuato

                              session_start();
                              $_SESSION['accesso']=$accesso; //salva lo stato di accesso per le seguenti pagine della sessione e il nome utente e pass
                              $_SESSION['utente']=$utente;
                              $_SESSION['pass']=$pass;

                              mysql_close($db);
                              ?>
                              [/php]

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • samyorn
                                samyorn Consiglio Direttivo • ultima modifica di

                                Ciao drimmy
                                Dato che stai iniziando a parlare di sicurezza allora non dimenticare di criptare la password con md5 😉

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • massimux
                                  massimux Moderatore • ultima modifica di

                                  sha1 anche 🙂

                                  se vogliamo rimanere nel ragionamento di criptazione 🙂

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • D
                                    drimmy User Attivo • ultima modifica di

                                    ciao, quando applicherò il lavoro sperimentale che sto facendo ad un sito vero e proprio penso che avrò a disposizione il certificato SSL, c'è qualcosa da fare nella programmazione per quanto riguarda SSL? come criptazione password se creo un algoritmo mio di criptazione? tipo moltiplico per 5,435 (un numero a caso) quando vado a inserire la pass nel db e, quando la vado a leggere, divido per lo stesso numero.

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • T
                                      thedarkita ModSenior • ultima modifica di

                                      le codifiche md5 e sha1 sono irreversibili e quindi dovrebbero essere più sicure...

                                      per quanto riguarda il certificato negli script non devi fare niente

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      Caricamento altri post
                                      Rispondi
                                      • Topic risposta
                                      Effettua l'accesso per rispondere
                                      • Da Vecchi a Nuovi
                                      • Da Nuovi a Vecchi
                                      • Più Voti