mboost-dp1
Sikkerhed og PHP
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Jeg er pt. i gang med Webintegrator uddannelsen og efter en snak med lærerne om det videre forløb, fik jeg lokket ud af dem hvad kunne give de dejlige 12 taller.
Dette var ting som:
-God brug af CSS
-Javascript
-Javascript finurligheder som f.eks. Lightbox
-Sikkerhed
-Og diverse andre ting som vi ikke når at lære
Nu er det sådan at jeg har styr på 3 ud af de 4 ting som jeg har listet. Men er jeg næsten på bar bund angående sikkerhed og PHP.
Det jeg har fattet indtil videre er at det er en god ide at bruge mysql_real_escape_string(). Og det er så det...
Jeg har selv kun fundet frem til: http://www.devlounge.net/code/php-security og jeg forstår sådan set det godt delvist, dog forstår jeg ikke helt hvordan jeg skal bruge kryptering ind og ud af MYSQL databasen.
Nogen med nogle tips eller gode/bedre tutorials?
Dette var ting som:
-God brug af CSS
-Javascript
-Javascript finurligheder som f.eks. Lightbox
-Sikkerhed
-Og diverse andre ting som vi ikke når at lære
Nu er det sådan at jeg har styr på 3 ud af de 4 ting som jeg har listet. Men er jeg næsten på bar bund angående sikkerhed og PHP.
Det jeg har fattet indtil videre er at det er en god ide at bruge mysql_real_escape_string(). Og det er så det...
Jeg har selv kun fundet frem til: http://www.devlounge.net/code/php-security og jeg forstår sådan set det godt delvist, dog forstår jeg ikke helt hvordan jeg skal bruge kryptering ind og ud af MYSQL databasen.
Nogen med nogle tips eller gode/bedre tutorials?
#0
Sikkerhed afhænger normalt mere af design end af teknologi.
Datavalidering client side for convenience - datavalidering server side for security.
Altid parameters / prepared statement for at undgå SQL injection.
Altid datavaliderng for at undgå XSS.
Kræv at AJAX requests er POST ikke GET.
HTTPS til transport af alt der bare er tilnærmelsesvist er fortroligt.
Sikkerhed afhænger normalt mere af design end af teknologi.
Datavalidering client side for convenience - datavalidering server side for security.
Altid parameters / prepared statement for at undgå SQL injection.
Altid datavaliderng for at undgå XSS.
Kræv at AJAX requests er POST ikke GET.
HTTPS til transport af alt der bare er tilnærmelsesvist er fortroligt.
#0
Brug af mysql_real_escape_string() ville hos mig give dumpe karakter. I moderne PHP er mysqli og prepared statement den rigtige måde.
Kryptering i databasen er voldsomt overvurderet som sikkerheds faktor. En egentlig kryptering hvor key findes enten i app eller i samme database er stort set værdiløst. Hashing (nogen gange kaldt envejs kryptering) af passwords er godt i et enkelt tilfælde, nemlig hvor de sorte hatter af anden vej har fået adgang til databasen og nogle af brugerne har samme password andre steder. Det er godt, men ikke et af de vigtigste punkter. Eksemplet fra newz.dk viser dog at det skal gøres !
Artiklen er ikke super-god:
* MD5 og SHA1 er ikke kryptering men hashing
* der er ingen som kan dekryptere en hashing - man kan allerhøjest generere en collision
* MD5 er forældet og bør aldrig bruges, SHA1 kan lige akkurat bruges, men SHA256 er det man bør bruge
* quote navne i SQL bidrager ikke med noget til sikkerheden
* mysql_real_escape_string() er som sagt ikke den bedste måde at beskytte mod SQL injection på
* felter i databasen som er reserverede ord er ikke pænt
Brug af mysql_real_escape_string() ville hos mig give dumpe karakter. I moderne PHP er mysqli og prepared statement den rigtige måde.
Kryptering i databasen er voldsomt overvurderet som sikkerheds faktor. En egentlig kryptering hvor key findes enten i app eller i samme database er stort set værdiløst. Hashing (nogen gange kaldt envejs kryptering) af passwords er godt i et enkelt tilfælde, nemlig hvor de sorte hatter af anden vej har fået adgang til databasen og nogle af brugerne har samme password andre steder. Det er godt, men ikke et af de vigtigste punkter. Eksemplet fra newz.dk viser dog at det skal gøres !
Artiklen er ikke super-god:
* MD5 og SHA1 er ikke kryptering men hashing
* der er ingen som kan dekryptere en hashing - man kan allerhøjest generere en collision
* MD5 er forældet og bør aldrig bruges, SHA1 kan lige akkurat bruges, men SHA256 er det man bør bruge
* quote navne i SQL bidrager ikke med noget til sikkerheden
* mysql_real_escape_string() er som sagt ikke den bedste måde at beskytte mod SQL injection på
* felter i databasen som er reserverede ord er ikke pænt
#3
Takker for informationen.
Jeg går ud fra at med mysqli mener du MySQL Improved, som ikke ser ud til at være så meget anderledes end MySQL, men så let er det vel ikke?
Og så er der lige alt det her:
Siger mig faktisk ikke det store, måske lige bortset fra "Altid datavaliderng for at undgå XSS.".
Som det er tydeligt at jeg forholdsvis ny (1år on/off) til programmering.
http://php.net hjælper en del, men syntes dog at den er forvirrende nogen gange.
Det jeg sådan set håbede var sådan længere artikler/tutorials/guides/etc. som kunne få mig videre i forløbet med PHP, nu hvor uddannelsen ikke rigtig gør..
Takker for informationen.
Jeg går ud fra at med mysqli mener du MySQL Improved, som ikke ser ud til at være så meget anderledes end MySQL, men så let er det vel ikke?
Og så er der lige alt det her:
Datavalidering client side for convenience - datavalidering server side for security.
Altid parameters / prepared statement for at undgå SQL injection.
Altid datavaliderng for at undgå XSS.
Kræv at AJAX requests er POST ikke GET.
HTTPS til transport af alt der bare er tilnærmelsesvist er fortroligt.
Siger mig faktisk ikke det store, måske lige bortset fra "Altid datavaliderng for at undgå XSS.".
Som det er tydeligt at jeg forholdsvis ny (1år on/off) til programmering.
http://php.net hjælper en del, men syntes dog at den er forvirrende nogen gange.
Det jeg sådan set håbede var sådan længere artikler/tutorials/guides/etc. som kunne få mig videre i forløbet med PHP, nu hvor uddannelsen ikke rigtig gør..
#4
Ja.
http://www.php.net/manual/en/book.mysqli.php
Og sikkerhedsmæssigt er der stor forskel på den og den gamle mysql extension.
Ja.
http://www.php.net/manual/en/book.mysqli.php
Og sikkerhedsmæssigt er der stor forskel på den og den gamle mysql extension.
Bllets (4) skrev:#3
Takker for informationen.
Jeg går ud fra at med mysqli mener du MySQL Improved, som ikke ser ud til at være så meget anderledes end MySQL, men så let er det vel ikke?
Og så er der lige alt det her:
[...snip...]
Siger mig faktisk ikke det store, måske lige bortset fra "Altid datavaliderng for at undgå XSS.".
Det er lidt skræmmende at du ikke har LÆRT DET på din uddanelse.
Men ikke overraskende, har selv tilbragt en 8 måneder på webintegrator for at leeche SU mens jeg spillede WoW.
Men alt hvad arne_v har sagt er sådan set korrekt, hvis du har mere konkrete spørgsmål senere, så prøver jeg at holde tråde her tagget.
http://php.net hjælper en del, men syntes dog at den er forvirrende nogen gange.php.net skal ligesom så mange andre sprog-dokumentationssider betragtet som API DOCS, hvor php er dit API.
Sikkerhed handler som tidligere nævnt om design, og design er grundlæggende og ikke noget man definerer per sprog.
En af de store problemer med php har dog været mangel på værktøjer til implementeret af typiske design. Det er der dog rettet meget op på i PHP5.
Hvis du ikke allerede benytter PHP5, kan du godt begynde nu. Der er officielt ingen support af PHP4 om 1½ månede.
Hvad du rent faktisk skal lære uden for skoletiden, er noget noget i retning af design patterns og OOP, som du så kombinerer med din rent pratiske erfaring med php.
Sikkerhed er simpelt: ALT BRUGER INPUT SKAL VALIDERES!.
Og med ALT, mens der ALT!
Derudover er der serverside teknikker som at lave 99% af siden under public-dir, og kun have media (billeder/css/lyd) og en frontcontroller i public-dir.
Ligesom at du ALDRIG må benytte eval() , og ALDRIG have nogen som helst form for backup og konfigurationsfiler liggende i public-dir.
dinside . dk / config.php må simpelt ikke kunne lade sig gøre, ligegyldigt om du ikke kan se indholdet af den eller ej.
Og et et par links:
PHP & Web Application Security Blog af Chris Shiflett :)
Sara Golemon's Blog - Hun skriver nogle gange nogle nice ting som er værd at vide, men det er nok over i den meget nørdede sektion.
:-)
PHP & Web Application Security Blog af Chris Shiflett :)
Sara Golemon's Blog - Hun skriver nogle gange nogle nice ting som er værd at vide, men det er nok over i den meget nørdede sektion.
:-)
arne_v (2) skrev:Kræv at AJAX requests er POST ikke GET.
Hvorfor? (PS: jeg er ikke ret AJAX-erfaren)
Windcape (10) skrev:Ligesom at du ALDRIG må benytte eval() , og ALDRIG have nogen som helst form for backup og konfigurationsfiler liggende i public-dir.
Som udgangspunkt er jeg enig, men hvad hvis man f.eks. har PHP-kode liggende i sin database (skrevet af webudvikleren), er det så et problem? Hvis en blackhat får adgang til databasen er det jo selvfølgelig, men så er man jo screwet under alle omstændigheder.
Windcape (10) skrev:dinside . dk / config.php må simpelt ikke kunne lade sig gøre, ligegyldigt om du ikke kan se indholdet af den eller ej.
Tja, hvis den kun definerer variable kan jeg ikke se problemet i at den ligger i public-dir.
Som udgangspunkt er jeg enig, men hvad hvis man f.eks. har PHP-kode liggende i sin database (skrevet af webudvikleren), er det så et problem?Du skal ALDRIG have php kode liggende i en database.
Forestil dig SQL injection + eval() = Jeg ejer din server nu. *host* newz.dk *host*
Hvorfor? (PS: jeg er ikke ret AJAX-erfaren)Så folk ikke kan tilgå dem direkte, det er et performance boost. Ved ikke om der er mere i det :) Men det er god skik.
Tja, hvis den kun definerer variable kan jeg ikke se problemet i at den ligger i public-dir.Indtil den dag du installere et 3rd parts modul med sikkerhedsfejl i.
At være ligeglade med ting fordi de VIRKER sikre er en normal falgrube. Undgå det mens du kan, design dit system så det ikke kan lade sig gøre.
Det er lidt ligesom at de ikke er et problem at kører med Admin rettigheder på din pc hele tiden :-) Hov vent...
Det kan man jo også høre på navnene. Hvis brugeren skal indtaste noget og det skal sendes videre, så skal der bruges POST (at poste / indsende), hvorimod hvis brugeren skal hente data og gerne kunne fx bogmærke siden, så kan der bruges GET (at hente).
GET til at hente data
POST til at poste data
GET til at hente data
POST til at poste data
13 skrev:At være ligeglade med ting fordi de VIRKER sikre er en normal falgrube. Undgå det mens du kan, design dit system så det ikke kan lade sig gøre.
Fair nok, men så gælder det vel alle include-filer så. Hvor skal man så gøre af dem? På mit webhotel mener jeg kun at kunne uploade filer til mit public dir.
Så skal du snakke med dit webhotel, da de tilbyder en elendig løsning.Spiderboy (17) skrev:På mit webhotel mener jeg kun at kunne uploade filer til mit public dir.
Mine løsninger ser normalt sådan her ud:
/library
/Zend
/application
/controllers
/views
/models
/cache
/www/
/index.php (Frontcontroller)
/.htaccess
/media/ (CSS/Billeder/Javascript)
Typisk så bliver nødvendige konfigurationer kodet direkte ind i frontcontrolleren.
Her er et eksempel på en frontcontroller under Zend Framework (lidt outdated version): index.phps
Fuldstændig off-topic, men det er sgu fedt at se, at der findes folk, der stadig går nok op i deres uddannelse til, at de kigger udover pensum og de skemalagte timer :)
Frameworket CodeIgniter er utrolig praktisk og giver dig mulighed for at lærer om Model/Controller/View tilgangen til programmeringen som Windcape øjensynligt også bruger, når man ser på mappestrukturen (I burde selvfølgelig blive undervist i OOP, men aner ikke om det er tilfældet).
Frameworket CodeIgniter er utrolig praktisk og giver dig mulighed for at lærer om Model/Controller/View tilgangen til programmeringen som Windcape øjensynligt også bruger, når man ser på mappestrukturen (I burde selvfølgelig blive undervist i OOP, men aner ikke om det er tilfældet).
#21
Datatekniker som jeg selv er igang med, indeholder en masse programmering, desværre er det sådan, at de kloge hoveder, der bestemmer over os, har bestemt at vi skal have et nyt sprog, og begynde forfra, hvergang vi starter på et nyt ophold.
Intet teori omkring OOP, eller UML, hvilke ville have været rigtig lækkert.
Datatekniker som jeg selv er igang med, indeholder en masse programmering, desværre er det sådan, at de kloge hoveder, der bestemmer over os, har bestemt at vi skal have et nyt sprog, og begynde forfra, hvergang vi starter på et nyt ophold.
Intet teori omkring OOP, eller UML, hvilke ville have været rigtig lækkert.
#22
nu ved jeg ikke hvornår du er started, men vis du er bare et stykke ind i uddannelsen, hvad det lyder som om, så vil jeg da gerne høre hvor al den programmering er, er selv blevet færdig med H2 og efter det vil det eneste programmering være valgfag, og indtil nu har vi kun haft 5 uger i alt.
nu ved jeg ikke hvornår du er started, men vis du er bare et stykke ind i uddannelsen, hvad det lyder som om, så vil jeg da gerne høre hvor al den programmering er, er selv blevet færdig med H2 og efter det vil det eneste programmering være valgfag, og indtil nu har vi kun haft 5 uger i alt.
Amen.arne_v (24) skrev:Kendskab til flere sprog er godt.
Men de skal jo naturligvis helst give mere indsigt og ikke bare starte forfra.
Da jeg tog uddannelsen blev C++ berørt på 5. forløb, og på 6. forløb stod den på C#. Derfra arbejdede vi med .NET frem til og med 9. forløb, med mssql sideløbende. Java blev kort berørt undervejs, men det er lige før at det er svært at se store forskel på basic java og basic C# imo. :P Vi fik dog et par fine sorteringsalgoritme eksempler ud af det.thorjak (22) skrev:#21
Datatekniker som jeg selv er igang med, indeholder en masse programmering, desværre er det sådan, at de kloge hoveder, der bestemmer over os, har bestemt at vi skal have et nyt sprog, og begynde forfra, hvergang vi starter på et nyt ophold.
Intet teori omkring OOP, eller UML, hvilke ville have været rigtig lækkert.
Vi blev også introduceret for OOP, og ved slutningen af 6. forløb var der prøver for at fastslå om vi havde forstået OOP konceptet eller ej. Havde man ikke forstået konceptet tilfredsstillende, så måtte man bruge et ekstra liv. :P Samme galdt UML.
Vi måtte også igennem udviklingsmetoder (XP <3).
#23
skal starte på h6 aka sidste hovedforløb, eller ja er færdig med uddannelsen om 1½ år.
Indtil videre har vi haft c, c++, php, c#, java.
Hvor vi er begyndt forfra hver gang i hvert sprog.
Jeg som sidder og udvikler hver dag, har intet problem med det, ud over jeg godt kunne bruge noget mere teori.
#24
Ja, det er det helt sikkert, jeg kan da også en bunke sprog, men dem jeg går i skole med kan ingen ting, og de bliver kun mere forvirret.
skal måske fortælle hvilken skole det er jeg har erfaringer med, TEC ballerup, det siges de er igang med at lave det om, men indtil videre har det været håbløst, at få skolen i snak, om hvad der kunne gøres bedre.
#25 - danm du er sku heldig, jeg er godt træt af ikke at lærer noget når jeg tager på skole
skal starte på h6 aka sidste hovedforløb, eller ja er færdig med uddannelsen om 1½ år.
Indtil videre har vi haft c, c++, php, c#, java.
Hvor vi er begyndt forfra hver gang i hvert sprog.
Jeg som sidder og udvikler hver dag, har intet problem med det, ud over jeg godt kunne bruge noget mere teori.
#24
Ja, det er det helt sikkert, jeg kan da også en bunke sprog, men dem jeg går i skole med kan ingen ting, og de bliver kun mere forvirret.
skal måske fortælle hvilken skole det er jeg har erfaringer med, TEC ballerup, det siges de er igang med at lave det om, men indtil videre har det været håbløst, at få skolen i snak, om hvad der kunne gøres bedre.
#25 - danm du er sku heldig, jeg er godt træt af ikke at lærer noget når jeg tager på skole
#28-31
Hvis keywords if/switch/for/whiile/do, brug af {} og case sensitivitet er nok til at få en til at føle sig hjemme, så har du ret.
Stort set alt bortset fra de overfladiske syntax ting er forskelligt.
Men fænomenet "føle sig hjemme" eksisterer. VB.NET eksisterer p.g.a. det. Sprog feature mæssigt kunne folk lige så godt bruge C#, men MS vurderede at der var millioner af VB udviklere som ville føle sig mere hjemme i VB.NET.
Hvis keywords if/switch/for/whiile/do, brug af {} og case sensitivitet er nok til at få en til at føle sig hjemme, så har du ret.
Stort set alt bortset fra de overfladiske syntax ting er forskelligt.
Men fænomenet "føle sig hjemme" eksisterer. VB.NET eksisterer p.g.a. det. Sprog feature mæssigt kunne folk lige så godt bruge C#, men MS vurderede at der var millioner af VB udviklere som ville føle sig mere hjemme i VB.NET.
#11
Jeg takker for linksne, i det at det faktisk ser rimelig interassent ud, i det at vi faktisk ikke har lært et eneste fagord endnu udover det vi har kodet.
Så følgende ord du har sagt ved jeg faktisk ikke hvad er endnu:
1. design patterns og OOP
2. public-dir
3. frontcontroller
Jeg kan dog sådan ca. regne ud hvad public-dir er, men har aldrig tidligere hørt det før. De to andre er jeg sådan lidt blank overfor.
Problemet med min uddannelse som sådan, at det virker som om man ikke vil gøre det for kompliseret og dermed ikke vil lære os mysqli, eller noget andet som er lidt mere end std. php med mysql.
Jeg ved ikke hvor mange gange jeg har skrevet mysql_query og while(mysql_fetch_array), da det faktisk er den eneste måde vi har lært at hente fra en mySQL database. Jeg syntes selv det var imporende når mine lærer blive imponeret over jeg bruger Lightbox og md5()/sha1(). :/
Jeg overvejer at bruge nogen penge på bøger angående at lærer mere om PHP/sikkered, hvor der er i dit link ser ud til at være nogen eksempler på nogen, men kan det betale sig?
Jeg takker for linksne, i det at det faktisk ser rimelig interassent ud, i det at vi faktisk ikke har lært et eneste fagord endnu udover det vi har kodet.
Så følgende ord du har sagt ved jeg faktisk ikke hvad er endnu:
1. design patterns og OOP
2. public-dir
3. frontcontroller
Jeg kan dog sådan ca. regne ud hvad public-dir er, men har aldrig tidligere hørt det før. De to andre er jeg sådan lidt blank overfor.
Problemet med min uddannelse som sådan, at det virker som om man ikke vil gøre det for kompliseret og dermed ikke vil lære os mysqli, eller noget andet som er lidt mere end std. php med mysql.
Jeg ved ikke hvor mange gange jeg har skrevet mysql_query og while(mysql_fetch_array), da det faktisk er den eneste måde vi har lært at hente fra en mySQL database. Jeg syntes selv det var imporende når mine lærer blive imponeret over jeg bruger Lightbox og md5()/sha1(). :/
Jeg overvejer at bruge nogen penge på bøger angående at lærer mere om PHP/sikkered, hvor der er i dit link ser ud til at være nogen eksempler på nogen, men kan det betale sig?
#35
ahh så det er hvad OOP er, det har vi dog haft om... I 2uger... Det er jeg også ved at prøve og lærer mig selv :)
Så Front Controller er faktisk en fil til at erstatte alle de filer jeg har nu til login/delete/edit/etc ?
#21
Grunden til jeg gør det at hvis jeg ikke gør det ville jeg faktisk ikke klare min uddannelse, efter at have lavet mere eller mindre 5 lignende hjemmesider, hvor den eneste forskel er en funktion som man har lavet tidligere. Som så bare skal kodes ind, det blev sådan set røv kedeligt. Og gik fra 10/12 til 02/04 i karakter.
Derfor besluttede jeg at var nødt til at simpelthen at lærer uden om skolen. Dette vil også gøre mig til en bedre programmør når jeg engang blev færdig :)
ahh så det er hvad OOP er, det har vi dog haft om... I 2uger... Det er jeg også ved at prøve og lærer mig selv :)
Så Front Controller er faktisk en fil til at erstatte alle de filer jeg har nu til login/delete/edit/etc ?
#21
Grunden til jeg gør det at hvis jeg ikke gør det ville jeg faktisk ikke klare min uddannelse, efter at have lavet mere eller mindre 5 lignende hjemmesider, hvor den eneste forskel er en funktion som man har lavet tidligere. Som så bare skal kodes ind, det blev sådan set røv kedeligt. Og gik fra 10/12 til 02/04 i karakter.
Derfor besluttede jeg at var nødt til at simpelthen at lærer uden om skolen. Dette vil også gøre mig til en bedre programmør når jeg engang blev færdig :)
Billets:
Hvis du ikke har forstået alt vi har fortalt om indtil videre når du er færdiguddanet er dine chancer for et job også lig med nul.
29/30 i din klasse vil aldrig få en job som webudvikler kun med baggrund i webintegrator.
Det er som sagt, bare en SU leech uddanelse :)
Hvis du ikke har forstået alt vi har fortalt om indtil videre når du er færdiguddanet er dine chancer for et job også lig med nul.
29/30 i din klasse vil aldrig få en job som webudvikler kun med baggrund i webintegrator.
Det er som sagt, bare en SU leech uddanelse :)
#38 & 39
Nu skal man holde tungen lige i munden når man diskuterer kvalifikationer til et job som udvikler.
Software engineering (som det hedder når det skal være fint) består af to dele:
- noget "videnskab"
- noget "håndværk"
Du kan putte OOP, design patterns, MVC, adskillelse af præsentation og logic etc. i videnskabsdelen.
Du kan putte brug af mysqli, brug af SHA256, reserverede ord, brug af POST fremfor GET etc. i håndværksdelen.
Det er videnskabsdelen som vil gøre dig interessant på arbejdsmarkedet på længere sigt, idet det er nogle begereber som vil kunne bruges i mange mange år. Modsat diverse PHP5 features som er håbløst forældede når PHP7 udkommer om 10 år.
Det bør faktisk også være den del der giver dig det første job. Men det er nu set at virksomheder prioriterer nogen som kan PHP5 eller C# 2.0 eller ASP 3.0 eller noget tilsvarende. Smarte virksomheder er dog klar over at de kan sagtens kan lære en der kan udvikle software et nyt sprog, mens at en der kan et bestemt sprog ikke nødvendigvis kan lære principperne bag software udvikling.
Sådan lidt kynisk sagt er den mest relevante IT uddannelse lige efter folkeskolen faktisk gymnasiet med højt niveau matematik.
Nu skal man holde tungen lige i munden når man diskuterer kvalifikationer til et job som udvikler.
Software engineering (som det hedder når det skal være fint) består af to dele:
- noget "videnskab"
- noget "håndværk"
Du kan putte OOP, design patterns, MVC, adskillelse af præsentation og logic etc. i videnskabsdelen.
Du kan putte brug af mysqli, brug af SHA256, reserverede ord, brug af POST fremfor GET etc. i håndværksdelen.
Det er videnskabsdelen som vil gøre dig interessant på arbejdsmarkedet på længere sigt, idet det er nogle begereber som vil kunne bruges i mange mange år. Modsat diverse PHP5 features som er håbløst forældede når PHP7 udkommer om 10 år.
Det bør faktisk også være den del der giver dig det første job. Men det er nu set at virksomheder prioriterer nogen som kan PHP5 eller C# 2.0 eller ASP 3.0 eller noget tilsvarende. Smarte virksomheder er dog klar over at de kan sagtens kan lære en der kan udvikle software et nyt sprog, mens at en der kan et bestemt sprog ikke nødvendigvis kan lære principperne bag software udvikling.
Sådan lidt kynisk sagt er den mest relevante IT uddannelse lige efter folkeskolen faktisk gymnasiet med højt niveau matematik.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.