<?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>Html e PHP &#8211; SMsoft &#8211; informatica e dintorni</title>
	<atom:link href="https://blog.smsoft.it/category/programmazione/html-e-php/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.smsoft.it</link>
	<description>consigli settimanali su MacOS, GNU/Linux ed Open Source</description>
	<lastBuildDate>Fri, 26 Sep 2025 10:04:19 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=96137</generator>
	<item>
		<title>npm: eseguire più servizi in parallelo (VITE e PHP)</title>
		<link>https://blog.smsoft.it/2025/05/06/npm-eseguire-piu-servizi-in-parallelo-vite-e-php/</link>
					<comments>https://blog.smsoft.it/2025/05/06/npm-eseguire-piu-servizi-in-parallelo-vite-e-php/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 06 May 2025 08:30:00 +0000</pubDate>
				<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[vite]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6722</guid>

					<description><![CDATA[Questa la situazione, ma quello che descrivo è applicabile per tanti altri casi simili. State sviluppando un&#8217;applicazione con VUE.JS e l&#8217;applicazione ha anche un backend API scritto in PHP. Avviamo l&#8217;applicazione in modalità di debug con: e solitamente questo attiva un servizio web sulla porta 5173 che possiamo aprire nel browser. Ma per le API ... <a title="npm: eseguire più servizi in parallelo (VITE e PHP)" class="read-more" href="https://blog.smsoft.it/2025/05/06/npm-eseguire-piu-servizi-in-parallelo-vite-e-php/" aria-label="Per saperne di più su npm: eseguire più servizi in parallelo (VITE e PHP)">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Questa la situazione, ma quello che descrivo è applicabile per tanti altri casi simili.</p>



<p class="wp-block-paragraph">State sviluppando un&#8217;applicazione con VUE.JS e l&#8217;applicazione ha anche un backend API scritto in PHP. </p>



<p class="wp-block-paragraph">Avviamo l&#8217;applicazione in modalità di debug con:</p>



<pre class="wp-block-code"><code>npm run dev</code></pre>



<p class="wp-block-paragraph">e solitamente questo attiva un servizio web sulla porta 5173 che possiamo aprire nel browser. Ma per le API PHP che ho in locale? Devo avviare un server web? devo scrivere un altro comando?</p>



<p class="wp-block-paragraph">La soluzione più semplice è usare il pacchetto npm <a href="https://www.npmjs.com/package/concurrently" target="_blank" rel="noreferrer noopener">concurrently</a> da installare con:</p>



<pre class="wp-block-preformatted">npm install --save-dev concurrently</pre>



<p class="wp-block-paragraph">poi modificare il file package.json da qualcosa tipo:</p>



<pre class="wp-block-code"><code>"scripts": {
"dev": "vite",
"build": "run-p type-check \"build-only {@}\" --",</code></pre>



<p class="wp-block-paragraph">in:</p>



<pre class="wp-block-code"><code>"scripts": {
"dev": "vite",
"dev:php": "php -S127.0.0.1:8765 -t ./",
"dev:all": "concurrently --kill-others \"npm run dev\" \"npm run dev:php\"",
"build": "run-p type-check \"build-only {@}\" --",</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">ora potremo avviare entrambe i servizi con:</p>



<pre class="wp-block-code"><code>npm run dev:all</code></pre>



<p class="wp-block-paragraph">ma nessun ci vieta di inserire nel <strong>package.json</strong> la riga che vedete in <strong>dev:all</strong> direttamente in <strong>dev</strong> e quindi lasnciare il classico <strong>npm run dev</strong> per avviarli entrambe.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><strong>Nota:</strong></p>



<p class="wp-block-paragraph">Ora ci sarà una nuova esigenza da gestire, ovvero come dire all&#8217;applicazione di usare due url differenti come base per il puntamento verso il corretto <strong>endpoint</strong> in modalità sviluppo o produzione.</p>



<p class="wp-block-paragraph">La soluzione è quella di creare due file di environment, uno chiamato <strong>.env.development</strong> in cui inseriamo:</p>



<pre class="wp-block-code"><code>NODE_ENV=dev 
VITE_API_BASE_URL=http://127.0.0.1:8765/api/</code></pre>



<p class="wp-block-paragraph">l&#8217;altro chiamato <strong>.env.production</strong> in cui inseriamo:</p>



<pre class="wp-block-code"><code>NODE_ENV=production 
VITE_API_BASE_URL=/api/</code></pre>



<p class="wp-block-paragraph">ed infine inseriamo nel file <strong>main.ts</strong>, prima di fare il <strong>createApp()</strong> , questo codice:</p>



<pre class="wp-block-code"><code>export const API_BASE_URL = import.meta.env.VITE_API_BASE_URL as string
if (!API_BASE_URL) {
  throw new Error('VITE_API_BASE_URL is not defined')
}</code></pre>



<p class="wp-block-paragraph">cosa che renderà disponibile nell&#8217;app la costante API_BASE_URL da poter utilizzare come prefisso per le nostre chiamate API.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"><em>Chiaramente il tutto potete personalizzarlo secondo le vostre esigenze, questo è solo da prendere come spunto.</em></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2025/05/06/npm-eseguire-piu-servizi-in-parallelo-vite-e-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Apache/PHP e l&#8217;header Content-Length sparito</title>
		<link>https://blog.smsoft.it/2025/03/25/apache-php-e-lheader-content-length-sparito/</link>
					<comments>https://blog.smsoft.it/2025/03/25/apache-php-e-lheader-content-length-sparito/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 25 Mar 2025 09:30:00 +0000</pubDate>
				<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Content-Length]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6684</guid>

					<description><![CDATA[Facendo alcuni test su degli script PHP è risultato che l&#8217;header Content-Length, seppur impostato, non veniva restituito da Apache. Dopo alcune ricerche è emerso che dalla versione 2.4.59, per gli script CGI-like (come PHP) non possono più restituire l&#8217;header Content-Length per motivi di sicurezza (rif CVE-2024-24795). Per ambienti sicuri è possibile ripristinare il precedente funzionamento ... <a title="Apache/PHP e l&#8217;header Content-Length sparito" class="read-more" href="https://blog.smsoft.it/2025/03/25/apache-php-e-lheader-content-length-sparito/" aria-label="Per saperne di più su Apache/PHP e l&#8217;header Content-Length sparito">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Facendo alcuni test su degli script <strong>PHP</strong> è risultato che l&#8217;header <strong>Content-Length</strong>, seppur impostato, non veniva restituito da <strong>Apache</strong>.</p>



<p class="wp-block-paragraph">Dopo alcune ricerche è emerso che dalla versione 2.4.59, per gli script CGI-like (come PHP) non possono più restituire l&#8217;header <strong>Content-Length</strong> per motivi di sicurezza (rif <a href="https://www.cve.org/CVERecord?id=CVE-2024-24795" target="_blank" rel="noreferrer noopener">CVE-2024-24795</a>).</p>



<p class="wp-block-paragraph">Per ambienti sicuri è possibile ripristinare il precedente funzionamento tramite una nuova direttiva di apache chiamata <a href="https://httpd.apache.org/docs/current/env.html#cgilike" target="_blank" rel="noreferrer noopener">ap_trust_cgilike_cl</a>.</p>



<p class="wp-block-paragraph">Per impostarla, creiamo un file chiamato <strong>/etc/apache2/conf-available/fix-cgi.conf</strong> con all&#8217;interno:</p>



<pre class="wp-block-code"><code>SetEnv ap_trust_cgilike_cl 1</code></pre>



<p class="wp-block-paragraph">e poi abilitiamolo con:</p>



<pre class="wp-block-code"><code>a2enconf fix-cgi
systemctl reload apache2</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2025/03/25/apache-php-e-lheader-content-length-sparito/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Laravel ed errore 419 sul login</title>
		<link>https://blog.smsoft.it/2024/10/08/laravel-ed-errore-419-sul-login/</link>
					<comments>https://blog.smsoft.it/2024/10/08/laravel-ed-errore-419-sul-login/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 08 Oct 2024 08:30:00 +0000</pubDate>
				<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[419]]></category>
		<category><![CDATA[laravel]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6491</guid>

					<description><![CDATA[Se riscontrate l&#8217;errore 419 su Laravel, potrebbe dipendere dalla configurazione HttpOnly per i cookie su apache. Ad esempio solitamente utilizzo questa configurazione: che comporta l&#8217;errore 419 al login su un&#8217;applicazione Laravel. Attenzione L&#8217;attributo HttpOnly serve a impedire l&#8217;accesso ai cookie tramite JavaScript, riducendo il rischio di attacchi Cross-Site Scripting (XSS). Sebbene mitigare gli XSS sia ... <a title="Laravel ed errore 419 sul login" class="read-more" href="https://blog.smsoft.it/2024/10/08/laravel-ed-errore-419-sul-login/" aria-label="Per saperne di più su Laravel ed errore 419 sul login">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Se riscontrate l&#8217;errore <strong>419</strong> su <strong>Laravel</strong>, potrebbe dipendere dalla configurazione <strong>HttpOnly</strong> per i cookie su apache. Ad esempio solitamente utilizzo questa configurazione:</p>



<pre class="wp-block-code"><code>Header always edit Set-Cookie "(?i)^((?:(?!;\s?HttpOnly).)+)$" "$1; HttpOnly"</code></pre>



<p class="wp-block-paragraph">che comporta l&#8217;errore <strong>419</strong> al login su un&#8217;applicazione <strong>Laravel</strong>.</p>



<h2 class="wp-block-heading"><strong>Attenzione</strong></h2>



<p class="wp-block-paragraph">L&#8217;attributo <code>HttpOnly</code> serve a impedire l&#8217;accesso ai cookie tramite JavaScript, riducendo il rischio di attacchi Cross-Site Scripting (XSS).</p>



<p class="wp-block-paragraph">Sebbene mitigare gli XSS sia possibile attraverso la sanificazione degli input utente e la rimozione dei tag <code>&lt;script&gt;</code>, anche un piccolo errore può avere conseguenze disastrose. Inoltre, l&#8217;utilizzo di script di terze parti potrebbe compromettere la sicurezza degli utenti. Ogni anno si verificano attacchi XSS di successo che dimostrano l&#8217;importanza di adottare misure adeguate.</p>



<p class="wp-block-paragraph">Ad esempio, se una pagina web utilizza un cookie di sessione e presenta un campo di input vulnerabile a XSS, un attaccante potrebbe facilmente iniettare uno script che invia una richiesta HTTP a un URL simile al seguente:</p>



<p class="wp-block-paragraph">enjoy!</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2024/10/08/laravel-ed-errore-419-sul-login/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Angular: codice di rewrite per Apache</title>
		<link>https://blog.smsoft.it/2024/07/16/angular-codice-di-rewrite-per-apache/</link>
					<comments>https://blog.smsoft.it/2024/07/16/angular-codice-di-rewrite-per-apache/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 16 Jul 2024 08:30:00 +0000</pubDate>
				<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[angular]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[rewrite]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6376</guid>

					<description><![CDATA[Le applicazioni scritte in angular hanno l&#8217;entry point nel file index.html che poi gestisce anche il routing per le pagine interne. Dopo un po&#8217; di prove, questo il codice di rewrite che meglio funziona per gestire il redirect su Apache: enjoy!]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Le applicazioni scritte in angular hanno l&#8217;entry point nel file index.html che poi gestisce anche il routing per le pagine interne. Dopo un po&#8217; di prove, questo il codice di rewrite che meglio funziona per gestire il redirect su Apache:</p>



<pre class="wp-block-code"><code>      DirectoryIndex index.html
      ErrorDocument 404 /index.html
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.html$ - &#91;L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.html &#91;L,R=301]</code></pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2024/07/16/angular-codice-di-rewrite-per-apache/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creare un servizio systemd per gestire le code laravel</title>
		<link>https://blog.smsoft.it/2024/07/02/creare-un-servizio-systemd-per-gestire-le-code-laravel/</link>
					<comments>https://blog.smsoft.it/2024/07/02/creare-un-servizio-systemd-per-gestire-le-code-laravel/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 02 Jul 2024 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[laravel]]></category>
		<category><![CDATA[queue]]></category>
		<category><![CDATA[systemd]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6352</guid>

					<description><![CDATA[Non mi dilungo qui a parlare delle code (queue) su laravel, parliamo invece di come gestire il servizio che processa le code. Dato che sulle ultime distribuzioni è quasi sempre presente systemd, vediamo come usarlo per la nostra esigenza. Creiamo il file /etc/systemd/system/laravel-queue.service in cui scriviamo: dove inserite i parametri corretti al posto di XXXXXXX. ... <a title="Creare un servizio systemd per gestire le code laravel" class="read-more" href="https://blog.smsoft.it/2024/07/02/creare-un-servizio-systemd-per-gestire-le-code-laravel/" aria-label="Per saperne di più su Creare un servizio systemd per gestire le code laravel">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Non mi dilungo qui a parlare delle code (<strong>queue</strong>) su <strong>laravel</strong>, parliamo invece di come gestire il servizio che processa le code. Dato che sulle ultime distribuzioni è quasi sempre presente <strong>systemd</strong>, vediamo come usarlo per la nostra esigenza.</p>



<p class="wp-block-paragraph">Creiamo il file <strong>/etc/systemd/system/laravel-queue.service</strong> in cui scriviamo:</p>



<pre class="wp-block-code"><code>&#91;Unit]
Description=Laravel Queue Worker
After=network-online.target, mysql.service

&#91;Service]
User=XXXXXXX
Group=XXXXXXX
Type = simple
Restart=always
RestartSec=5s
RestartPreventExitStatus = 255
WorkingDirectory=/var/www/XXXXXXX
ExecStart=/usr/bin/php artisan queue:work
#StandardOutput=append:{log_file} 
#StandardError=inherit
#EnvironmentFile=/etc/environment

&#91;Install]
WantedBy=multi-user.target</code></pre>



<p class="wp-block-paragraph">dove inserite i parametri corretti al posto di XXXXXXX. Successivamente:</p>



<pre class="wp-block-code"><code>systemctl daemon-reload
systemctl enable doxcloud-laravel-queue.service
systemctl start doxcloud-laravel-queue.service
systemctl status doxcloud-laravel-queue.service</code></pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2024/07/02/creare-un-servizio-systemd-per-gestire-le-code-laravel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Escludere file da un progetto git</title>
		<link>https://blog.smsoft.it/2024/05/07/escludere-file-da-un-progetto-git/</link>
					<comments>https://blog.smsoft.it/2024/05/07/escludere-file-da-un-progetto-git/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 07 May 2024 08:30:00 +0000</pubDate>
				<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[.gitignore]]></category>
		<category><![CDATA[git]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6311</guid>

					<description><![CDATA[Come forse tutti sapete, è possibile scrivere nel file .gitignore (uno per riga) i file o le cartelle da escludere dal repository. Se però provate a farlo con un file/cartella che precedentemente era stata già inclusa, potrete notare che tali risorse non vengono ignorate. In questo caso, bisogna rimuovere i riferimenti nel repository oltre che ... <a title="Escludere file da un progetto git" class="read-more" href="https://blog.smsoft.it/2024/05/07/escludere-file-da-un-progetto-git/" aria-label="Per saperne di più su Escludere file da un progetto git">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Come forse tutti sapete, è possibile scrivere nel file <strong>.gitignore</strong> (uno per riga) i file o le cartelle da escludere dal repository. Se però provate a farlo con un file/cartella che precedentemente era stata già inclusa, potrete notare che tali risorse non vengono ignorate.</p>



<p class="wp-block-paragraph">In questo caso, bisogna rimuovere i riferimenti nel repository oltre che inserire l&#8217;esclusione nel file <strong>.gitignore</strong>. Ipotizziamo di voler escludere il file <strong>pippo.txt</strong>, dovremo scrivere</p>



<pre class="wp-block-code"><code>pippo.txt</code></pre>



<p class="wp-block-paragraph">nel file .gitignore e poi rimuoverlo con:</p>



<pre class="wp-block-code"><code>git rm -r --cached pippo.txt</code></pre>



<p class="wp-block-paragraph">per verificare che sia tutto a posto, possiamo eseguire un:</p>



<pre class="wp-block-code"><code>git status</code></pre>



<p class="wp-block-paragraph">e poi procedere alla sincronizzazione con un:</p>



<pre class="wp-block-code"><code>git add .
git commit -m "rimozione pippo.txt"
git push</code></pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2024/05/07/escludere-file-da-un-progetto-git/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CVE-2024-2961</title>
		<link>https://blog.smsoft.it/2024/04/23/cve-2024-2961/</link>
					<comments>https://blog.smsoft.it/2024/04/23/cve-2024-2961/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 23 Apr 2024 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[CVE-2024-2961]]></category>
		<category><![CDATA[glibc]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=6340</guid>

					<description><![CDATA[Recentemente è stato rilasciato il CVE-2024-2961 che identifica una vulnerabilità di buffer overflow nelle versioni GNU libc 2.39 e precedenti durante la conversione di set di caratteri in determinate codifiche cinesi estese. Questa vulnerabilità colpisce PHP quando iconv viene utilizzato per tradurre le codifiche delle richieste da/verso i set di caratteri interessati e ha il ... <a title="CVE-2024-2961" class="read-more" href="https://blog.smsoft.it/2024/04/23/cve-2024-2961/" aria-label="Per saperne di più su CVE-2024-2961">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Recentemente è stato rilasciato il <strong><a href="https://security-tracker.debian.org/tracker/CVE-2024-2961" data-type="link" data-id="https://security-tracker.debian.org/tracker/CVE-2024-2961" target="_blank" rel="noreferrer noopener">CVE-2024-2961</a></strong> che identifica una vulnerabilità di buffer overflow nelle versioni <strong>GNU libc 2.39 e precedenti</strong> durante la conversione di set di caratteri in determinate codifiche cinesi estese.</p>



<p class="wp-block-paragraph">Questa vulnerabilità colpisce <strong>PHP</strong> quando <strong>iconv</strong> viene utilizzato per tradurre le codifiche delle richieste da/verso i set di caratteri interessati e ha il potenziale per essere di ampia portata.</p>



<p class="wp-block-paragraph">Sulle recenti distribuzioni <strong>Debian</strong>, la libreria <strong>glibc</strong> è stata aggiornata, qualora non sia possibile procedere all&#8217;aggiornamento o la versione non prevedesse ancora l&#8217;aggiornamento, si può mitigare questo problema disabilitando i set di caratteri interessati in gconv.</p>



<p class="wp-block-paragraph">Per controllare la versione di glibc si può usare:</p>



<p class="wp-block-paragraph">ldd &#8211;version</p>



<p class="wp-block-paragraph">Per verificare se la vulnerabilità è presente:</p>



<pre class="wp-block-code"><code>iconv -l | grep -E 'CN-?EXT'</code></pre>



<p class="wp-block-paragraph">se vengono mostrate delle righe tipo:</p>



<pre class="wp-block-code"><code>ISO-2022-CN-EXT//<br>ISO2022CNEXT//</code></pre>



<p class="wp-block-paragraph">significa che la vulerabilità è presente.</p>



<p class="wp-block-paragraph">Questo per il fix:</p>



<pre class="wp-block-code"><code>sed -i '/CN-EXT/d' /usr/lib/x86_64-linux-gnu/gconv/gconv-modules
iconvconfig</code></pre>



<p class="wp-block-paragraph">Infine controllare nuovamente:</p>



<pre class="wp-block-code"><code>iconv -l | grep -E 'CN-?EXT'</code></pre>



<p class="wp-block-paragraph">e non dovrebbero essere più mostrati risultati.</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">enjoy!<br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2024/04/23/cve-2024-2961/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Brew: Installare xdebug su PHP 8.2</title>
		<link>https://blog.smsoft.it/2023/07/11/brew-installare-xdebug-su-php-8-2/</link>
					<comments>https://blog.smsoft.it/2023/07/11/brew-installare-xdebug-su-php-8-2/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 11 Jul 2023 08:30:00 +0000</pubDate>
				<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[brew]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xdebug]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=5997</guid>

					<description><![CDATA[La versione PHP attualmente installata da brew (il packet manager per MacOS) è la 8.2.6, anche se ci sono altre versioni che si possono installare sempre tramite brew. Per aggiungere anche l&#8217;estensione xdebug bisogna usare pecl perché non è presente direttamente nel repository di brew. Per installare PHP ed xdebug possiamo fare come segue: brew ... <a title="Brew: Installare xdebug su PHP 8.2" class="read-more" href="https://blog.smsoft.it/2023/07/11/brew-installare-xdebug-su-php-8-2/" aria-label="Per saperne di più su Brew: Installare xdebug su PHP 8.2">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">La versione PHP attualmente installata da brew (il packet manager per MacOS) è la 8.2.6, anche se ci sono altre versioni che si possono installare sempre tramite brew.</p>



<p class="wp-block-paragraph">Per aggiungere anche l&#8217;estensione xdebug bisogna usare pecl perché non è presente direttamente nel repository di brew.</p>



<p class="wp-block-paragraph">Per installare PHP ed xdebug possiamo fare come segue:</p>



<pre class="wp-block-preformatted">brew install php
mkdir /opt/homebrew/lib/php/pecl
pecl install xdebug</pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2023/07/11/brew-installare-xdebug-su-php-8-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Impostare il corretto locale per PHP</title>
		<link>https://blog.smsoft.it/2023/05/23/impostare-il-corretto-locale-per-php/</link>
					<comments>https://blog.smsoft.it/2023/05/23/impostare-il-corretto-locale-per-php/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 23 May 2023 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[locale]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=5932</guid>

					<description><![CDATA[Il &#8220;locale&#8221; serve per definire la lingua da utilizzare per le varie funzionalità di sistema. Su Debian è possibile abilitare/disabilitare/rendere di default una lingua tramite dpkg-reconfigure: dpkg-reconfigure locales Tramite l&#8217;interfaccia curses mostrata, sarà possibile abilitare/disabilitare le lingue da usare e poi definire quella di default. Solitamente per la ligua italiana si sceglie it_IT.UTF-8. Dopo aver ... <a title="Impostare il corretto locale per PHP" class="read-more" href="https://blog.smsoft.it/2023/05/23/impostare-il-corretto-locale-per-php/" aria-label="Per saperne di più su Impostare il corretto locale per PHP">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Il &#8220;locale&#8221; serve per definire la lingua da utilizzare per le varie funzionalità di sistema.</p>



<p class="wp-block-paragraph">Su <strong>Debian</strong> è possibile abilitare/disabilitare/rendere di default una lingua tramite dpkg-reconfigure:</p>



<pre class="wp-block-preformatted">dpkg-reconfigure locales</pre>



<p class="wp-block-paragraph">Tramite l&#8217;interfaccia curses mostrata, sarà possibile abilitare/disabilitare le lingue da usare e poi definire quella di default.</p>



<p class="wp-block-paragraph">Solitamente per la ligua italiana si sceglie <strong>it_IT.UTF-8</strong>.</p>



<p class="wp-block-paragraph">Dopo aver fatto questo, sarà possibile inserire all&#8217;inizio del nostro script PHP la riga:</p>



<pre class="wp-block-code"><code>setlocale(LC_TIME, 'it_IT.utf8');</code></pre>



<p class="wp-block-paragraph">e poi stampare le date in italiano, es:</p>



<pre class="wp-block-code"><code>echo strftime("%a %d %b %Y");</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2023/05/23/impostare-il-corretto-locale-per-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Debian 11 (bullseye) o Debian 12 (bookworm) APT: Firme GPG per PHP, MySQL, Docker e Node</title>
		<link>https://blog.smsoft.it/2023/03/28/debian-apt-firme-gpg-per-php-e-mysql/</link>
					<comments>https://blog.smsoft.it/2023/03/28/debian-apt-firme-gpg-per-php-e-mysql/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 28 Mar 2023 08:30:00 +0000</pubDate>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Html e PHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[EXPKEYSIG]]></category>
		<category><![CDATA[gpg]]></category>
		<category><![CDATA[key]]></category>
		<category><![CDATA[NO_PUBKEY]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://blog.smsoft.it/?p=5863</guid>

					<description><![CDATA[Una cosa che mi chiedono spesso e come gestire le firme per i repository di PHP, MySQL, Docker se Node ulle nuove debian. La classica procedura di import della firma non funziona più, consiglio quindi di scaricare la firma come segue. per PHP Sury: per MySQL: per Docker: per Node: Nota: per vedere il contenuto ... <a title="Debian 11 (bullseye) o Debian 12 (bookworm) APT: Firme GPG per PHP, MySQL, Docker e Node" class="read-more" href="https://blog.smsoft.it/2023/03/28/debian-apt-firme-gpg-per-php-e-mysql/" aria-label="Per saperne di più su Debian 11 (bullseye) o Debian 12 (bookworm) APT: Firme GPG per PHP, MySQL, Docker e Node">Leggi tutto</a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Una cosa che mi chiedono spesso e come gestire le firme per i repository di <strong>PHP</strong>, <strong>MySQL</strong>, <strong>Docker</strong> se <strong>Node</strong> ulle nuove debian. La classica procedura di import della firma non funziona più, consiglio quindi di scaricare la firma come segue.</p>



<p class="wp-block-paragraph"><strong>per PHP Sury:</strong></p>



<pre class="wp-block-code"><code>wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor &gt; /etc/apt/trusted.gpg.d/sury-php-x.x.gpg</code></pre>



<p class="wp-block-paragraph"><strong>per MySQL:</strong></p>



<pre class="wp-block-code"><code>wget -O- http://repo.mysql.com/RPM-GPG-KEY-mysql-2023 | gpg --dearmor &gt; /etc/apt/trusted.gpg.d/mysql.gpg</code></pre>



<p class="wp-block-paragraph"><strong>per Docker:</strong></p>



<pre class="wp-block-code"><code>curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg</code></pre>



<p class="wp-block-paragraph"><strong>per Node:</strong></p>



<pre class="wp-block-code"><code>curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/trusted.gpg.d/nodesource.gpg</code></pre>



<p class="wp-block-paragraph"><strong>Nota</strong>: per vedere il contenuto di un file di firma (es /etc/apt/trusted.gpg.d/nodesource.gpg):</p>



<pre class="wp-block-code"><code>gpg --no-default-keyring --list-keys --keyring /etc/apt/trusted.gpg.d/nodesource.gpg</code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">Installate le firme, si può procedere con l&#8217;<strong>aggiunta dei repository</strong> come segue:</p>



<pre class="wp-block-code"><code>echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list</code></pre>



<p class="wp-block-paragraph">e</p>



<pre class="wp-block-code"><code>wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
dpkg -i mysql-apt-config_0.8.29-1_all.deb</code></pre>



<p class="wp-block-paragraph">e</p>



<pre class="wp-block-code"><code>echo "deb https://download.docker.com/linux/debian $(lsb_release -sc) stable" | tee /etc/apt/sources.list.d/docker.list</code></pre>



<p class="wp-block-paragraph">e</p>



<pre id="block-8f573445-654c-417a-a502-a342da0aaaf9" class="wp-block-code"><code>echo "deb https://deb.nodesource.com/node_20.x $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/nodesource.list</code></pre>



<p class="wp-block-paragraph">enjoy!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.smsoft.it/2023/03/28/debian-apt-firme-gpg-per-php-e-mysql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
