<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHPBlog.it &#187; password</title>
	<atom:link href="http://phpblog.it/tag/password/feed/" rel="self" type="application/rss+xml" />
	<link>http://phpblog.it</link>
	<description>Solo un altro blog targato WordPress</description>
	<lastBuildDate>Mon, 30 Jan 2012 10:36:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Creare random password user friendly</title>
		<link>http://phpblog.it/2008/11/17/creare-random-password-user-friendly/</link>
		<comments>http://phpblog.it/2008/11/17/creare-random-password-user-friendly/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 06:00:56 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[dalla rete]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[sitepoint]]></category>
		<category><![CDATA[user friendly]]></category>

		<guid isPermaLink="false">http://phpblog.it/2008/11/17/creare-random-password-user-friendly/</guid>
		<description><![CDATA[Quello delle password è un tema che offre sempre spunti di riflessione sul come agire al meglio per offrire un prodotto migliore. La generazione di password random è una pratica molto diffusa su molti sistemi e rappresenta l&#8217;approccio principale per il primo passo nel flusso di registrazione dell&#8217;utente ad un servizio. Questa password random spesso [...]]]></description>
			<content:encoded><![CDATA[<p>Quello delle password è un tema che offre sempre spunti di riflessione sul come agire al meglio per offrire un prodotto migliore. La generazione di password random è una pratica molto diffusa su molti sistemi e rappresenta l&#8217;approccio principale per il primo passo nel flusso di registrazione dell&#8217;utente ad un servizio. <strong>Questa password random spesso però non tiene conto delle possibili difficoltà che l&#8217;utente può incontrare nel leggerla</strong>: pensate solo alla somiglianza di caratteri come &#8220;l e I&#8221; o &#8220;O e 0&#8243; che in base al font utilizzato possono essere più o meno simili.</p>
<p><a href="http://www.sitepoint.com/blogs/2008/11/13/how-to-create-friendlier-random-passwords/" title="Craig Anderson affronta il problema su SitePoint">Craig Anderson affronta il problema su SitePoint</a> offrendo il suo punto di vista ed una possibile soluzione.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2008/11/17/creare-random-password-user-friendly/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Password: questione di sicurezza</title>
		<link>http://phpblog.it/2008/10/17/password-questione-di-sicurezza/</link>
		<comments>http://phpblog.it/2008/10/17/password-questione-di-sicurezza/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 05:00:55 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[phpblog]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[accesso dati]]></category>
		<category><![CDATA[password]]></category>

		<guid isPermaLink="false">http://phpblog.it/2008/10/17/password-questione-di-sicurezza/</guid>
		<description><![CDATA[La password è forse il sistema di sicurezza più utlizzato sul web per la difesa dei dati degli utenti. Ad ogni profilo, utente, cliente corrispondono uno username ed una password per limitare l&#8217;accesso ai dati ed alle funzionalità ad esso associati. Tuttavia può spesso capitare che la sicurezza fornita dall&#8217;accoppiata username/password non sia all&#8217;altezza auspicata [...]]]></description>
			<content:encoded><![CDATA[<p>La password è forse il sistema di sicurezza più utlizzato sul web per la difesa dei dati degli utenti. Ad ogni profilo, utente, cliente corrispondono uno username ed una password per limitare l&#8217;accesso ai dati ed alle funzionalità ad esso associati. Tuttavia può spesso capitare che la sicurezza fornita dall&#8217;accoppiata username/password non sia all&#8217;altezza auspicata dagli sviluppatori mettendo a rischio i dati e l&#8217;applicazione stessa. Come? Molto semplice: pippo/pippo o nome/cognome vi dicono niente? L&#8217;utente per pigrizia utilizzerà una password reciclata, magari semplice e corta cosa che implica un basso grado di sicurezza: l&#8217;alfanumerico di almeno 6 caratteri sarà un miraggio.</p>
<p>Per questo motivo in un progetto che sto affrontando in questo periodo ho deciso che <strong>l&#8217;utente non potrà agire direttamente sulla password ma sarà sempre il sistema ad occuparsene</strong>. Al momento della registrazione verrà creata una password comunicata all&#8217;utente via mail (caratteri alfanumerici); in caso di smarrimento l&#8217;utente potrà richiedere una nuova password con relativo reset della precedente dovuto al fatto che la password non verrà memorizzata in chiaro sul database.</p>
<p>L&#8217;approccio non è certo rivoluzionario, tuttavia in molte applicazioni la gestione password è diversa e lascia più libertà all&#8217;utente andando a dare spazio quindi ai problemi visti in precedenza.</p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2008/10/17/password-questione-di-sicurezza/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generare password casuali</title>
		<link>http://phpblog.it/2008/02/18/classe-php5-generazione-password-casuali/</link>
		<comments>http://phpblog.it/2008/02/18/classe-php5-generazione-password-casuali/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 06:00:47 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[classi]]></category>
		<category><![CDATA[phpblog]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[generatore]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[shuffle]]></category>
		<category><![CDATA[tipi]]></category>

		<guid isPermaLink="false">http://php5blog.it/2008/02/18/classe-php5-generazione-password-casuali/</guid>
		<description><![CDATA[In tutte le applicazioni che richiedono l&#8217;autenticazione da parte degli utenti un ruolo fondamentale per quanto riguarda la sicurezza dell&#8217;intero sistema è rappresentato dalla password inserita. Molte volte (se non nella totalità dei casi) lasciare all&#8217;utente la gestione completa della propria password è fonte di rischio visto che per semplice pigrizia l&#8217;utente medio utilizza spesso [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://172.18.0.13/wordpress/wp-content/uploads/2008/02/padlock.jpg" alt="Padlock" />In tutte le applicazioni che richiedono l&#8217;autenticazione da parte degli utenti <strong>un ruolo fondamentale per quanto riguarda la sicurezza dell&#8217;intero sistema è rappresentato dalla password inserita</strong>. Molte volte (se non nella totalità dei casi) lasciare all&#8217;utente la gestione completa della propria password è fonte di rischio visto che per semplice pigrizia l&#8217;utente medio utilizza spesso la stessa parola chiave sicuramente appartenente alla tipologia che possiamo definire debole: il proprio nome, date di nascita, parole estremamente corte. <strong>Oggi quindi presento una semplice classe per la generazione di password casuali scritta in PHP5.</strong></p>
<p><span id="more-34"></span>Una strada per innalzare la sicurezza della propria applicazione e dell&#8217;intero sistema è quella di <strong>fornire all&#8217;utente una password creata dal sistema seguendo un determinato criterio</strong> con l&#8217;intento di rispettare quelli che sono i requisiti minimi per una password sicura. Vogliamo quindi utilizzare:</p>
<ul>
<li>un insieme di caratteri alfabetici maiuscoli e minuscoli</li>
<li>un insieme di numeri</li>
</ul>
<p>La classe che vediamo di seguito è molto semplice prende <strong>2 valori in input <em>length</em> e <em>numbers</em></strong> che indicano rispettivamente la lunghezza totale della password ed il numero di cifre intendiamo inserire nella stringa che andiamo a generare. E&#8217; costituita dal <strong><em>costruttore</em> che si occupa di creare l&#8217;oggetto</strong> al momento dell&#8217;istanziazione della classe e dal <strong>metodo <em>getPassword() </em></strong>che si occupa dell&#8217;elaborazione vera e propria dell&#8217;input per la generazione dell&#8217;output: la password.</p>
<p><strong>Il costruttore si occupa appunto di costruire l&#8217;oggetto facendo le dovute <a href="http://php5blog.it/2008/02/12/php-non-e-fortemente-tipizzato/" title="verifiche sui tipi, di cui abbiamo parlato in un post precedente">verifiche sui tipi</a></strong><a href="http://php5blog.it/2008/02/12/php-non-e-fortemente-tipizzato/" title="verifiche sui tipi, di cui abbiamo parlato in un post precedente">, di cui abbiamo parlato in un post precedente</a>, ed agendo in base alla situazione che si verifica.<br />
<code></code></p>
<p><code>public function __construct($length, $numbers) {<br />
if (!is_int($length) || !is_int($numbers)) {<br />
die("randoPassword() richiede argomenti di tipo intero\n");<br />
}<br />
if ($length &lt; $numbers) {<br />
die("length deve essere maggiore di numbers\n");<br />
}<br />
$this-&gt;length = $length;<br />
$this-&gt;numbers = $numbers;<br />
}<br />
</code></p>
<p>Come anticipato <strong>il metodo <em>getPassword() </em>si occupa del lavoro vero e proprio</strong>, vediamo quindi come si comporta. Innanzitutto <strong>andiamo ad inserire nell&#8217;array <em>random_char</em> un numero di caratteri alfabetici presi da <em>$alphabet</em> pari al valore di <em>$length</em> meno il valore di <em>$numbers</em>.</strong> In secondo luogo <strong>aggiungiamo dei caratteri numerici</strong> presi casualmente tra 0 e 9 fino a raggiungere una numerosità dell&#8217;array <em>random_char</em> pari a <em>$length. </em>A questo punto avremmo già una password composta da lettere (maiuscole e minuscole) con n=$numbers caratteri numerici in coda. <strong>Per rendere le password meno ripetitive ho deciso di rimischiare i valori interni all&#8217;array con la comoda funzione <a href="http://it.php.net/manual/it/function.shuffle.php" title="shuffle">shuffle</a></strong> prima di eseguire il return del metodo.<br />
<code><br />
public function getPassword() {<br />
$a = 0;<br />
while ($a &lt; ($this-&gt;length - $this-&gt;numbers)) {<br />
$random_char[$a] = $this-&gt;alphabet[rand(0,51)];<br />
$a++;<br />
}</code><br />
<code><br />
while ($a &lt; $this-&gt;length) {<br />
$random_char[$a] = rand(0,9);<br />
$a++;<br />
}<br />
</code><code><br />
shuffle($random_char);<br />
</code><code><br />
$a = 0;<br />
while ($a &lt; ($this-&gt;length + $this-&gt;numbers)) {<br />
$password .= $random_char[$a];<br />
$a++;<br />
}<br />
return $password;<br />
}<br />
</code></p>
<p>Come sempre potete <a href="http://php5blog.it/downloads/phpblog/randomPassword.class.php.txt" title="randomPassword.class.php">scaricare <strong>il codice completo della classe randomPassword.class.php</strong></a> in modo da studiarlo attentamente (l&#8217;indentazione lì è corretta) e provarlo ma soprattutto modificarlo e perfezionarlo in base a quello che vi ha insegnato la vostra esperienza.</p>
<p>Usate i commenti qui sotto per esprimere il vostro parere, i vostri dubbi, le vostre critiche e i suggerimenti che riteniate possano essere utili a me ed ai lettori.</p>
<p><strong>CREDITS<br />
</strong>L’immagine utilizzata nell’articolo proviene da <a href="http://www.flickr.com/">Flickr</a>, dove è stata <a href="http://www.flickr.com/photos/imaginedreality/399334773/" title="Padlock and Key">pubblicata da Imagined Reality</a> con <a href="http://creativecommons.org/licenses/by-sa/2.0/deed.it" title="Attribuzione-Condividi allo stesso modo 2.0 Generico">licenza Creative Commons</a>.<a href="http://www.flickr.com/photos/imaginedreality/399334773/" title="http://www.flickr.com/photos/imaginedreality/399334773/"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://phpblog.it/2008/02/18/classe-php5-generazione-password-casuali/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

