Skip to main content

Come visualizzare le dimensioni di tutte le tabelle MySQL in uno o più Database (e altre query similari)

Ieri stavo perdendo un pò di tempo ad analizzare una singolare situazione che si era verificata in uno dei tanti MySQL database da me amministrati: un incremento improvviso (e almeno apparentemente anomalo) delle dimensioni, ovvero dello spazio occupato su disco. Poiché non avevo idea di quante e quali tabelle fossero affette da tale problema, la prima cosa che ho fatto è stata dotarmi di uno strumento in grado di poter mostrare un elenco di tutte le tabelle presenti nei vari DB, ordinate per dimensione.

Sono riuscito ad effettuare questa analisi in poco tempo grazie all’aiuto di queste query, realizzate sulla base di questa risposta sul sito StackOverflow.

(altro…)

 

ERR_BLOCKED_BY_XSS_AUDITOR in Google Chome – Come risolvere

Con l’uscita della recente versione 57 del browser Google Chrome la funzionalità di XSS auditing ha subito alcuni importanti miglioramenti, che di certo comporteranno una maggiore protezione per gli utenti più inclini ad essere soggetti ad attacchi di tipo XSS (Cross-Site Scripting – se non sapete di cosa si tratta, leggete qui). Sfortunatamente, questa modifica ha comportato anche il malfunzionamento di alcuni servizi online, che da qualche settimana restituiscono il seguente errore HTTP:

ERR_BLOCKED_BY_XSS_AUDITOR

Il problema è quasi sempre legato alla presenza di un contenuto HTML inviato tramite POST all’interno di una request tramite form o AJAX, tecnica utilizzata da servizi anche molto diffusi nel panorama web moderno – editor WYSIWYG, uploader interattivi, strumenti di real-time editing tipici di molti CMS e così via.

La domanda a questo punto nasce spontanea: come risolvere questo problema e ripristinare il funzionamento del servizio?

Nel caso in cui si tratti di uno strumento sviluppato da terze parti, la cosa migliore da fare è probabilmente segnalare la funzionalità agli sviluppatori e/o controllare se esiste una patch recente in grado di risolvere il problema. Se questo tentativo non si rivela efficace, o se il problema si verifica su uno script o servizio sviluppato da noi, occorre invece rimboccarsi le maniche e darsi da fare per risolvere il problema. E’ quanto mi è toccato fare la settimana scorsa, quando mi sono trovato a dover applicare un fix d’urgenza a uno strumento che avevo sviluppato per un amico qualche tempo fa: un viewer di fatture elettroniche in grado di interpretare – e mostrare a schermo – il formato più recente previsto dagli standard della Pubblica Amministrazione, rilasciato al pubblico nel 2016 e già utilizzato da moltissime aziende e professionisti in Italia. (altro…)

 

Input type number in HTML5 con supporto numeri decimali con virgola

Tra le moltissime funzioni utili introdotte dallo standard HTML5, una delle più utili è quella che consente di impostare una tipologia di dato agli elementi <input>: color, date, datetime-local, email, month, number, range, search, tel, time, url e week. Ciascuna di loro attiva un componente specifico del browser che consente all’utente di selezionare il valore desiderato in modo estremamente user-friendly, rendendo finalmente superflui tutti quei plugin jQuery, jQuery UI, Bootstrap et. al. che fino ad alcuni anni fa erano l’unico modo per ottenere lo stesso effetto… al costo però di appesantire notevolmente la componente client-side delle nostre pagine web. (altro…)

 

Istanziare un Dictionary con chiavi Case-Insensitive in ASP.NET C#

Tra le varie classi messe a disposizione da ASP.NET, il Dictionary resta una  di quelle più utilizzate: la sua enorme versatilità compensa ampiamente la relativa inefficienza che si presenta in alcune situazioni, dove l’utilizzo di un Hashtable o di una classe più snella consentirebbe di ottenere prestazioni migliori.

Nella maggior parte dei casi, quando utilizziamo un Dictionary impostando una stringa come chiave (key), la modalità predefinita di confronto tra stringhe prevista dalla classe, che risponde a un criterio case-sensitive – considerando quindi rilevante la differenza tra lettere maiuscole e minuscole all’interno della chiave – può fare al caso nostro:

E così via. Il Dictionary di cui sopra avrà quindi tre diverse entries, ciascuna accessibile mediante la propria chiave case-sensitive specifica.

Vi sono casi, però, in cui questo comportamento predefinito non ci è di grande aiuto: fortunatamente, il costruttore della classe prevede un overload specifico che possiamo utilizzare in tutti i casi in cui vogliamo che il confronto tra le chiavi-stringa risponda a un criterio diverso. Qualora volessimo un confronto case-insensitive, ad esempio, potremmo istanziare la classe nel seguente modo:

(altro…)

 

ASP.NET e IIS – Errore (413) Request Entity Too Large e Maximum Request Length Exceeded – Come risolvere

Se vi siete imbattuti in questo articolo è probabile che stiate cercando di configurare la vostra applicazione ASP.NET (Core, MVC, Web API, Windows Forms, WCF o altro) su un web server IIS il quale, a differenza del web server di sviluppo, si rifiuta di accettare l’upload di un file di dimensioni superiori a 16kb, restituendo uno dei seguenti errori:

(413) Request Entity Too Large

Entità richiesta troppo grande

Maximum request length exceeded

Superata la lunghezza massima della richiesta

Tutti questi errori sono relativi al superamento delle dimensioni massime di un allegato – o meglio, della Request HTTP inviata al server – previste dalla nostra applicazione ASP.NET per impostazione predefinita. Queste limitazioni sono state inserite per una valida ragione: la ricezione di un file è una operazione piuttosto pesante per il server, in quanto impegna a tempo indeterminato un working thread. Per questo motivo, le impostazioni predefinite della maggior parte delle applicazioni ASP.NET prevedono una dimensione generalmente compresa tra i 16k e i 64k, sufficiente per l’invio/ricezione di form di testo ma logicamente del tutto inadeguate quando si ha l’esigenza di gestire l’upload di uno o più file.

(altro…)