Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085

    login .. per renderlo sicuro !?

    Ciao ..
    in linea di principio (quindi non tanto a livello di codice), com'è che dovrebbe essere impostata la funzione di 'login', affinchè sia un metodo sicuro ?
    Grazie mille

  2. #2
    in questa discussione trovi la risposta
    http://forum.html.it/forum/showthrea...readid=1440626
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    possiamo fare un pò di ordine (un ABC) per uno come me, che si avvicina ora agli argomenti .. e li mastica a malapena ?
    scusate le tante domande, oltretutto "banali" ..

    1) il codice php è 'visibile' in qualche modo dall'esterno ?

    2) una volta che ho criptato tutto quello che devo/posso criptare (parliamo di password), nel momento in cui scrivo l'esito dell'interrogazione/verifica in una sessione (scrittura non della password, ma dell'utenza con i permessi di aggiornamento per poter proseguire con la navigazione in tutte le pagine) ho un contenitore blindato o una sessione è comunque 'forzabile' ?

    3) il 'pericolo' dell'effettuazione di un login, quale sarebbe ?
    - avere il campo del form in chiaro ? (leggibile non solo da chi è davanti al monitor, ma anche in rete ?)
    - il trasferimento del dato dal client al server (che interpreta il php) ?
    - il dato salvato nel DB ?


    - negli esempi che ho visto nel forum, viene criptato il dato inserito nel DB

    Codice PHP:
    INSERT INTO utenti (nomepasswordVALUES ('gianni'SHA1('prova')); 
    .. e quando viene fatto il test(select)

    Codice PHP:
    SELECT id FROM utenti WHERE nome '$nome' AND password SHA1('$password'
    cominciamo da stà cosetta ..

    1) una volta scritta la riga in DB, quel campo è in qualche modo leggibile in chiaro ?
    (mi verrebbe da dire che come lo faccio io, lo potrebbe fare chiunque)
    dopo averlo scritto, ho provato con

    Codice PHP:
       SELECT usernameSHA1('password'), ... 
    ma il risultato è stato ottenere il criptaggio del dato criptato, ma è anche vero che ho provato a fare una select mettendo il campo password nella where (come nell'esempio trovato), ma la riga non mi è stata trovata ! mha .. avrò sbagliato qualcosa !?

    Codice PHP:
       SELECT *
       
    FROM utenze
       WHERE password 
    SHA1('prova'

    chiedevo se sia possibile leggere in chiaro il campo, nell'ipotesi che voglia estrarmi la riga con la sola utenza (in where), per vedere se sia corretta, e poi confrontare input e dato di password contenuta nel DB
    (è anche vero che posso fare 2 select, una con la sola utenza in where, e poi una sia con utenza che passw)


    altre cosette ..

    - criptare la password lato client vorrebbe dire questo ? .. e a cosa servirebbe ?

    Codice PHP:
       $password     SHA1($_POST ['password']) 

    Grazie mille

  4. #4
    Allora ci sono molte cose non ti sono chiare, e per questo esistono le guide.
    In tutti i casi posso risponderti io:
    Vediamo un po di fare chiarezza...
    Il browser (Mozzilla firefox o altri, per intenderci) effettua una chiamata al server.
    Infatti quando noi visitiamo www.nomesito.it/file.estensione, diciamo al server di interpretare il file, in basse all'estensione. Il browser non fa altro che interpretare l'HTML, e tutti i linguaggi CLIENT SIDE, che la pagina contiene; Il php è come dire "un generatore di HTML dinamico", infatti il PHP viene interpretato dall'interprete presente sul server, quindi almenochè l'utente non abbia in possesso il server (cosa al quanto difficile) non puo mai visionare il codice PHP.

    Ora passiamo al login, ti spiego brevemente come avviene il tutto:
    Un server spesso è affiancato da una base di dati (Abbreviabile in DB [DataBase] ), spesso, il DB è sotto forma MySQL, che non è altro che un gestore di dati (DBMS). I login della maggior parte dei siti avvengono con lo storage (salvataggio) dei dati dell'utente nel DB, da parte dello script PHP. Per aumentare la sicurezza spesso i dati vengono codificati (l'algoritmo sha1 che usavi nel tuo esempio, è di tipo one-way, ovvero è impossibile ricavare la parola data in input), vengono usati questi algoritmi di cryptazione in modo che anche se scasualmente un malintenzionato s'infiltrasse nel DataBase, non potrebbe leggere le password originali degli utenti.
    Per quanto riguarda la leggibbilità dei dati nel DataBase, è come se un hacker volesse entrare nel tuo pc, io sono della filosofia che nulla è impossibile per un hacker, quindi per un utente normale è impossibile leggere i dati nel DB.

    Io ti ho dato più o meno le basi teoriche, per la patrica ti serve studiare una buona guida. Nella sezione PHP di html.it ne trovi molte.

    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    quindi tutto stò discorso sulla sicurezza delle password, è indirizzato all'unica ipotesi che un maleintenzionato riesca ad entrare nel DB .. trovando così la sorpresa delle password criptate ..

    e il discorso del così detto "Man in the middle" ?
    .. che il criptaggio avviene solo nel server, e non nel browser .. per cui "in viaggio" la password potrebbe essere intercettata ?

    ultima cosetta ..
    se uno riesce ad entrare nel db che stà nel server (che immagino abbia delle protezioni, oltre alla password che gli imposto io) mi verrebbe da dire che è anche in grado di vedere il codice in php (è proprio per questo che chiedevo se il codice sia leggibile da maleintenzionati)

  6. #6
    Originariamente inviato da JANUS70
    quindi tutto stò discorso sulla sicurezza delle password, è indirizzato all'unica ipotesi che un maleintenzionato riesca ad entrare nel DB .. trovando così la sorpresa delle password criptate ..

    e il discorso del così detto "Man in the middle" ?
    .. che il criptaggio avviene solo nel server, e non nel browser .. per cui "in viaggio" la password potrebbe essere intercettata ?

    ultima cosetta ..
    se uno riesce ad entrare nel db che stà nel server (che immagino abbia delle protezioni, oltre alla password che gli imposto io) mi verrebbe da dire che è anche in grado di vedere il codice in php (è proprio per questo che chiedevo se il codice sia leggibile da maleintenzionati)
    MiM è sempre in agguato.
    Per aggiungere sicurezza al transito dei dati tra client e server puoi usare HTTPS.

    Se qualcuno ha accesso "fisico" al server, anche con tutte le protezioni del mondo prima o poi riuscirà a fare quello che vuole fare
    Diciamo che se un hacker riesce ad accedere al server con una shell, è in grado di fare bene o male tutto quello che vuole, compreso leggere (e modificare!) il codice Php.
    Di solito comunque chi ha interesse ad accedere a un server difficilmente ha interesse nel codice Php. Più probabilmente ha interesse agli indirizzi email o account di carte di credito o comunque dati sensibili e importanti. Altre volte invece sono interessati a guadagnare una shell per aprire backdoor sul server, in modo da usarlo come ponte per attaccare altri server.
    Nella mia piccola esperienza di sicurezza informatica, non mi è mai capitato di vedere un hacker entrare in un server e analizzare codice Php, mentre è successo spessissimo di vedere "attacchi" ai firewall (per aprire una backdoor) o ai database (per recuperare indirizzi email e...password cripatate!).


  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    ho capito .. grazie mille

    ultima cosetta ..
    la password sul DB serve a qualcosa ? .. o sono altre le sicurezze che proteggono il DB ?

    grazie

  8. #8
    Originariamente inviato da JANUS70
    ho capito .. grazie mille

    ultima cosetta ..
    la password sul DB serve a qualcosa ? .. o sono altre le sicurezze che proteggono il DB ?

    grazie
    JANUS vuoi un consiglio? Vai per gradi.

    Chiariamo chi mi ha preceduto ha detto cose ESATTISSIME!!
    Vorrei però farti presente che nemmeno FACEBOOK utilizza https... e lì di dati "riservati" ve ne sarebbero...

    Quando si realizza un sistema di login bisogna chiedersi a che scopo questo viene costruito e basarsi su una logica di proporzionalità. Non penso che il tuo attuale scopo sia quello di realizzare un sistema di login per una banca!!?

    Ebbene... Vuoi fare un sistema di login?
    Inizia dalla struttura del DATABASE...
    poi fai un passo alla volta... registrazione+login+password smarrita+modifica password+ gestione profili+gestione permessi...
    ... poi token, XSS, brute force... e poi https.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  9. #9
    la password sul DB serve a qualcosa ?
    Si, in modo da far rendere piu difficile l'accesso di altri utenti dello stesso server. Infatti per connettersi ad un DB, c'è bisogno di fornire questi dati:
    -IP del server che spesso è omesso in quanto la maggior parte degli hosting non offre la possibilità agli altri (quindi persone con IP diverso) di connettersi al DB.
    -Username che comunque è un dato poco sensibile (spesso l'username è uguale al nome del sito)
    -Password che permette l'accesso solo agli utenti che conoscono la password (dello stesso server se l'IP accettato è unico) di connettersi.

    Per quanto riguarda i MITM e affini, nulla ti puo proteggere da essi, nemmeno le connessioni cifrate (HTTPs e SSL incluse) possono fortinirti un adeguata protezione, infatti, aimè, oggi sono bypassabili, e aimè di nuovo, non così difficilmente.
    Senza pensare che esistono alcune tecniche (Vedi DNS Cache Poisoning), che non "intaccano" il protocollo di comunicazione.

    Infine posso dirti, come già gli utenti precedentemente hanno fatto, che prenderti un sito su un hosting affidabile e programmare un sito in PHP decente, proteggendoti da semplici vulnerabilità che alcuni lamer potrebbero sfruttare, può bastare per le tue esigenze.

    P.S.
    Voglio ribadire che per la gente competente (Hacker, Cracker e affini) nulla è impossibile, infatti l'unico intoppo che c'è nei computer è l'uomo.

  10. #10
    double mess, sorry

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.