Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 41
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    83

    Informazione generale sul perchè si cryptano le password e il codice php

    Ciao a tutti! sono nuovo di questo forum e anche nel mondo della programmazione in php. Ho sempre programmato in c++, ma dal momento che mi serve creare un sito web che abbia un collegamento con un database mysql per la gestione di login (quindi nome utente e password) non potevo che studiarmi questo codice. Ho realizzato il sistema di login e di Registrazione, però adesso mi vorrei dedicare a capire come rendere sicuro il servizio per evitare che qualcuno possa entrare nel mio database e rubare nome utente e password.
    Prima però di entrare nel dettaglio, vi vorrei chiedere se esiste una spiegazione di come un malintanzionato può attaccare il mio sito web per recuperare qualsiasi tipo di informazione, perchè non nè ho la + pallida idea! Ho visto i metodi che si usano, come il cryptare con il sistema md5 le password, ma vorrei capire perchè si fa, e cioè in che modo una persona può arrivare a prendere quelle informazioni... non so se ho reso l'idea... essendo un niubbo, vorrei capire dal principio quale è il problema per riuscire a comprendere meglio le tecniche per evitarlo!
    Grazie infinite a tutti!

  2. #2
    Ci sono mille ragioni per cui il contenuto di una tabella di un database possa risultare visibile: bug di uno qualunque dei software coinvolti nel processo, errori negli script che interagiscono col database, problemi dovuti agli hosting condivisi e via dicendo. Sapere quali sono tutte le possibilita' pero' non ti aiuta molto, visto che la maggior parte delle variabili non sono sotto il tuo controllo, ti basti sapere che la possibilita' c'e' e che quindi e' tuo compito cercare di limitare i danni nel caso in cui accada.

    Se le tue password sono registrate sotto forma di hash (fatto con attenzione, aggiungendo un salt) allora chi dovesse entrarne in possesso non avrebbe modo di utilizzarle. Magari non capitera' mai, ma better safe than sorry

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    83
    Grazie mille per la risposta! diciamo che programmando il sito web una idea mi è venuta in mente, ovvero quando ci sta ad esempio la pagina di login, un utente inserisce nome utente e password, dopodichè il sito web, appena lui clicca login, invia i dati al server. Per fare questo si utilizza il comando mysql_connect("server", "nome utente mysql", "password mysql"), quindi se uno riuscisse a scaricare già solo il file che collega il login dell'utente al server, vedrebbe questa riga e conoscerebbe nome utente e password del database del server e quindi potrebbe creare "casini" nel mio database... quindi la mia domanda è, esiste questa possibilità? è molto alto il rischio? se si, come posso evitare che succeda?
    Spero di aver reso bene l'idea... se ci sono dei dubbi posso spiegarmi meglio... Grazie ancora a tutti per le eventuali risposte.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    83
    diciamo che criptando le password, e salvando le password criptate nel mio database, magari riesco a risolvere il problema di non far conoscere le password effettive a chi non dovrebbe, ma cmq da ciò che ho detto prima, questo non eviterebbe cmq a eventuali malintenzionati che riuscissero cmq a venire in possesso del nome utente e della password del mio database mysql di combinare qualche disastro... spero di aver reso bene l'idea...

  5. #5
    Originariamente inviato da Leonraf
    Grazie mille per la risposta! diciamo che programmando il sito web una idea mi è venuta in mente, ovvero quando ci sta ad esempio la pagina di login, un utente inserisce nome utente e password, dopodichè il sito web, appena lui clicca login, invia i dati al server. Per fare questo si utilizza il comando mysql_connect("server", "nome utente mysql", "password mysql"), quindi se uno riuscisse a scaricare già solo il file che collega il login dell'utente al server, vedrebbe questa riga e conoscerebbe nome utente e password del database del server e quindi potrebbe creare "casini" nel mio database... quindi la mia domanda è, esiste questa possibilità? è molto alto il rischio? se si, come posso evitare che succeda?
    Spero di aver reso bene l'idea... se ci sono dei dubbi posso spiegarmi meglio... Grazie ancora a tutti per le eventuali risposte.
    Generalmente i database non accettano connessioni se non da una macchina specifica (nella maggior parte dei casi in hosting e' la stessa macchina che fa girare webserver e database server) o da una rete controllata, raramente accettano connessioni dirette dall'esterno. In questo modo conoscere le credenziali di accesso al database serve a poco visto che non ci si puo' collegare.

    L'eventualita' di ottenere il codice sorgente di un file PHP e' comunque piuttosto remota (presuppone un'errata configurazione del webserver) ma comunque per proteggersi anche da questa eventualita' e' buona norma mettere file con dati sensibili fuori dalla document root (la directory a cui il webserver accede per trovare le risorse da restituire ai client).

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    83
    Originariamente inviato da k.b
    Generalmente i database non accettano connessioni se non da una macchina specifica (nella maggior parte dei casi in hosting e' la stessa macchina che fa girare webserver e database server) o da una rete controllata, raramente accettano connessioni dirette dall'esterno. In questo modo conoscere le credenziali di accesso al database serve a poco visto che non ci si puo' collegare.
    Allora non riesco proprio a capire a che serve criptare le password nel database di mysql se cmq nessun utente esterno può accedervi...

  7. #7
    Esiste la tecnica di SQL Injection ... magari posso anche cambiarti la Password di Admin e prendere controllo del sito e sfrutto i tuoi script buggati per interagire con il Database.

    Bisogna sempre essere previdenti e proteggere le Password è d'obbligo.
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

  8. #8
    Originariamente inviato da Leonraf
    Allora non riesco proprio a capire a che serve criptare le password nel database di mysql se cmq nessun utente esterno può accedervi...
    mi pare di capire che ci sia un piccolo equivoco. I dati della connessione servono per fare connettere lo script php con a bordo un client ad un server mysql e sono gestiti dal gestore del server mysql che potresti anche essere tu stesso a seconda del contratto di hosting che hai stipulato. Con questi dati potrai accedere al tuo database.

    I dati del login dello user registrato sono dati che permettono di accedere ad una area riservata del tuo database/script.

    Mettiamo caso che "IL TUO" database venga "bucato" con una injection e che fornisca la lista di utenti e password registrati sul "TUO" database, otterra' una semplice lista di hash di 32/40 o piu' byte exadecimali che non potranno essere utilizzati dal form perche' nessun form con input = password prevede l'immissione di 32/40 caratteri exadecimali che se ben fossero accettati verrebbero trasformati in hash dell'hash digitato e quindi perfettamente inutilizzabili.

    Quindi chi potesse ottenere la lista degli hash (l'hash non e' per definizione decriptabile) sara' costretto ad utilizzare un qualche modo per risalire alla password originale. Ora esistono online dei database di parole/password dove vengono memorizzate password hashate e l'equivalente codice ascii che le produce. Ovviamente le password piu' comuni saranno tutte presenti ed in pochi attimi si potra' ottenere la password in chiaro.

    Ecco quindi, per concludere, che la forza di una password e' data dalla sua complessiva originalita' che comprenda piu' tipologie di caratteri e con una lunghezza di almeno 8-10 caratteri.

    Va da se che se qualcuno puo' accedere al server con privilegi di root potra' fare tutto quello che gli pare ed anche qualcosa in piu'. user e password sarebbero assolutamente inutili.

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    83
    capisco, però correggetemi se sbaglio... riguardo a ciò che ha detto k.b, e cioè che il webserver non dovrebbe accettare connessioni esterne per entrare nel database... però se uno reperisce nome utente e password di admin del database e costruisce una pagina php, come quella fatta per il login del sito, dove con semplicissimi comandi come mysql_result() chiedono al database nome utente e password di una persona, il sito li dovrebbe fornire tranquillamente, perchè dovrebbe considerare la richiesta come quella fatta per il login( dove invece viene chiesto al database di effettuare una semplice ricerca fra i nomi utenti e le password)...

  10. #10
    Se ti connetti al DB via PHP la connessione sarà effettuata in "locale" o comunque da una sorgente autorizzata a connettersi al DB...

    Se lo fai da una fonte esterna (il tuo PC ecc...) non andrà.. salvo sempre che il Provider utilizzato non autorizzi a farlo..

    Ma il tuo dubbio a sto punto qual'è?
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

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.