<?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>friimaind in the blog - Massimiliano Monaro - Programmatore PHP Mestre Venezia &#187; sicurezza</title>
	<atom:link href="http://blog.friimaind.it/category/programmazione/sicurezza-programmazione/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.friimaind.it</link>
	<description>Massimiliano Monaro - Programmatore PHP Mestre</description>
	<lastBuildDate>Thu, 15 Sep 2011 07:43:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Le sessioni in PHP 5</title>
		<link>http://blog.friimaind.it/12/05/2009/le-sessioni-in-php-5/</link>
		<comments>http://blog.friimaind.it/12/05/2009/le-sessioni-in-php-5/#comments</comments>
		<pubDate>Tue, 12 May 2009 21:08:11 +0000</pubDate>
		<dc:creator>friimaind</dc:creator>
				<category><![CDATA[programmazione]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sessioni]]></category>

		<guid isPermaLink="false">http://blog.friimaind.it/?p=127</guid>
		<description><![CDATA[Le sessioni in PHP ci consentono di trasferire informazioni da una pagina ad un&#8217;altra. Il classico esempio potrebbe essere il caso di un&#8217;area riservata alla quale si accede tramite un form di login. Senza l&#8217;ausilio delle sessioni (e in particolare dei cookies che esse utilizzano) sarebbe difficile, oltre che strutturalmente scorretto, ricordare il login dell&#8217;utente [...]]]></description>
			<content:encoded><![CDATA[<p>Le sessioni in PHP ci consentono di trasferire informazioni da una pagina ad un&#8217;altra.<br />
Il classico esempio potrebbe essere il caso di un&#8217;area riservata alla quale si accede tramite un form di login. Senza l&#8217;ausilio delle sessioni (e in particolare dei cookies che esse utilizzano) sarebbe difficile, oltre che strutturalmente scorretto, ricordare il login dell&#8217;utente una volta che chiude il browser oppure quando passa ad una pagina successiva.</p>
<p>Nella nostra pagina di login dove è presente il form per l&#8217;inserimento delle credenziali, come primissima cosa diciamo al server di iniziare una nuova sessione:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
/* qui ci sarà il form */</pre></div></div>

<p>La pagina, una volta inviati i dati dal form, dovrà controllare che le credenziali siano corrette. Se lo sono possiamo salvarci dei dati grazie alla superglobale <strong>$_SESSION</strong> in questo modo:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
     <span style="color: #666666; font-style: italic;">// salvo l'id utente</span>
     <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id_utente'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$id_utente</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Una volta che abbiamo salvato il nostro dato, possiamo utilizzarlo nelle pagine che seguiranno (come ad esempio una pagina della scheda di un documento riservato) in questo modo:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
     <span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
     <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id_utente'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
          <span style="color: #666666; font-style: italic;">// l'utente è loggato</span>
     <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
          <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Area ad accesso riservato'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Come vedete è sempre necessario inizializzare la sessione con <strong>session_start()</strong>.<br />
La primissima cosa che potrebbe venirci in mente è quella di salvarci in un&#8217;altra variabile di sessione (cookie) la password dell&#8217;utente criptata, in modo tale da effettuare il controllo della coppia id_utente &#8211; password nel nostro database.</p>
<p>Per concludere vediamo ora come si <strong>chiude una sessione</strong>, ad esempio per la classica azione di logout di un utente:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
     <span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #000088;">$_SESSION</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// svuoto la superglobale</span>
     <span style="color: #990000;">session_destroy</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>          
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p><strong>Attenzione</strong><br />
Una volta settata una variabile di sessione (cookie) è necessario eseguire un header(&#8216;Location&#8217;) per fare in modo che la pagina stessa riconosca il cookie settato.<br />
Ad esempio, se abbiamo il form di login contenuto nella pagina area_riservata.php e vogliamo fare in modo che, se l&#8217;utente è loggato, visualizzi un elenco di documenti, altrimenti visualizzi il form, dobbiamo fare in questo modo:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
     <span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>     
&nbsp;
     <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'azione'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'invia_form'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
          <span style="color: #666666; font-style: italic;">// salvo l'id utente</span>
          <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id_utente'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$id_utente</span><span style="color: #339933;">;</span>
          <span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Location /area_riservata.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #990000;">exit</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
&nbsp;
     <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id_utente'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
          <span style="color: #666666; font-style: italic;">// l'utente è loggato, visualizzo elenco doc</span>
     <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
          <span style="color: #666666; font-style: italic;">// l'utente non è loggato, visualizzo il form di login</span>
     <span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.friimaind.it/12/05/2009/le-sessioni-in-php-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validazione e filtro dell&#8217;input di un utente. La nuova filter_var()</title>
		<link>http://blog.friimaind.it/10/03/2009/validazione-e-filtro-dellinput-di-un-utente-la-nuova-filter_var/</link>
		<comments>http://blog.friimaind.it/10/03/2009/validazione-e-filtro-dellinput-di-un-utente-la-nuova-filter_var/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 15:26:43 +0000</pubDate>
		<dc:creator>friimaind</dc:creator>
				<category><![CDATA[libri]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[filter_var]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.friimaind.it/?p=122</guid>
		<description><![CDATA[Oggi mi sono trovato di fronte al classico form di registrazione di un utente con relativo form di login. La mia prima preoccupazione è stata ovviamente la validazione e il filtraggio dell&#8217;input dell&#8217;utente. Ero già pronto a prendermi le classiche espressioni regolari per controllare email, input di testo, date ecc&#8230; Ma proprio oggi leggevo un [...]]]></description>
			<content:encoded><![CDATA[<p>Oggi mi sono trovato di fronte al classico form di registrazione di un utente con relativo form di login.<br />
La mia prima preoccupazione è stata ovviamente la validazione e il filtraggio dell&#8217;input dell&#8217;utente.</p>
<p>Ero già pronto a prendermi le classiche espressioni regolari per controllare email, input di testo, date ecc&#8230; Ma proprio oggi leggevo un interessantissimo articolo su <strong>mattiasgeniar.be</strong>, un buon blog di uno sviluppatore, dove veniva presentata un&#8217;innovativa soluzione, introdotta con <strong>PHP5</strong>, per validare e filtrare l&#8217;input degli utenti: <strong>filter_var()</strong>.</p>
<p>Ammetto di essere rimasto affascianato dalla semplicità con cui ora posso validare e filtrare i dati.<br />
Ecco alcuni esempi (Attenzione: filter_var() è presente <strong>SOLO</strong> da <strong>PHP5</strong> in poi).</p>
<p>Validazione di una mail:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
   <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">filter_var</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'email'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> FILTER_VALIDATE_EMAIL<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Email non valida'</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Strip di tutto ciò che non è una stringa (pensiamo ad esempio ad un commento nel nostro blog):</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
   <span style="color: #000088;">$commento</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt;h1&gt;Ciao a tutti, il mio &lt;a href='http://www.google.it'&gt;blog è qui&lt;/a&gt;&lt;/h1&gt;&quot;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$commento</span> <span style="color: #339933;">=</span> <span style="color: #990000;">filter_var</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$commento</span><span style="color: #339933;">,</span> FILTER_SANITIZE_STRING<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #666666; font-style: italic;">// Restituisce Ciao a tutti, il mio blog è qui</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>E questi sono solo due semplicissimi esempi che solitamente necessitano di strip_tags, espressioni regolari ecc&#8230;<br />
Onestamente trovo questo filter_var una vera manna!</p>
<p>Vi lascio il link di tutti i possibili parametri (sono veramente molti) per la filter_var:<br />
<a href="http://mattiasgeniar.be/2009/02/07/input-validation-using-filter_var-over-regular-expressions/">http://mattiasgeniar.be/2009/02/07/input-validation-using-filter_var-over-regular-expressions/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.friimaind.it/10/03/2009/validazione-e-filtro-dellinput-di-un-utente-la-nuova-filter_var/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: strip_tags, eliminare tag HTML da un testo con eccezioni</title>
		<link>http://blog.friimaind.it/03/03/2009/php-strip_tags-eliminare-tag-html-da-un-testo-con-eccezioni/</link>
		<comments>http://blog.friimaind.it/03/03/2009/php-strip_tags-eliminare-tag-html-da-un-testo-con-eccezioni/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 15:29:37 +0000</pubDate>
		<dc:creator>friimaind</dc:creator>
				<category><![CDATA[programmazione]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[strip_tags]]></category>

		<guid isPermaLink="false">http://blog.friimaind.it/?p=119</guid>
		<description><![CDATA[Tutti noi sappiamo che per eliminare i tag HTML da una stringa (ad esempio da un form inviato da un utente) possiamo utilizzare la comoda funzione nativa di PHP strip_tags(). Se abbiamo ad esempio una stringa inviata da un utente malintezionato, che vuole inserire del codice HTML (un link ad un sito ad esempio&#8230;) possiamo [...]]]></description>
			<content:encoded><![CDATA[<p>Tutti noi sappiamo che per eliminare i tag HTML da una stringa (ad esempio da un form inviato da un utente) possiamo utilizzare la comoda funzione nativa di PHP <strong>strip_tags()</strong>.</p>
<p>Se abbiamo ad esempio una stringa inviata da un utente malintezionato, che vuole inserire del codice HTML (un link ad un sito ad esempio&#8230;) possiamo fare così:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$commento</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commento'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>E se volessimo invece abilitare all&#8217;utente la possibilità di mettere un testo in grassetto?</p>
<p>Possiamo fare così:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$commento</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commento'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&lt;strong&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Nel caso volessimo abilitare più di un tag possiamo utilizzare questa sintassi:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$commento</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commento'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'&lt;strong&gt;,&lt;a&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>In questo modo l&#8217;utente avrà la possibilità di mettere link e grassetti.</p>
<p><strong>Attenzione:</strong> strip_tags() elimina tutti i tag HTML, ma anche i tags PHP !</p>
<p>Per approfondimenti: <a title="strip_tags" href="http://it2.php.net/manual/it/function.strip-tags.php" target="_blank">http://it2.php.net/manual/it/function.strip-tags.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.friimaind.it/03/03/2009/php-strip_tags-eliminare-tag-html-da-un-testo-con-eccezioni/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sicurezza in PHP &#8211; SQL injections</title>
		<link>http://blog.friimaind.it/20/08/2008/sicurezza-in-php-sql-injections/</link>
		<comments>http://blog.friimaind.it/20/08/2008/sicurezza-in-php-sql-injections/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 13:11:17 +0000</pubDate>
		<dc:creator>friimaind</dc:creator>
				<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://friimaind.wordpress.com/?p=103</guid>
		<description><![CDATA[Cos’è un SQL injection ? Direttamente da html.it la SQL injection consiste nell&#8217;inserimento di query T-SQL e nella modifica di interrogazioni già esistenti nelle pagine dinamiche, così da far compiere all&#8217;applicazione un&#8217;azione del tutto imprevista. Un altra buona definizione direttamente da wikipedia La SQL injection è una tecnica dell&#8217;hacking mirata a colpire le applicazioni web [...]]]></description>
			<content:encoded><![CDATA[<h4>Cos’è un SQL injection ?</h4>
<p>Direttamente da <a title="SQL Injection" href="http://sicurezza.html.it/articoli/leggi/973/tecniche-sql-injection/" target="_blank">html.it</a></p>
<blockquote><p><em>la SQL injection consiste nell&#8217;inserimento di query T-SQL e nella <strong>modifica di interrogazioni già esistenti nelle pagine dinamiche</strong>, così da far compiere all&#8217;applicazione un&#8217;azione del tutto imprevista.</em></p></blockquote>
<p>Un altra buona definizione direttamente da wikipedia</p>
<blockquote><p><em>La SQL injection è una tecnica dell&#8217;<strong>hacking </strong>mirata a colpire le applicazioni web che si appoggiano su un database di tipo SQL. Questo exploit sfrutta l&#8217;<strong>inefficienza dei controlli sui dati ricevuti </strong>in input ed inserisce codice maligno all&#8217;interno di una query SQL. Le conseguenze prodotte sono <strong>imprevedibili </strong>per il programmatore: l&#8217;Sql Injection permette al malintezionato di autenticarsi con ampi privilegi in aree protette del sito (ovviamente, anche senza essere in possesso delle credenziali d&#8217;accesso) e di visualizzare e/o <strong>alterare </strong>dati sensibili.</em></p></blockquote>
<h4>Soluzioni</h4>
<p>- Non fidarsi dell&#8217;input dell&#8217;utente. Mai. Anche un utente che commette un errore , e non un malintenzionato, può provocare danni.</p>
<p>- Eseguire sempre l&#8217;escape dei caratteri utilizzando <a title="Mysql real escape string manual" href="http://it.php.net/manual/it/function.mysql-real-escape-string.php" target="_blank">mysql_real_escape_string()</a> oppure <a title="Addslashes manual" href="http://it.php.net/manual/it/function.addslashes.php" target="_blank">addslashes()</a></p>
<p>- Controllare la direttiva di PHP <a title="Magic Quotes gcp" href="http://it2.php.net/manual/it/info.configuration.php#ini.magic-quotes-gpc" target="_blank">magic_quotes_gpc</a>. Se impostata su ON non eseguire l&#8217;escape in quanto viene fatto automaticamente e procurerebbe solo un escape multiplo.</p>
<p>- Se stiamo ricevendo un email da un form , controlliamo che sia valida (esistono molte funzioni in giro).</p>
<p>- Stiamo ricevendo un dato e ci aspettiamo che sia un numero? Eseguiamo il casting (int)$_POST['input_utente']</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.friimaind.it/20/08/2008/sicurezza-in-php-sql-injections/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sicurezza in PHP &#8211; register_globals</title>
		<link>http://blog.friimaind.it/20/08/2008/sicurezza-in-php-register_globals/</link>
		<comments>http://blog.friimaind.it/20/08/2008/sicurezza-in-php-register_globals/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 10:07:15 +0000</pubDate>
		<dc:creator>friimaind</dc:creator>
				<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://friimaind.wordpress.com/?p=98</guid>
		<description><![CDATA[Cos&#8217;è la direttiva register_globals di php ? Direttamente da phpnews.it Se nel php.ini è abilitata la direttiva register_globals il PHP crea automaticamente, all&#8217;avvio di ogni script, delle variabili globali con i dati provenienti dall&#8217;URL, dai form, dai cookies, dalla sessione, dal server web e dal browser. E&#8217; chiaro che questa situazione rende la nostra vita [...]]]></description>
			<content:encoded><![CDATA[<h4>Cos&#8217;è la direttiva register_globals di php ?</h4>
<p>Direttamente da <a title="php news" href="http://www.phpnews.it/tips-tricks/disabilitare-il-register_globals/" target="_blank">phpnews.it</a></p>
<blockquote><p><em>Se nel php.ini è abilitata la direttiva <strong>register_globals</strong> il PHP crea automaticamente, all&#8217;avvio di ogni script, delle variabili globali con i dati provenienti dall&#8217;URL, dai form, dai cookies, dalla sessione, dal server web e dal browser.</em></p></blockquote>
<p>E&#8217; chiaro che questa situazione rende la nostra vita più semplice in fase di programmazione, ma è anche vero che se non inizializziamo tutte le variabili, un malintenzionato (o anche un erorre perchè no ..) potrebbe scrivere nell&#8217;url della nostra pagina &amp;variabile=1 e settare in questo modo una variabile che nel nostro codice potrebbe servire a molte cose&#8230; nel peggiore dei casi ad un autentificazione.</p>
<p>Brutta situazione vero? Da PHP 4.2 in su infatti la direttiva è stata portata di default da ON a OFF obbligandoci quindi a scrivere codice più ragionato , e quindi più sicuro.</p>
<h4>Soluzioni</h4>
<p>Una buona abitudine, indipendentemente dalla direttiva register_globals è <em>inizializzare e definire</em> SEMPRE le variabili che andremo ad usare nel nostro script.</p>
<p>Secondariamente bisogna impostare la direttiva register_globals ad OFF in questo modo :</p>
<p>Direttamente da <strong>php.ini</strong> : <em>register_globals = false</em></p>
<p>Nel file <strong>.htaccess</strong> del nostro sito : <em>php_flag register_globals off</em></p>
<p><strong>Approfondimento su register_globals (inglese) : </strong>php.net <a title="Using Register Globals - Php.net" href="http://it.php.net/register_globals" target="_blank">http://it.php.net/register_globals</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.friimaind.it/20/08/2008/sicurezza-in-php-register_globals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

