- Oppdatert programvare
- Admin-bruker-tilgang
- Filrettigheter
- Tilgang til filer
- PHP og andre programmer på webhotellet
- Eksempler
- Mer om websikkerhet
- Passord
Oppdatert programvare
Kriminelle er stadig på jakt etter gamle versjoner av programvare, versjoner med velkjente sikkerhetshull. De benytter seg av søkemotorer som Google, MSN Live Search og Yahoo for å finne nettsteder med f.eks. Gallery, Joomla, PhpMyAdmin, WordPress o.l. Deretter kjører de helautomatiserte angrep mot de kjente sikkerhetshullene. Hvis du har installert en gammel versjon av slik programvare, så kan webhotellet ditt være sterkt utsatt for risiko!
Ditt viktigste forsvar mot skade på websidene dine er derfor: bruk nyeste tilgjengelige versjon av programvaren du har installert!
Dersom du ikke lenger bruker programvaren, eller dersom programvaren ikke finnes i sikker versjon, så må du slette denne fra webhotellet. Det er ikke nok å fjerne linken fra hjemmesiden din.
De fleste programvareleverandører har nyhetsbrev for sikkerhetsoppgraderinger. Abonner på disse, så er du oppdatert!
Legg også merke til at det er en del typer programvare og noe spesifikk programvare vi ikke tillater på webhotell som ligger hos oss av hensyn til sikkerhet og ressurser.
Admin-bruker-tilgang
Programvare du installerer har vanligvis en egen admin-bruker, og denne er et populært mål for hackere, fordi admin-bruker har tilgang til å installere og redigere maler (themes), innstikk (plugins), og andre tillegg til programvaren.
Pass på at du har et godt passord for admin-bruker, og at du har kontroll på hvilke andre brukere som er lagt inn i systemet.
Ikke gjenbruk passord du har brukt andre steder. Se også våre andre passord-tips.
Pass på at epostadresser for nullstilling av passord er rett angitt, og ikke går til noen du ikke vet hvem er.
Filrettigheter
For å unngå at noen uvedkommende endrer eller sletter noe på webhotellet ditt, er det viktig at alle filrettighetene er satt korrekt. Pass på at dine filer og kataloger ikke er skrivbare for andre. Dette bidrar til at ingen andre kan endre filer som er dine eller få tak i passordene dine.
Konfigurasjonsfiler som inneholder passord skal ikke være lesbare for andre.
Tilgang til filer
En annen ting du bør passe på, er at bare filer som må være tilgjengelige for webserveren faktisk er tilgjengelige. Dersom hjemmeområdet ditt er /home/1/m/mittnavn
, så skal websidene dine være i mappen/katalogen /home/1/m/mittnavn/www
, mens konfigurasjonsfiler, include-filer, filer som inneholder brukernavn og passord eller annen sensitiv informasjon kan du legge i en annen mappe/katalog (f.eks. /home/1/m/mittnavn/conf
). På den måten unngår du at disse filene blir direkte tilgjengelige via webserveren.
PHP- og andre programmer på webhotellet
Dersom du har PHP eller andre programmer (også kalt script) lastet opp på webhotellet, bør du dessuten passe på at alle parametre sjekkes skikkelig før de brukes (se eksemplene nedenfor). Hvis ikke kan du risikere at ondsinnede brukere bevisst sender med gale parametre som lurer scriptene dine til å gjøre andre ting enn du laget de for, for eksempel kjøre vilkårlige kommandoer på webserveren.
Eksempler
Her er et eksempel på hvordan det IKKE skal gjøres i PHP:
<?php
...
$inc = ($_REQUEST["side"]);
include "$inc";
...
?>
Her utføres innholdet av $side
ukritisk uten å sjekke hva variablen inneholder, slik at hvem som helst kan bruke scriptet til f.eks. å hente ut innholdet i dine PHP-filer (inkludert databasepassord) eller utføre vilkårlige kommandoer på webhotellet. Dette er skadelig både for ditt webhotell og for andre brukere av samme webserver. Dersom vi oppdager slik kode, så vil den bli deaktivert.
Trygt eksempel
Her er et eksempel på hvordan du kan plassere PHP-includes i en underkatalog "includes" og sjekke at de eksisterende filer inkluderes på en trygg måte:
<?php
$page=$_REQUEST["side"];
if (!preg_match("#\.\./#",$page) AND
preg_match("#^[-a-z0-9_.]+$#i",$page) AND
file_exists("includes/$page") ) {
include("includes/$page");
} else {
print "Invalid page requested. The attempt has been logged.";
# Her kan du kode en rutine som logger forsøket på å gå rundt systemet ditt!
}
?>
Generelt bør du alltid være nøye med å kontrollere input-parametrene til scriptet, spesielt dersom parametrene brukes i systemkall eller i SQL-setninger. Husk at også data du får tilbake fra andre systemer (inkludert databaser) bør sjekkes.
Mer om websikkerhet
Dersom du vil lære mer om sikkerhet i forbindelse med webprogrammering, kan vi anbefale boken Innocent Code av Sverre H. Huseby (ISBN 0-470-85744-7).
Passord
Vær nøye og forsiktig med hvordan du behandler dine passord.