Website sikkerhed SQL Injections og mere...



Relaterede dokumenter
PHP Snippets. De små korte. Skrevet af Daniel Pedersen

Installation af ETF s cloudløsning for Privatpraktiserende ergoterapeuter

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Herning Centerby Guide til Umbraco

Pralemappen.dk Din online portfolio Brugerhåndbog til undervisere Brugerhåndbog til undervisere

Interaktionsudvikling

Denne rapport er skrevet af:

Selvvalgt Projekt. ( Det smager godt ) af Ke vin Hartmann, Hold 305.

AFSLUTTENDE OPGAVE. udemiljø

Projekt - Valgfrit Tema

Brugervejledning til DHF's onlinesystem

Google Chrome side 1 af13

Sorring.dk guide. Du kan finde mere information om WebsiteBaker her:

Netprøver.dk. Brugervejledning til Brugeradministratorer

Procesbeskrivelse - Webprogrammering

GUIDE TIL OPRETTELSE AF GRUPPEPROFIL - På kant med Kierkegaard.

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Guide. Administration af FDF.dk/Nyborg. 1. Udgave Ide og layout Christoffer S. Rasmussen

FORÆLDREFOLDER CODEX FORÆLDREFOLDER

Flettebreve og Doc2mail

RUTruteplanlægningsvejledning. Folkekirkens Nødhjælp Sogneindsamling 2015

At lave dit eget spørgeskema

Login side 3. Upload af billeder side 8. Upload billeder via Drag&Drop side 14. Udfyld og indsæt valgfri side i playlisten side 17

Vejledning til brug af Y s Men s klubintranet administrator guide

Forfattere: Thomas Dreisig Thygesen & Grethe Grønkjær Layout: Jens Holm Møller

Bruger Manual For WT-215W WIFI relæ

Servicebrev BørneIntra 2.14 (Web og App)

TUSASS Mobil. Kom godt fra start

DISCIPLIN I SKOLEN. Af Agnete Hansen, skoleelev

Opstartsvejledning til ipad. Tinderhøj Skole

GOD DÅRLIG VENINDE VENINDE

Nyhedsmodul brugermanual

Tillykke Med Fødselsdagen

Opgradering til version 4 af Netaflæsningsmodulet

VEJLEDNING TIL DIGITALSERVICEBOG. Tryk på link for at se mere. Hurtigt i gang (trin for trin) Log ind. Notifikationer. Bruger

På de følgende sider kan du læse om nogle af de overvejelser du bør gøre dig, hvis du påtænker at skifte din bolig ud.

Prøve i Dansk 2. Skriftlig del. Læseforståelse 2. November-december Tekst- og opgavehæfte. Delprøve 2: Opgave 3 Opgave 4 Opgave 5

Rapport Bjælken. Derefter lavede vi en oversigt, som viste alle løsningerne og forklarede, hvad der gør, at de er forskellige/ens.

SDB. MySQL Installation Guide

Brugervejledning til udfyldelse og udstedelse af Europass Mobilitetsbevis i Europass Mobilitetsdatabasen

Bruger manual, SDN-aftalesystem

Manual til brug af youtube

Her ser i hvorledes man nemt kan installere en række nyttige programmer, uden at få andet end selv programmet installeret. på

Installationsguide. Router Tilgin HG13xx serien. Fiberbredbånd TV Telefoni

WordPress 4.2+ Manual

Arbejdsark i Du bestemmer

INDSIGT Kort enakter af Kaj Himmelstrup. Udgivet i antologien "Drama ti minutter 15 nye danske enaktere", Borgens Forlag 1987.

Kom/It Rapport. Responsiv hjemmeside (Jakes Awesome Game Reviews)

Modul 3 Læsning, Opgave 1

Prøve i Dansk 1. Skriftlig del. Læseforståelse 1. Maj-juni Tekst- og opgavehæfte. Delprøve 1: Opgave 1 Opgave 2 Opgave 3

Tag bedre billeder af dine. med disse 3 super nemme tricks

Bilag 6: Transskription af interview med Laura

KAPITEL 8: OPRETTELSE OG ADMINISTRATION AF DOKUMENTGODKENDELSE

Hvordan underviser man børn i Salme 23

Løbetræning for begyndere 1

Hvorfor skal vi bruge objekt orienteret databaser?

Wipigo Galleri. Brugsforvirring. Venstre side af startbillede efter der er logget ind (Højre side viser det/de gallerier der er oprettet).

En introduktion til. IT-sikkerhed

Tillæg til Libris-hæftet: WordPress. Temaredigering og sikkerhed m.m.

Vejledning i brug af fjernarbejdsplads pa Danmarks Statistik Mac brugere

IT Sikkerhed. Digital Mobning.

Linkind - Optimal profilopsætning

Installation af Elektronisk APV på flere PC er

Jysk Online Medie ApS - Vestergade 32, 8600 Silkeborg - Tlf.:

ADMINISTRATIONS MANUAL

Sundhedsplejen Rene hænder gi r raske venner

Sådan kommer du i gang med boldnettet

Administration - Wordpress Administration - Wordpress

Linket viser jer frem til billedet nedenfor, her skal du blot skrive jeres brugernavn og adgangskode. Indtast din adgangskode her:

Transkript:

... Skrevet af Daniel Pedersen 1

Introduktion Sikkerheden i dag skal være i top, der er rigtig mange små hurtige og nemme metoder til at få adgang til ens hjemmeside. Mange er ikke ældre end 14 år, og har kun lige fundet et par SQL koder på internettet. Dette vil naturligvis få mange til at blive bange for at have en hjemmeside på internettet, men det er heldigvis så dejligt at, det er nemt at lukke af for sikkerhedshullerne. I denne guide vil jeg snakke om SQL Injection og PHP sikkerhed. Du vil lære hvordan man lukker af for kendte sikkerhedshuller og SQL Injection, jeg benytter sproget PHP til at kode i, men koder du i asp, jsp eller andet sprog, kan du også benytte den guide, dog hedder de funktioner du skal benytte noget andet. Jeg vil ikke vise hvordan man hacker, cracker eller SQL Injecter, men jeg vil snakke om hvordan man lukker af for hullerne. 2

SQL Injection SQL Injection er det mest udbredte, rigtig mange kender det, og rigtig mange benytter det. Det er en metode man kan udnytte ved at være god til sproget SQL, så man kan få oplysninger om ofrets hjemmeside database. Disse oplysninger kunne f.eks. være login til administrator eller det kunne være en person som bare ville prøve at få lidt ekstra information. SQL Injection er med andre ord at man tvinger den dynamiske kode man har udviklet sit website med, til at udføre mere SQL kode. Dette kunne f.eks. se sådan ud i PHP. Denne sql forspørgsel er ikke sikret imod SQL Injection. Her er det faktisk muligt at tvinde udskrift om andre tabeller fra ens database. Problemet her denne sektion. (marketet med orange) Get metoden er URL variabler, dog kan POST metoden også udnyttes, men det er samme måde man lukker af for dem, så derfor snakker jeg kun om GET metoden. Selve inputtet der kommer fra URL variabel article_id er ikke testet, det vil også sige at, den besøgende på hjemmesiden kan skrive hvad som helst i den variabel. Det kunne være SQL kode, som SQL Injection er. I dette tilfælde ved vi at article_id skal være et tal, så det ville være mest naturligt at tjekke om det rent faktisk er et tal der står i article_id. For at teste og være sikker på at det er et tal, skal du benytte funktionen is_numeric(). Læs denne side på php.net for at lærer alt om funktionen is_numeric(). http://dk2.php.net/manual/en/function.is-numeric.php Men.. Det er mere endnu. I det sidste tilfælge var det et tal der skulle være i vores URL variabel, men hvad nu hvis det skal være tekst. I dette tilfælde kan vi ikke benytte funktionen is_numeric(), der skal vi bruge noget lidt andet. Læs videre på næste side om SQL injections. 3

SQL Injection Som jeg snakkede om på forrige side, er der mere end lige tal der skal beskyttes. Det næste skridt er at misbruge login formularer, tekst input via URL linie osv. Alle disse og der er flere, men det nemme er at, du kan lukke sikkerhedshullerne med samme funktion. Så derfor har jeg kun nævnt et par stykker. Denne SQL sætning modtager nen URL variabel, som indeholder tekst. Her kan vi ikke benytte funktionen is_numeric() fordi dette er ikke tekst. Til disse hvor der bliver modtaget tekst fra brugeren, og det er også login formularer, søge felter og alle disse HTML formularer hvor brugeren skal angive et stykke tekst. En god og sikker metode til at lukke af for sikkerhedshullet er ved at benytte funktionen mysql_real_escape_string(). Istedet skulle din kode se sådan her ud: Dette forhindre hackere i at benytte SQL Injection på dit site, og du kan slappe af og nyde dagen. Det var lidt om SQL Injection, hvis du benytter disse 2 jeg har snakket om, er du sikret imod angrebet, som vi ikke har lyst til at opleve. 4

Fil Upload Fil upload er et sikkerhedsbrud i sig selv, derfor er det meget vigtigt at man husker disse regler: 1. Tjek altid typen på den uploadet fil 2. Sørg for at sæt en max størrelse Hvis du glemmer at tjekke for selve typen (regl nr. 1) er det muligt at uploade en PHP fil, og det er meget alvorligt. En PHP fil kan indeholde hvad som helst af kode, det er meget nemt lige at skrive et par linjer som sletter det hele, eller f.eks. giver os vores bruger og password til databasen. Der er virkelige eksempler om hacks på internettet, hvor hackeren har haft admin password i flere måneder før man fandt ud af det. Dette ville man jo nok kategorisere som en direkte børge, men det er en mulighed. Her er koden til at tjekke type og størrelse: 5

Bruger input Man skal aldrig stole på at brugerne til ens hjemmeside skriver sikkert input. Faktisk er det sådan at, man skal direkte sige at alle er hackere. Derfor er det meget vigtigt at lukke af for de nævnte sikkerhedshuller, ellers er din hjemmeside som en hullet ost. Hvorfor sker det for mig, jeg har jo intet spændende på min hjemmeside Det skal man aldrig sige, en potentiel hacker er ikke interesseret i hvad der er på dit site i de fleste tilfælde. De er mere interesseret i at blive offentliggjort, altså vise at de har hacket din hjemmeside med skrifter, billeder eller direkte at slette indhold/filer m.m. Sider som politiken.dk, Nasa og CIA har altid haft problemer med hackere, men der er lige så mange små ukendte sites som bliver hacket. Der er to slags hackere hvis man skal indsnævre det til mindst muligt. Whitehat En Whitehat hacker benytter sin viden til at hacke din hjemmeside, men ikke for at ødelægge. De vil sende dig information om hvad der er galt med dit site, og evt. koderne der kan rette dine problemer. Altså en Whitehat hacker hjælper dig, de er viceværterne på internettet. Blackhat En Blackhat hacker er dem som er ude efter at ødelægge og smadre så meget som muligt. De hacker hjemmesider for at få opmærksomhed, fordi de syntes det er sjovt at ændre og slette indhold på sites, og frem for alt, fordi det er deres passion. En Blackhat hacker er den slemme af slagsen, og vi kan kalde dem Internet Terrorister. 6

Links [Security] Writing Hacker Safe PHP Code http://technofriends.in/2010/02/25/security-writing-hacker-safe-php-code/ SQL Injection PHP.net http://dk2.php.net/manual/en/security.database.sql-injection.php 7