Spørgsmål og svar

Tilbage
Hvad bør jeg passe på for at undgå, at nogle hacker sidene mine?
  1. Opdateret programvare
  2. Admin-bruger-tilgang
  3. Filrettigheder
  4. Tilgang til filer
  5. PHP og andre programmer på webhotellet
  6. Eksempler
  7. Mere om websikkerhed
  8. Adgangskode

Opdateret programvare

Kriminelle er stadig på jagt efter gamle versioner af programvare, versioner med velkendte sikkerhedshuld. De benytter sig af søgemotorer som Google, MSN Live Search og Yahoo for at finde nettsteder med f.ex. Gallery, Joomla, PhpMyAdmin, WordPress o.l. Derefter kører de helautomatiserte angrep mod de kendte sikkerhedshuldene. Hvis du har installeret en gammel version af så programvare, så må webhotellet dit være stærkt utsat for risiko!

Dit vigtigste forsvar mod skade på websidene dine er derfor: brug nyeste tilgængelige version af programvaren du har installeret!

Hvis du ikke lenger bruger programvaren, eller hvis programvaren ikke findes i sikker version, så skal du slette denne fra webhotellet. Det er ikke nok at fjerne linken fra hjemmesiden din.

De flæste programvareudbyderer har nyhedsbrev for sikkerhedsopgraderinger. Abonner på disse, så er du opdateret!

Læg også mærke til, at det er en del typer programvare og noget specifik programvare vi ikke tillader på webhotel som ligger hos os af hensyn til sikkerhed og ressourcer.


Admin-bruger-tilgang

Programvare du installerer har vanligvis en egen admin-bruger, og denne er et populært mål for hackere, fordi admin-bruger har tilgang til at installere og redigere maler (themes), indstik (plugins), og andre tillæg til programvaren.

Pas på, at du har et godt adgangskode for admin-bruger, og, at du har kontrol på hvilke andre brugere, der er lagt ind i systemet.

Husk at bytte adgangskode ofte. Det er bedre at bytte adgangskode ofte end en gang for lite.

Pas på, at e-mail adresser for nuldstilling af adgangskode er ret angit, og ikke går til nogle du ikke ved hvem er.


Filrettigheder

For at undgå, at nogle uvedkommende ændrer eller sletter noget på webhotellet dit, er det vigtig, at alle filrettighedene er sat korrekt. Pas på, at dine filer og kataloger ikke er skrivbare for andre. Dette bidrar til, at ingen andre må ændre filer, der er dine eller få tak i adgangskodeene dine.

Konfigurationsfiler som indeholder adgangskode skal ikke være lesbare for andre.


Tilgang til filer

En anden ting du bør passe på, er, at bare filer som skal være tilgængelige for webserveren faktisk er tilgængelige. Hvis hjemmeområdet dit er /home/1/m/mittnavn, så skal websidene dine være i mappen/katalogen /home/1/m/mittnavn/www, mens konfigurationsfiler, include-filer, filer som indeholder brugernavn og adgangskode eller anden sensitiv information må du lægge i en anden mappe/katalog (f.ex. /home/1/m/mittnavn/conf). På den måden undgår du, at disse filene bliver direkte tilgængelige via webserveren.


PHP- og andre programmer på webhotellet

Hvis du har PHP eller andre programmer (også kaldt script) lastet op på webhotellet, bør du desuden passe på, at alle parametre tjekkes skikkelig før de bruges (se eksemplene nedenfor). Hvis ikke må du risikere, at ondsindede brugere bevidst sender med forkerte parametre som lurer scriptene dine til at gøre andre ting end du lavet de for, for eksempel køre vilkårlige kommandoer på webserveren.


Eksempler

Her er et eksempel på hvordan det IKKE skal gøres i PHP:

<?php
...
$inc = ($_REQUEST["side"]);
include "$inc";
...
?>

Her udføres indholdet af $side ukritisk uden at tjekke hvad variablen indeholder, så hvem som helst må bruge scriptet til f.ex. at hente ud indholdet i dine PHP-filer (inkluderet databaseadgangskode) eller udføre vilkårlige kommandoer på webhotellet. Dette er skadelig både for dit webhotel og for andre brugere af samme webserver. Hvis vi oppdager så kode, så vil den blive deaktiveret.

Trygt eksempel

Her er et eksempel på hvordan du må placere PHP-includes i en underkatalog "includes" og tjekke, at de eksisterende filer inkluderes på en tryg måde:

<?php

$page=$_REQUEST["side"];

if (!præg_match("#\.\./#",$page) AND 
præg_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 må du kode en rutine som logger forsøget på at gå rundt systemet dit!
}
?>

Generelt bør du altid være nøje med at kontrolere input-parametrene til scriptet, specielt hvis parametrene bruges i systemkall eller i SQL-setninger. Husk, at også data du får tilbage fra andre systemer (inkluderet databaser) bør tjekkes.


Mere om websikkerhed

Hvis du vil lære mere om sikkerhed i forbindelse med webprogrammering, må vi anbefale bogen Indocent Code af Sverre H. Huseby (ISBN 0-470-85744-7).


Adgangskode

Vær nøje og forsigtig med hvordan du behandler dine adgangskode.


Se også:

Søgeord:  

Indholdsfortegnelse

© 2019 Domeneshop AS · Om os · Vilkår · Fortrolighedspolitik