Fai un hash della password in javascript lato client prima del submit e poi hash lato server
la password Vera del cliente non la saprai e non salverai neanche l’hash generato da JavaScript
Fai un hash della password in javascript lato client prima del submit e poi hash lato server
la password Vera del cliente non la saprai e non salverai neanche l’hash generato da JavaScript
Mi sa che quello che vuoi ottenere è impossibile...
Nel momento in cui qualcuno digita una password in una maschera, il codice di quella maschera CONOSCE la password, è inevitabile... E non è effettuandone lo hash o altro che garantisci all'utente, che probabilmente nemmeno sa cosa sia uno hash, che non conosci la sua password: tu LA CONOSCI, e scegli di criptarla prima di farci altro, ma l'utente deve, appunto, fidarsi che tu non te la salvi altrove in chiaro.
Detto questo, se pensi che l'utente possa non fidarsi della tua maschera di login, usa l'autenticazione HTTP: così la maschera che raccoglie la password sarà una maschera del browser, e se l'utente non si fida nemmeno del suo browser che ha scelto ed installato lui...
Comunque, se il tuo codice php deve poi occuparsi di effettuare lui l'autenticazione dell'utente, anche se la fai con l'autenticazione HTTP, il codice php conoscerà la tua password in chiaro!
L'unica soluzione in cui il tuo codice html/js/php non conosca MAI la password, è usando l'autenticazione HTTP su IIS su windows, poiché in questo modo sono il browser ed IIS a conoscerla, mentre il tuo codice lato server riceve SOLO un flag che gli indica se l'utente è autenticato o meno.
Un'altra cosa di cui mi raccomando molto è di non usare MAI MD5 o simili funzioni di hash ormai debolissime per qualsiasi cosa inerente la sicurezza... MD5 va bene per generare l'ETag di una pagina, ma nient'altro.
E in ogni caso html.it, come qualsiasi sito che abbia una maschera di login, non garantisce un bel nulla: Quando riempi ed invii la maschera di login, il codice a cui ciò viene inviato su html.it CONOSCE la password, e ne verifica la corrispondenza con lo hash salvato in una tabella.
Ciò che viene garantito è che la password in chiaro sia nota solo nel momento in cui tu la digiti e dev'essere verificata, ma non in nessun'altro momento, e comunque questo solo se html.it fa le cose seriamente.
E' proprio questa la ragione per cui non bisogna MAI riutilizzare una password su più account!
Ma posso chiederti PERCHE' dovresti garantire una cosa simile?
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
In primo luogo, GRAZIE
Hai centrato il problema e credo anche la risposta: è impossibile
Di conseguenza, necessariamente tutti i siti web conoscono la tua password (compreso html.it), e semplicemente "ti devi fidare" che non la conservino.
(ed è per questo che non bisogna mai usare la stessa password)
In realtà la soluzione globale ed "elegante" a questo problema ci sarebbe: Microsoft ADFS.
Purtroppo però la infrastruttura dove mi devo autenticare non l'ha implementata e certamente non lo fa ad hoc per me.
Correttissima anche l'idea di IIS per cercare sfruttare la integrazione con Windows, infatti è già in cantiere.
Vediamo se riusciamo a superare il problema in qualche modo.
In effetti, io provengo più dal "mondo MS" e mi sono rivolto ad Apache + PHP perchè volevo una soluzione completamente "platform independent", qualcosa che non girasse necessariamente solo sotto Windows + IIS e funzionasse con certezza anche su un telefonino.
Mi sa che dovrò rinunciare, vedremo cosa tiriamo fuori... :-)
L'obbiettivo finale, sintetizzando al massimo, è lanciare (lato server) dei programmi e principalmente degli script powershell.
Chiaramente non tutti coloro che si imbattono nella mia pagina devono poterli lanciare.
Chi è autorizzato a lanciare quegli script?
Naturalmente, come è prassi molto comune, la risposta è: tutti gli utenti appartenenti ad un gruppo di Active Directory.
Di conseguenza, le persone che devono accedere alla pagina si autenticano ad essa con le credenziali aziendali, alle quali è legato praticamente tutto, posta elettronica, cloud storage, intranet, cartelle di rete, telefono... tutto.
E' per questo motivo che è mandatorio il poter garantire che la mia pagina non possa conoscere le credenziali di dominio degli utenti.
Diversamente, io per primo non scriverei mai la mia password in quel box.
GRAZIE infinite, a tutti, per il vostro aiuto
JO
In primo luogo, GRAZIE
Hai centrato il problema e credo anche la risposta: è impossibile
Di conseguenza, necessariamente tutti i siti web conoscono la tua password (compreso html.it), e semplicemente "ti devi fidare" che non la conservino.
(ed è per questo che non bisogna mai usare la stessa password)
In realtà la soluzione globale ed "elegante" a questo problema ci sarebbe: Microsoft ADFS.
Purtroppo però la infrastruttura dove mi devo autenticare non l'ha implementata e certametne non lo fa ad hoc per me.
Correttissima anche l'idea di IIS per cercare sfruttare la integrazione con Windows, infatti è già in cantiere.
Vediamo se riusciamo a superare il problema in qualche modo.
In effetti, io provengo più dal "mondo MS" e mi sono rivolto ad Apache + PHP perchè volevo una soluzione completamente "platform indipendent", qualcosa che non girasse necessariamente solo sotto Windows + IIS e funzionasse con certezza anche su un telefonino.
Mi sa che dovrò rinunciare, vedremo cosa tiriamo fuori... :-)
L'obbiettivo finale, sintetizzando al massimo, è lanciare (lato server) dei programmi e principalmente degli script powershell.
Chiaramente non tutti coloro che si imbattono nella mia pagina devono poterli lanciare.
Chi è autorizzato a lanciare quegli script?
Naturamente, come è prassi molto comune, la risposta è: tutti gli utenti appartenti ad un gruppo di Active Directory.
Di conseguenza, le persone che devono accedere alla pagina si autenticano ad essa con le credenziali aziendali, alle quali è legato praticamente tutto, posta elettronica, cloud storage, intranet, cartelle di rete, telefono... tutto.
E' per questo motivo che è mandatorio il poter garantire che la mia pagina non possa conoscere le credenziali di dominio degli utenti.
Diversamente, io per primo non scriverei mai la mia password in quel box.
GRAZIE infinite, a tutti, per il vostro aiuto
JO
In primo luogo, GRAZIE
Hai centrato il problema e credo anche la risposta: è impossibile
Di conseguenza, necessariamente tutti i siti web conoscono la tua password (compreso html.it), e semplicemente "ti devi fidare" che non la conservino.
(ed è per questo che non bisogna mai usare la stessa password)
In realtà la soluzione globale ed "elegante" a questo problema ci sarebbe: Microsoft ADFS.
Purtroppo però la infrastruttura dove mi devo autenticare non l'ha implementata e certametne non lo fa ad hoc per me.
Correttissima anche l'idea di IIS per cercare sfruttare la integrazione con Windows, infatti è già in cantiere.
Vediamo se riusciamo a superare il problema in qualche modo.
In effetti, io provengo più dal "mondo MS" e mi sono rivolto ad Apache + PHP perchè volevo una soluzione completamente "platform indipendent", qualcosa che non girasse necessariamente solo sotto Windows + IIS e funzionasse con certezza anche su un telefonino.
Mi sa che dovrò rinunciare, vedremo cosa tiriamo fuori... :-)
L'obbiettivo finale, sintetizzando al massimo, è lanciare (lato server) dei programmi e principalmente degli script powershell.
Chiaramente non tutti coloro che si imbattono nella mia pagina devono poterli lanciare.
Chi è autorizzato a lanciare quegli script?
Naturamente, come è prassi molto comune, la risposta è: tutti gli utenti appartenti ad un gruppo di Active Directory.
Di conseguenza, le persone che devono accedere alla pagina si autenticano ad essa con le credenziali aziendali, alle quali è legato praticamente tutto, posta elettronica, cloud storage, intranet, cartelle di rete, telefono... tutto.
E' per questo motivo che è mandatorio il poter garantire che la mia pagina non possa conoscere le credenziali di dominio degli utenti.
Diversamente, io per primo non scriverei mai la mia password in quel box.
GRAZIE infinite, a tutti, per il vostro aiuto
JO
In primo luogo, GRAZIE
Hai centrato il problema e credo anche la risposta: è impossibile
Di conseguenza, necessariamente tutti i siti web conoscono la tua password (compreso html.it), e semplicemente "ti devi fidare" che non la conservino.
(ed è per questo che non bisogna mai usare la stessa password)
In realtà la soluzione globale ed "elegante" a questo problema ci sarebbe: Microsoft ADFS.
Purtroppo però la infrastruttura dove mi devo autenticare non l'ha implementata e certametne non lo fa ad hoc per me.
Correttissima anche l'idea di IIS per cercare sfruttare la integrazione con Windows, infatti è già in cantiere.
Vediamo se riusciamo a superare il problema in qualche modo.
In effetti, io provengo più dal "mondo MS" e mi sono rivolto ad Apache + PHP perchè volevo una soluzione completamente "platform indipendent", qualcosa che non girasse necessariamente solo sotto Windows + IIS e funzionasse con certezza anche su un telefonino.
Mi sa che dovrò rinunciare, vedremo cosa tiriamo fuori... :-)
L'obbiettivo finale, sintetizzando al massimo, è lanciare (lato server) dei programmi e principalmente degli script powershell.
Chiaramente non tutti coloro che si imbattono nella mia pagina devono poterli lanciare.
Chi è autorizzato a lanciare quegli script?
Naturamente, come è prassi molto comune, la risposta è: tutti gli utenti appartenti ad un gruppo di Active Directory.
Di conseguenza, le persone che devono accedere alla pagina si autenticano ad essa con le credenziali aziendali, alle quali è legato praticamente tutto, posta elettronica, cloud storage, intranet, cartelle di rete, telefono... tutto.
E' per questo motivo che è mandatorio il poter garantire che la mia pagina non possa conoscere le credenziali di dominio degli utenti.
Diversamente, io per primo non scriverei mai la mia password in quel box.
GRAZIE infinite, a tutti, per il vostro aiuto
JO
Che poi tu non la salvi, o ti salvi l'hash della password, che usi un algoritmo piuttosto che un altro... credo sia del tutto irrilevante.
Dici? Dunque stai affermando che salvare la password hashata oppure in chiaro non fa differenza
Nel tuo esempio, quando premi il pulsanteQuando un utente si registra io non conosco la sua password, anche se la stampassi a video (in questo caso la vede solo lui). L'unico modo è salvarla in chiaro nel DB o farsela mandare per email.Accedi del form di login, viene passata al file /php/login.php la variabile $POST_["password"] con la password in chiaro.
Non puoi evitare di conoscere la password in chiaro.
Mi sfugge comunque il problema che ti poni. Quando ad esempio scrivi
ritorniamo al punto di partenza...neppure in questo caso potrei garantire di non salvare le password in chiaro.
Se il sistema lo gestisci tu e hai cattive intenzioni, con le password ci fai quello che vuoi, con tutti i rischi che ne seguono.
Ma tu non sei un utente malintenzionato, dunque adotterai le migliori pratiche per garantire la sicurezza dell'applicazione.
Che poi tu non la salvi, o ti salvi l'hash della password, che usi un algoritmo piuttosto che un altro... credo sia del tutto irrilevante.
Dici? Dunque stai affermando che salvare la password hashata oppure in chiaro non fa differenza
Nel tuo esempio, quando premi il pulsanteQuando un utente si registra io non conosco la sua password, anche se la stampassi a video (in questo caso la vede solo lui). L'unico modo è salvarla in chiaro nel DB o farsela mandare per email.Accedi del form di login, viene passata al file /php/login.php la variabile $POST_["password"] con la password in chiaro.
Non puoi evitare di conoscere la password in chiaro.
Mi sfugge comunque il problema che ti poni. Quando ad esempio scrivi
ritorniamo al punto di partenza...neppure in questo caso potrei garantire di non salvare le password in chiaro.
Se il sistema lo gestisci tu e hai cattive intenzioni, con le password ci fai quello che vuoi, con tutti i rischi che ne seguono.
Ma tu non sei un utente malintenzionato, dunque adotterai le migliori pratiche per garantire la sicurezza dell'applicazione.