L'acronimo ISAPI sta per Internet Server Application Programming Interface. In altre parole, si tratta di programmi atti ad interagire e lavorare con le richieste effettuate al WebServer. Vi sono due forme di applicazioni ISAPI: filtri ed estensioni.
Estensioni ISAPI
Le estensioni ISAPI sono invocabili direttamente dalla barra degli indirizzi del nostro browser. Un classico esempio potrebbe essere l'indirizzo:
http://www.nomedominio.com/cartella/applicazione.dll
Ammesso che abbiate correttamente impostato le autorizzazioni NTFS, il file applicazione.dll
sarà eseguito ed invierà al browser un output in formato HTML. Un ottimo esempio di estensioni ISAPI sono le celeberrime estensioni server di FrontPage.
Per verificare le impostazioni NTFS assicurarsi che l'utente IUSR_NomeMacchina
sia autorizzato con permessi di esecuzione sul file dll in questione e le impostazioni di sicurezza nel pannello di IIS riguardanti la directory siano impostate sulla voce "Scripts and Executables".
Filtri ISAPI
I filtri ISAPI sono molto più potenti e, in buona parte, molto più utili ed interessanti. Essi, infatti, sono in grado di modificare il flusso di dati in ingresso ed in uscita di IIS.
I filtri ISAPI possono essere utilizzati per implementare una vasta gamma di funzionalità, dall'autenticazione al log delle pagine richieste, in pratica, qualsiasi cosa passi per il nostro WebServer verrà analizzata da ciascun filtro ISAPI, e potrà essere modificata a piacimento (un esempio di applicazione di un filtro è la recente moda dell'URL Rewriting, ovvero la tendenza a riscrivere dinamicamente l'indirizzo di ogni pagina web del sito in modo da renderla più facilmente digeribile dai motori di ricerca).
I filtri ISAPI tendono, inoltre, a possedere un tempo di esecuzione nettamente inferiore rispetto ad un comunissimo eseguibile (.exe) in quanto ottimizzati per lavorare su uno specifico WebServer. Una volta caricato nella memoria condivisa, infatti, il server non necessita di ulteriori cicli della CPU per eseguire il filtro altre volte, accelerando così notevolmente i tempi operativi.
Ma, come ogni cosa a questo mondo, anche i filtri ISAPI hanno i loro difetti. Fino alla versione 5 della piattaforma di WebServer di Microsoft, i filtri ISAPI erano appunto eseguiti in memoria condivisa. Com'è facilmente intuibile, ciò comportava che, nel caso un filtro si stoppasse per un qualsiasi motivo, tutto il WebServer andasse "down".
Ed è qui che ci viene in aiuto il nuovo IIS 6: grazie alla sua particolare architettura, ogni filtro ISAPI lavora in un processo separato dagli altri, in modo da evitare quanto descritto poco fa.
Tutto questo ovviamente non ci mette al completo riparo dai problemi: basti pensare all'ipotetica situazione in cui il file php4isapi.dll
(nota DLL responsabile del funzionamento dello script engine PHP4) dovesse crashare: di sicuro il nostro WebServer rimarrebbe intatto ma ogni sito che sfruttasse quella tecnologia mostrerebbe un inesorabile errore 500.
Installazione di un filtro ISAPI su IIS 6
IIS 6 prevede due elenchi di filtri ISAPI:
- un elenco globale valido per tutti i siti sotto lo stesso WebServer,
- un elenco personalizzato per ogni sito.
Ovviamente, i filtri globali possiedono una priorità più elevata rispetto ai filtri installati singolarmente sui diversi siti. All'interno di queste liste, poi, è possibile definire la priorità di ciascun filtro, in modo da stabilire quale tra questi sarà il primo ad analizzare il flusso di dati in ingresso.
Attenzione: per l'installazione di un filtro ISAPI è necessario possedere le credenziali di amministratore.
Come procedura preferenziale, personalmente consiglio l'accesso con un account standard, e successivamente l'acquisizione dei poteri di Administrator tramite il seguente comando:
Passare alla modalità "amministrazione"
runas /user:Administrator "mmc %systemroot%system32inetsrviis.msc"
Di seguito i passaggi da seguire per l'installazione di un Filtro ISAPI:
- Espandere la voce corrispondente al computer locale, cliccare col tasto destro sul server/sito al quale si vuole applicare il filtro, quindi cliccare "Proprietà".
- Selezionare la scheda "Filtri ISAPI", quindi selezionare "Aggiungi".
NB: se si sta operando su un singolo sito, non verranno visualizzati anche i Filtri ISAPI installati a livello globale. - Nella casella "Nome filtro" inserire un nome significativo da assegnare al filtro.
- Nella casella "Eseguibile" selezionare il file .dll del filtro e confermare con OK.
- Spostare il filtro nell'ordine di esecuzione desiderato.
- Se si tratta di un filtro globale è necessario stoppare e riavviare il WebServer in modo da permettere a quest'ultimo il caricamento del nuovo filtro nella memoria.