Posts Tagged ‘Säkerhet’

Vill du lära dig skapa dynamiska webbsidor? Lär dig PHP!

mars 22nd, 2008

800px-php-n_logo_svg.pngJag har programmerat i många olika språk under flera år, både privat, i jobb och genom utbildningar. De språk jag kommit i kontakt med är C#, JAVA, Assembler, PERL, ASP, ASP.NET och PHP… grundprincipen är den samma i alla språken, men det enda jag riktigt fastnade för var PHP. Det var lätt att förstå, man kom snabbt igång, det är kraftfullt och snabbt.

Nu när jag skriver detta inlägg så inser jag att det kommer bli en hel del sura miner bland programmerarna där ute… det finns en viss rivalitet mellan oss PHP programmerare och speciellt ASP.NET programmerare (dotnettare). Jag inser också att det finns fördelar och nackdelar med alla språk, men här följer i alla fall en lista på 5 skäl att använda/lära sig PHP.

#1 – Det är lätt att komma igång
Det krävs inga jättekunskaper att komma igång med PHP (om man kan de grundläggande kunskaperna i programmering). Hitta en bra tutorial att följa och du kommer lätt snappa upp hur det är strukturerat och fungerar. Många väljer att köpa böcker för flera hundra kronor när det ska lära sig något nytt, och visst… ibland så är det bra att ha böcker i PHP. Men jag tycker du ska börja med att läsa några av de tusentals tutorials som finns ute på nätet först!

Bra sidor som hjälper dig komma igång (Engelska)
W3Schools (Här kan du lära dig grunderna)
PHP.NET (Ett måste för alla PHP programmerare)
Google (Search and you shall find)

#2 – Det är gratis
PHP är helt gratis att använda. Det är open source vilket innebär att du kan göra vilka modifikationer du vill.

#3 - Forum & community
Det finns massor med sidor vars syfte är att hjälpa dig i ditt programmerande. Du kan få massor med hjälp av väldigt duktiga personer på följande sidor:

Webforum
Webmaster Network
Webmaster-Talk
PHPportalen
PHPSIDAN

#4 - PHP är snabbt!
PHP är väldigt effiktivt och snabbt… snabbare än de flesta andra språk. Zend Technologies har gjort vissa benchmarks som visar att PHP är snabbare än många av sina konkurrenter. Detta går naturligtvis att diskutera…. men en sak är säkert och det är att PHP på en hyffsad server kan behandla miljontals besökare varje dag.

#5 – Stödjer flera typer av databaser
PHP stödjer många databaser, bland annat MySQL, MSQL, Oracle, PostgreSQL,  dbm, HyperWave, Indormix, FilePro, Sybase databases, InterBase. Du kan också använda dig av PDO vilket ger dig ett otroligt bra skydd mot SQL-injections.

Dessa 5 skäl är bara en droppe i havet av vad PHP kan erbjuda dig som programmerare. Dock så är trots allt det viktigaste att du hittar ett språk som passar dig (förhoppsningsvis PHP) som du känner dig bekväm i.

Man blir aldrig fullärd i PHP och det kan ta väldigt lång tid att få flyt i sitt kodande. Men har man intresset, motivationen och viljan så kommer det gå snabbare än du tror.

Jag vill avsluta med att säga att säkerhet är någonting man bör ha i åtanke från början! Lär dig programmera säkert från början och håll dig uppdaterad!

Säkerhet i lager

mars 3rd, 2008

Det pratas idag extremt mycket om säkerhet i media på grund av alla hemsidor som blivit utsatta för attacker, webbhotell som släckts ner och massa annat.  ”Säkerhet” har blivit ett extremt hett ämne att diskutera, vilket jag faktisikt tycker är bra. Vi lär oss av våra misstag, vi får ta del av andras misstag, vilket gynnar oss som jobbar med säkerhet… oavsett inom vilket område du jobbar. Jag vill dela med mig av en liten ”modell” eller vad man vill kalla det där jag genom olika lager illustrerar hur man skulle kunna tänka när det gäller säkerhet. Mer specifikt, säkerhet för en server… detta eftersom servern, och dess innehåll oftast är det man vill skydda.

Det här med lager är inte mitt påhitt, men jag tycker det är ett bra sätt att visa hur jag menar.  Jag ”lånar” OSI modellen lite för att illustrera. Sen vet jag inte om det jag illustrerar existerar (ni får gärna rätta mig)… om det Inte gör det så döper jag modellen till BSPIL – Model (Basic Security Protection In Layers)

Lager 1 – Fysiska lagret
Begränsa fysisk åtkomst till din server. Hur du begränsar det beror på vad du ska skydda, men någon form av kontroll där man endast tillåter viss personal åtkomst till det man vill skydda. Det svåra är att bestämma vilka man ska lita på. Fel person och du kan råka ut för sabotage!

Lager 2 – Remote
Om din server tillåter fjärraccess är det extremt viktigt att även här kontrollera vilka som ska få åtkomst, samt vad de kan göra. Utöver detta är det även extremt viktigt hur anslutingen till servern ser ut. Trafiken bör köras genom en VPN tunnel, samt om det finns ett webbinterface så bör du köra med SSL. Kort sagt.. kryptera allting som man kan få åtkomst till externt!

Lager 3 – Portar och Processer
Väldigt viktigt att ha koll på vad som är öppet utåt(internet), och vilka processer(tjänster) som servern kör. I standard utförandet av en server (nyinstallerad) finns det en bunte öppna portar och körande processer. Portar man inte använder vill man stänga, processer som inte används vill man stoppa. Du bör använda dig av en brandvägg och router (fristående enheter, eller kombinerade) för att begränsa vad som är öppet utåt (portar mm). Att endast ha en mjukvaru-brandvägg på samma dator/server som du vill skydda är fel. Du bör ha båda delarna.. alltså en enhet som finns mellan datorn/servern och internet och en mjukvaru-brandvägg i datorn. Blockera alla portar som inte behövs utifrån (21, 22, 23, 25, 53 mm).

Låt oss anta att du vill ha åtkomst porten 23(TELNET) extern för att kunna styra routern. Det man kan göra då är att blockera alla portarna så att externa användare inte kan ansluta till dessa portarna. Du skapar sedan en VPN tunnel mellan dig och det lokala nätverk du vill ha åtkomst till, får en lokal ip-adress och på så sätt kan du lokalt få åtkomst till telnet.

När det gäller processer som körs bör man först och främst ha koll på vad man behöver. Du kan därefter ”döda” de processer som inte är av nytta (hur man gör det beror på operativet). Du bör endast köra de processer som behövs… Inte mer.

Lager 4 – Lösenord
Detta är oftast det sista hindret för en hackare och man bör därför ta lösenord och hantering av lösenord på fullaste allvar. Ett svagt lösenord (god, qwerty, dog, boll, anakin…..) är bland det farligaste som finns. Med punkterna nedan vill jag visa hur man bör (enligt mig) hantera lösenord.

  • Använd inte kända ord (katt, hus, mamma, anakin)
  • Blanda gärna bokstäver, siffror och specialtecken (LE_p4zz0, 1r1nzid3_, ytm0nt-3rIn.g)
  • Att ha längre lösenord är bra, men man behöver inte överdriva (8-16 tecken räcker)
  • Byt lösenord så ofta du kan (varje eller vart annan månad)
  • Skriv inte ner lösenord. Memorera dem!
  • Använd sunt förnufft vid lagring av dem på webbserver. (Hash+salt för att skydda mot bland annat brute force attacker)Detta är inte alt man bör ha i åtanke.. men det är en början när det gäller säkerhet.Jag kommer fylla på ”modellen” efterhand och kanske även göra någon slags grafisk illustrering.