Det er svært viktig at de som administrerer en WWW server virkelig vet hva de gjør hvis de tillater hvem som helst på maskinen å lage CGI skript. Et CGI skript vil kjøres av selve WWW server programmet, og vil vanligvis ha samme aksessrettigheter i filsystemer osv. som selve server programmet har.
Ofte vil dette innebære at skriptene har fulle skrive- og leserettigheter til filer innenfor serverens filsystem, men det anbefales å la serveren kjøre som en bruker som ikke har skriveaksess til Web hierarkiet. I tillegg til sikkerheten forbundet med filaksessen, vil det være enkelt å skrive skript som skriver ut forskjellig systeminformasjon. Slik informasjon kan godt være åpen for alle interne brukere på systemet, men allikevel er det ikke nødvendigvis ønskelig at slik informasjon gjøres tilgjengelig for alle på Internettet via Web! Mao. bør Web administratoren gjøre en sikkerhetssjekk på alle skript som legges opp, og sørge for å opplyse alle som skriver skript om ansvaret som er forbundet med dette.
Rent praktisk er mekanismene for CGI skript i serveren noe forskjellige fra server til server. Det anbefales å sette seg meget godt inn i de konfigurasjonstekniske detaljene forbundet med dette.
Det er også slik at man må tenke nøye gjennom hvem som skal kunne få lov til å lage CGI skript. Tillater man vilkårlige brukere i systemet å skrive CGI skript, åpner man for potensielle problemer. For det første kan man risikere at brukere skriver skript som ikke virker slik tiltenkt, og får serveren til å henge og prosesser til å bli liggende i systemet og ta ressurser.
En mere alvorlig sak, er muligheten for at brukere med eller uten vilje skriver skript som ikke har god nok sikring mot feilaktig og ulovlig input mottatt fra forms el.
La oss se på flg. tenkte eksempel:
En bruker setter opp et forms der det er meningen at folk skal få sende inn nyttige URLer. Han har skrevet et skript som tar i mot data, pakker ut og sender URLen videre til et annet program via kommandolinjearhumenter. Programmet startes gjennom et UNIX system() kall. Dette programmet lagrer unna URLen og oppdaterer lister bak kulissene, mens skriptet gjør andre ting og snakker med brukeren.Anta så at en kløktig hacker er klar over ovenstående. Han kan nå sende inn en URL som ser slik ut:
http://blabla;rm -rf ~
Hva tror du skjer?
Det er svært mange ting å tenke på når man skriver skript. En tommelfingerregel er å prøve å unngå å starte opp UNIX shell via skriptet, direkte eller indirekte.
Se forøvrige peker til ekstern info om dette emnet i neste avsnitt.