A rendszer akkor hajtja végre a CGI programokat, ha a webkiszolgáló olyan URL-címet kap, amely tartalmazza a CGI programnevet, valamint a program által megkövetelt valamelyik paramétert. Ha a CGI program végrehajtható (.exe) fájllá lett lefordítva, akkor a felhasználók csak úgy tudják futtatni a programot, ha a programot tartalmazó könyvtárnak végrehajtási engedélyt adunk. Ha a CGI program szkriptként (például Perl szkriptként) lett megírva, akkor végrehajtás vagy parancsfájl engedélyt kell adnunk a könyvtárnak. A parancsfájl végrehajtási engedély használatához a szkriptértelmezőt szkriptkezelőként (parancsfájl-értelmezőként) kell megjelölni.
CGI alkalmazásokat a gyorsabb végrehajtás érdekében sokszor érdemesebb ISAPI-bővítményként fejleszteni. Az ASP alkalmazások a fejlesztést teszik egyszerűbbé. Az ASP különösen vonzó kezdő programozók és szkriptkészítők számára, mivel sok olyan mindennapos rutinfeladatot kezel, amelyek hagyományosan a CGI alkalmazások írásához kapcsolódnak (például HTTP-fejlécek elemzése, stb.).
CGI alkalmazások telepítése és beállítása
Hozzunk létre egy könyvtárat a CGI programoknak, a maximális biztonság érdekében a CGI programokat a tartalomfájloktól elkülönítve kell tárolni. A könyvtárnak nem kötelező a Cgi-bin nevet adni, ellentétben egyes webszerverekkel.
Ha CGI programok szkriptek, szükség lesz a megfelelő szkriptértelmező telepítésére. A Perl szkriptek futtatásához például Perl szkriptkezelőre van szükség.
A Windows operációs rendszerek nem tartalmazzák a Perl, SED vagy AWK típusú szkriptkezelőket. Ezeket külső programfejlesztőktől lehet beszerezni.
Könyvtáron belül csak a szkriptkezelőként megjelölt értelmezők hajthatnak végre utasításokat. A végrehajtható fájlokat (.dll és .exe fájlok) nem lehet közvetlenül végrehajtani, azaz egy böngészőkérés nem tud elindítani egy végrehajtható fájlt a webkiszolgálón úgy, hogy befoglalja a program nevét az URL-címbe. Ha a parancsfájl végrehajtó beállítással parancsfájl engedélyeket használunk, akkor biztonságosan helyezhetők tartalomfájlok (például .htm vagy .gif fájlok) ugyanabba a könyvtárba, ahol a CGI szkriptek vannak. A tartalomfájlokat a böngésző megjeleníti, a szkripteket pedig végrehajtja, de engedély nélküli programok nem futtathatók, és a szkriptparancsok sem jelennek meg a böngészőben.
Figyelem! Ha végrehajtható fájlokat tartalmazó könyvtárnak olvasási engedélyeket adunk, a webhely látogatói letölthetik és futtathatják annak végrehajtható fájljait. Biztonsági megfontolásokból tehát legcélszerűbb a végrehajtható fájlokat egy olvasási engedélyekkel nem rendelkező külön könyvtárban tárolni.
Az IIS hozzárendeli a fájlnevek kiterjesztéseit valamely értelmezőhöz. Ha például .pl kiterjesztésű fájlokban tárolt Perl szkripteket használunk, hozzá kell rendelni a .pl kiterjesztést a Perl szkripteket futtató programhoz. Rendeljük a .bat és .cmd kiterjesztésű fájlokat a Cmd.exe-hez.
NTFS engedélyek beállítása
Ha NTFS hozzáférési engedélyeket is használunk (ajánlott), meg kell győződni arról, hogy minden olyan felhasználónak, akinek szüksége van arra, hogy futtassa a programot, van a könyvtárra vonatkozó végrehajtási engedélye. Ha a webhely névtelen felhasználóknak is engedélyezi a hozzáférést, fontos, hogy a névtelen felhasználónak (az IUSR_számítógépnév fióknak) legyen végrehajtási engedélyük.
Ha a szkript hozzáfér valamely távoli kiszolgálón futó Cmd.exe fájlhoz rendelt szkripthez, az alapértelmezett munkakönyvtár a helyi számítógép %SYSTEM32% könyvtára lesz. A %SYSTEM32% alapértelmezett értéke \Winnt\System32 (Windows 2000 esetén) és Win95\System (Windows 95 vagy későbbi programverzió esetén).
A hatékonyabb adatvédelem érdekében a webkiszolgáló nem adja át a parancsértelmező speciális karaktereit hozzárendelt CGI alkalmazásoknak. Alapértelmezés szerint a következő karaktereket nem tartalmazhatja a CGI alkalmazást hívó URL-cím: