Cos’è il file wlwmanifest.xml di WordPress

Cos'è il file wlwmanifest.xml di WordPress

Se il nome “wlwmanifest.xml” non ti dice nulla, nessun problema, è normale. Ecco di cosa si tratta.


Nonostante abbia a che fare con WordPress da alcuni anni, ho scoperto dell’esistenza del file wlwmanifest.xml soltanto recentemente, guardando i log di accesso a questo sito. Insospettito dal nome, ho fatto qualche ricerca ed ecco cosa ho scoperto.

Cos’è il file wlwmanifest.xml

Chi ricorda un software di Microsoft chiamato Windows Live Writer? Era un’applicazione per Windows che consentiva la pubblicazione di articoli su una serie di piattaforme di blogging, tra cui WordPress, direttamente dal proprio desktop senza la necessità di aprire le rispettive dashboard web.

Scrivo volutamente al passato perchè il software, che faceva parte del pacchetto Windows Essential, non è più distribuito nè mantenuto da qualche anno. L’ultima versione dovrebbe risalire al 2012, mentre il supporto è terminato nel 2017 (fonte).

Per poter comunicare con WordPress, Windows Live Writer (d’ora in poi WLW) recuperava alcune informazioni necessarie proprio dal file wlwmanifest.xml, che costituiva quindi un’interfaccia per collegare le due applicazioni.

Cosa contiene

Il file ha il seguente contenuto standard:

<?xml version="1.0" encoding="utf-8" ?>

<manifest xmlns="http://schemas.microsoft.com/wlw/manifest/weblog">

  <options>
    <clientType>WordPress</clientType>
	<supportsKeywords>Yes</supportsKeywords>
	<supportsGetTags>Yes</supportsGetTags>
  </options>

  <weblog>
    <serviceName>WordPress</serviceName>
    <imageUrl>images/wlw/wp-icon.png</imageUrl>
    <watermarkImageUrl>images/wlw/wp-watermark.png</watermarkImageUrl>
    <homepageLinkText>View site</homepageLinkText>
    <adminLinkText>Dashboard</adminLinkText>
    <adminUrl>
      <![CDATA[
			{blog-postapi-url}/../wp-admin/
		]]>
    </adminUrl>
    <postEditingUrl>
      <![CDATA[
			{blog-postapi-url}/../wp-admin/post.php?action=edit&post={post-id}
		]]>
    </postEditingUrl>
  </weblog>

  <buttons>
    <button>
      <id>0</id>
      <text>Manage Comments</text>
      <imageUrl>images/wlw/wp-comments.png</imageUrl>
      <clickUrl>
        <![CDATA[
				{blog-postapi-url}/../wp-admin/edit-comments.php
			]]>
      </clickUrl>
    </button>

  </buttons>

</manifest>


Riassumendo, le informazioni riportate sono:

  • il nome dell’applicazione e le funzioni supportate
  • i percorsi di alcune immagini
  • gli indirizzi dei file necessari alla scrittura di post e gestione dei commenti, provvisti di placeholder in cui inserire l’indirizzo del sito

Dove si trova

Fisicamente il file si trova all’interno della cartella /wp-includes di WordPress.

La cartella in cui si trova il file wlwmanifest.xml.
La cartella in cui si trova il file wlwmanifest.xml.

Dall’esterno sarà quindi raggiungibile all’indirizzo www.dominio.xx/wp-includes/wlwmanifest.xml.

Inoltre, attraverso la funzione wlwmanifest_link() (documentazione), WordPress aggiunge un apposito tag nell’head delle pagine per indicare la presenza e l’indirizzo del file.

Guardando il sorgente HTML di un sito WordPress si dovrebbe trovare una riga simile a questa:

<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://www.dominio.xxx/wp-includes/wlwmanifest.xml">

Duemilacosa? Ma è ancora utile?

Non ho dati certi sull’utilizzo di WLW. Considerando che il suo sviluppo è stato interrotto anni fa e che non è più distribuito, è probabile che sia in uso (o semplicemente installato e dimenticato) solo su computer datati e non aggiornati.

Inoltre bisogna considerare la questione compatibilità: se WLW riuscisse ancora ad interfacciarsi con un WordPress recente, non è detto che sarebbe in grado di gestirne i contenuti. Ho qualche dubbio soprattutto sulla convivenza con l’editor a blocchi.

Quindi, per rispondere alla domanda: salvo casi eccezionali, direi di no.

Impatto

Il file di per sé non ha controindicazioni particolari. Non espone informazioni sensibili e anche gli indirizzi contenuti sono standard e di pubblico dominio.

Tuttavia, la sua presenza ad un indirizzo sempre uguale, può essere usata da parte di malintenzionati come prova che il sito è realizzato con WordPress.

Attenzione: ci sono molti altri modi per capire se un sito è costruito su WordPress ed agire di conseguenza, per cui rimuovere questa singola traccia non mette al riparo da occhi indiscreti in modo affidabile.


Se vuoi approfondire l’argomento sicurezza, consulta questo articolo:

Come migliorare la sicurezza di un sito WordPress.


Per quanto riguarda il tag HTML aggiunto in tutte le pagine per indicare l’indirizzo del file, la sua rimozione consente di diminuire leggermente la quantità di dati trasferiti durante il caricamento delle pagine. Si tratta di poca roba, sia chiaro, ma è pur sempre qualcosa in meno.

Come rimuoverlo

Deciso che non ci serve, facciamo un bel backup completo del sito e procediamo.

Per eliminare il tag dall’head delle pagine, bisogna inserire questo codice nel file functions.php del tema o, meglio, del child theme:

remove_action( 'wp_head', 'wlwmanifest_link' );


In sintesi, quando WordPress “costruisce” il tag <head> delle pagine, non esegue più la funzione wlwmanifest_link() che aggiunge il tag relativo al file.

A questo punto il file è ancora accessibile conoscendone l’indirizzo, ma eliminarlo fisicamente non è una buona idea perchè un successivo aggiornamento di WordPress lo rimetterebbe al suo posto.

Una soluzione alternativa è istruire il server a rispondere come se il file non esistesse quando viene richiesto.

Per questa modifica è necessario modificare il file .htaccess presente nella cartella principale del sito aggiungendo queste righe:

<IfModule mod_rewrite.c>
	RewriteEngine on
	RewriteRule wp-includes/wlwmanifest.xml - [R=404]
</IfModule>


Come prova del funzionamento, aprire l’indirizzo del sito seguito da /wp-includes/wlwmanifest.xml e verificare che la risposta sia simile a questa:

Il messaggio visualizzato dopo aver bloccato l'accesso al file wlwmanifest.xml.
Il messaggio visualizzato dopo aver bloccato l’accesso al file wlwmanifest.xml.

Tutto qua.

Problemi? Se qualcosa non va è possibile ripristinare la situazione precedente eliminando le righe aggiunte ai due file.

Scrivi ciò che cerchi e poi premi Invio!