[MUSIEK] David J. MALAN: Alle reg. So dit is CS50 en hierdie is die einde van die week 10. So 'n paar van julle het dalk gesien het hierdie reeds, maar wat gesirkuleer van laat is 'n artikel wat ek gedink ek wil lees 'n uittreksel uit en dan wys jy 'n drie minute video wat verf dieselfde prentjie. Dit was regtig 'n roerende storie, ek gedink het, van die kruising van die werklike wêreld met werklik dwingende gebruik van tegnologie. So het die artikel is getiteld, "'n Seun oversleeps op die trein, maak gebruik van Google Maps familie tot 25 jaar later vind. "En die eerste paar paragrawe was, "Wanneer Saroo vyf jaar oud was hy saam met sy ouer broer te bietsen vir verandering op 'n passasierstrein in 'n dorpie sowat twee uur van sy klein tuisdorp. Saroo moeg geraak het en hop op 'n nabygeleë trein waar hy gedink het sy broer is toe aan die slaap geraak. Toe hy wakker word het hy was in Calcutta, byna 900 myl weg. Saroo probeer om sy weg te vind terug, maar hy het nie geweet die naam van sy tuisdorp. En as 'n klein ongeletterd seun in 'n groot stad vol vergeet kinders moes hy feitlik geen kans om die huis. Hy was 'n straat kind vir 'n rukkie totdat 'n plaaslike aanneming agentskap verslaaf hom met 'n Australiese paartjie wat hom gebring woon in Hobart, Tasmanië. Saroo geskuif daar, geleer Engels, en grootgeword het. Maar hy het nooit ophou soek na sy familie en sy tuisdorp. Dekades later, het hy ontdek Google Aarde en gevolg treinspore. En gee hom 'n voorgeskrewe radius gebaseer op hoe lank hy gedink het hy was slaap en hoe vinnig het hy gedink dat die trein gaan, het hy geweet hy grootgeword het in 'n warm klimaat, het hy geweet hy het Hindi soos 'n kind, en hy is aangesê dat hy lyk asof hy was uit Oos-Indië. Ten slotte, na jare van skuur die satelliet foto's, het hy erken 'n paar bakens. En na die gesels met 'n administrateur van 'n nabygeleë dorp se Facebook-blad, het hy besef hy het die huis. " So hier is dan die video vertel wat verhaal uit sy perspektief. [Video speel] -Dit was 26 jaar gelede en ek was net sowat vyf te draai. Ons het na die stasie en ons aan boord van 'n trein saam. My broer het net gesê ek sal bly hier en ek sal terug kom. En ek het net gedink, wel, jy weet, ek kan net so goed gaan slaap en dan sal hy net maak my wakker. En wanneer ek wakker word die volgende dag, die hele wa leeg was op 'n weghol trein, 'n spook trein neem my, ek weet nie waar. Ek is aangeneem na Australië 'n Australiese familie. En Ma het versier my kamer met die kaart van Indië, wat sy sit langs my bed. Ek het elke oggend sien dat die kaart, en dus is dit soort van gehou die herinneringe lewendig. Mense sou sê, jy probeer om te vind 'n naald in 'n hooimied. Saroo, sal jy nooit vind nie. Ek wil hê flitse van die plekke wat Ek gebruik om te gaan, die flitse van my gesin se gesigte. Daar was die beeld van my ma sit sit met haar bene gekruis net kyk na haar roep. Die lewe is net so hard. Dit was my skat. En ek was op soek in Google Map en besef daar is Google Earth as well. In 'n wêreld waar jy kan zoem in ek begin al hierdie gedagtes te hê en watter moontlikhede wat dit kon doen vir my. Ek het vir myself gesê, wel, jy weet, jy het al die fotografiese herinneringe en landmerke waar jy uit en jy weet wat die dorp lyk. Dit kan 'n aansoek wees dat jy kan gebruik om jou pad terug te vind. Ek het gedink, goed, ek sal 'n dot op Calcutta Station in 'n radius lyn wat jy moet soek word rondom hierdie gebied. Ek het gekom oor hierdie treinspore. En ek het begin na aanleiding van dit en ek het gekom om te 'n stasie wat weerspieël die dieselfde beeld wat in my herinneringe. Alles wat ooreenstem. Ek het net gedink, yep. Ek weet waar ek gaan. Ek gaan net die kaart te laat dat ek het in my kop om my te lei en neem my Terug na my tuisdorp. Ek het na die drumpel van die huis dat ek gebore en rondgeloop omtrent vyftien meter om die draai. Daar is drie dames staan ​​buite aangrensend aan mekaar. En die middelste een na vore getree. En ek het net gedink, hierdie is jou moeder. Sy het na vore gekom het, het sy my omhels, en ons was daar vir omtrent vyf minute. Sy gryp my hand en sy het my na die huis en het op die telefoon en sy lui my suster en my broer te sê dat jou broer net al die skielik verskyn soos 'n spook. En dan is die familie was weer saam. Alles is alles goed. Ek help my ma uit. Sy hoef nie te word weg slaaf. Sy kan lei die res van haar lewe in vrede. Dit was 'n naald in 'n hooimied, maar die naald was daar. Alles is daar. Alles wat ons het in die wêreld is die kraan van 'n knoppie. Maar jy het die wil te hê en die vasberadenheid om te wil dit. [Einde video-vertoning] So 'n werklik soet storie. En dit herinner my eintlik van 'n hele onderwerp wat die afgelope tyd nogal 'n bietjie van die aandag van laat in die rooi, meer nasionaal in die algemeen. Veral as MOOCs neem die stadium van laat. MOOCs om hierdie massiewe en oop online kursusse wat CS50 is een. En die mense praat oor hoe, vir Byvoorbeeld, die geesteswetenskappe is nie regtig vang of is nie naastenby so in die mode soos dit eens was. En ek sal u aanmoedig om ouens, baie soos Jonathan het op Maandag, om te dink oor as jy die uitgang 50, en ons weet reeds sowat 50% van julle sal nie voortgaan om op 'n ander rekenaar te neem wetenskap natuurlik, en dit is heeltemal boete en verwag. Want een van die oorkoepelende doelwitte van 'n klas soos dit is regtig te bemagtig ouens met net 'n begrip van hoe al hierdie dinge werk en hoe om die wêreld van tegnologie te werk. Sodat wanneer jy terug is in jou eie wêrelde, of dit is pre-med of of dit nou die geesteswetenskappe of die sosiale wetenskappe of 'n ander veld geheel en al, dat jy ouens bring 'n paar tegniese vaardig om die tafel en help om slim besluite te neem wanneer dit kom by die gebruik van en bekendstelling van tegnologie in jou wêreld. Byvoorbeeld Ek was herinner aan wyle ook van twee van die voorgraadse klasse Ek het twee jaar gelede, wat was so 'n eenvoudige gebruik van tegnologie maar ooit so oortuigend. Eerste Nights met Professor Tom Kelly As jy geneem het om die klas. Dit is 'n klas van klassieke musiek op hierdie stadium hier waar jy leer om 'n bietjie iets oor musiek. Dit is eintlik die eerste nag wat CS50 geleen om die idee van liedjies vir dié minder gemaklik in tussen en meer gemaklik. In my tyd het hulle verskillende spore vir kinders met absoluut geen musiek ervaar soos ek, en dan kinders wat het reeds sedert hulle was vyf jaar oud. En daardie klas, byvoorbeeld, het net 'n webwerf soos die meeste ander, maar dit was 'n webwerf wat toegelaat word om jou te verken musiek op dit en speel musikale uittreksels uit die klas, van die web, En net gebruik tegnologie in 'n baie naatlose manier. 'N ander klas jare later dat ek geouditeer, in wese, in grad skool, Anthro 1010, Inleiding te Argeologie hier. Dit was ongelooflik. En een van die mees dwingende nog super voor die hand liggend, in retrospek, gebruik van sagteware was dat die professore in daardie klas gebruik Google Earth. Ons sit oorkant die straat in sommige lesing saal. En jy kan nie reis, byvoorbeeld, na die Midde-Ooste na die grawe wat 'n mens van die professore het net terug te kom op, maar ons kon dit feitlik doen deur vlieg rond in Google Earth en op soek na 'n voël se oog die lig op die grawe webwerf Hy het pas teruggekeer van 'n week gelede. So ek sal aanmoedig om julle, veral in die geesteswetenskappe, om te gaan terug na die departemente ná hierdie klas om jou finale projekte met jou of jou eie idees, en sien net wat jy kan doen om jou te vul eie velde in geesteswetenskappe of buite met 'n bietjie van hierdie soort ding wat ons het ondersoek hier in CS50. So met die beeld geverf, gedink ons wil probeer om twee dinge aan te pak vandag. Een, probeer om te gee jou 'n gevoel van waar jy kan gaan na 50. En in die besonder, as jy kies om te Pak 'n web-gebaseerde projek is ongelooflik gemeen het, hoe kan jy gaan oor die neem af al CS50 se opleiding wiele en gaan daar op jou eie en nie om te vertrou op 'n PDF of 'n spesifikasie van 'n pset? Nie om te vertrou op 'n CS50 toestel nie. Maar kan nie regtig trek jouself deur jou bootstraps. Met wat gesê het, C-gebaseer finale projekte is welkom. Dinge wat gebruik maak van die stand vir 'n draagbare biblioteek in grafiese is welkom. Ons weet net dat daar statisties 'n baie mense byt af projekte in PHP en Python en Ruby en MySQL en ander omgewings, so ons sal 'n paar van vooroordeel ons opmerkings na daardie. Maar 'n vinnige blik. So ons het dit as vanselfsprekend in die pset7 feit dat $ _SESSION bestaan. Dit was 'n super wêreld, 'n globale, assosiatiewe skikking. En wat beteken dit laat doen? Funksioneel, wat is die funksie dit gee ons? Ja? Die gebruiker se ID op te spoor. En hoekom is dit nuttig? Om in staat wees om in te slaan van hierdie super globale JHarvard of [? Scroobs?] of Malan se gebruiker ID toe hy of sy besoek 'n site. Presies. So jy hoef nie aan te meld in weer en weer. Dit sou 'n baie lam wêreld wye web wees As elke keer as jy kliek 'n skakel op 'n site soos Facebook of elke keer jy het op 'n e-pos in Gmail jy moes weer kontroleer om te bewys dat dit is nog steeds jou en nie jou kamermaat wat dalk geloop het tot by jou rekenaar in jou afwesigheid. So gebruik ons ​​net onthou wie jy is. En hoe dit geimplementeer onder die enjinkap? Hoe om 'n webwerf wat gebruik maak van die protokol wat web blaaiers en bedieners praat, hoe HTTP, wat 'n staatlose protokol, kom ons sê. En deur staatlose Ek bedoel, sodra jy toegang tot 'n webwerf, laai 'n paar HTMLs, sommige JavaScript, sommige CSS, jou leser se ikoon ophou spin. Jy hoef nie 'n konstante verband na die bediener tipies. Dit is dit. Daar is geen staat gehandhaaf voortdurend. So, hoe is SESSIE geïmplementeer in sulke 'n manier dat elke keer as jy 'n besoek nuwe bladsy, die webtuiste onthou wie jy is? Wat is die onderliggende implementering detail? Skree dit uit. Dit is een woord. Koekies. Alle regte. So koekies. Wel, hoe koekies gebruik? Ons sal onthou dat 'n koekie is oor die algemeen net 'n stuk van inligting. En dit is dikwels 'n groot ewekansige nommer, maar nie altyd nie. En 'n koekie is geplant op jou harde ry of in jou rekenaar se geheue so dat elke keer as jy weer dieselfde webwerf, die leser herinner die bediener, ek is gebruiker 1234567. Ek gebruiker 1234567. En so lank as wat die bediener het onthou daardie gebruiker 1234567 is JHarvard, die webwerf sal net aanvaar dat u is wie jy sê jy is. En onthou dat ons vandag hierdie koekies soort in die vorm van 'n virtuele hand staan. Dit is gestuur in die HTTP-hoofde net om te herinner die bediener wat jy is wat dit dink jy is. Natuurlik, daar is 'n bedreiging. Wat bedreiging hou dit oop te maak ons ​​tot as ons is hoofsaaklik gebruik soort van 'n klub of 'n pretpark meganisme vir onthou wie ons is? As jy asseblief iemand se koekie en kaping hul sessie, om so te spreek, het jy kan voorgee om iemand anders en die wees webwerf mees waarskynlike is net gaan om te Glo jy. So sal ons kom terug na daardie. Omdat die ander tema vir vandag verby bemagtiging is ook praat oor die baie scary wêreld waarin ons leef en net hoe baie van wat jy doen op die web, hoeveel van wat jy doen, selfs op jou selfone vandag kan wees nagespoor regtig deur enigiemand tussen jy en punt B. En Ajax, onthou. Ons kyk net kortliks na hierdie, Alhoewel jy het al met behulp dit indirek in pset8 omdat jy met Google Maps en omdat jy die gebruik van Google Earth. Google Maps en Google Earth nie laai die hele wêreld aan jou lessenaar, natuurlik, die oomblik wat jy laai pset8. Dit laai net 'n vierkant van die wêreld of 'n groter vierkante van die aarde. En dan elke keer as jy soort van stuur van die reeks wat jy kan sien - veral as 'n stadige konneksie nie - jy dalk 'n grys vir 'n oomblik of 'n bietjie vaag beelde as die rekenaar afgelaai meer soos teëls, meer sulke beelde van die wêreld of die aarde. En Ajax is oor die algemeen die tegniek deur watter webtuistes is om dit te doen. Sodra jy meer van die kaart, jou leser gaan Ajax, wat is om te gebruik nie self 'n taal of tegnologie, dit is net 'n tegniek. Dit is die gebruik van JavaScript om te gaan kry meer inligting van 'n bediener wat kan jou leser om te gaan kry wat om te die ooste of wat is aan die westekant van Wat is anders tans word getoon in die kaart. So dit is 'n onderwerp wat baie van julle sal direk of teëkom indirek via finale projekte as jy kies iets wat te maak Net so dinamies dat se trek data van 'n paar derde party webwerf. So ons het 'n baie opwindende volgende Woensdag voorlê. Quiz een, die inligting waarvoor is op CS50.net reeds. Weet dat daar sal 'n hersiening sessie eerskomende Maandag om 05:30. Die datum en tyd is reeds gepos op CS50.net in daardie About vel. En moenie laat weet dat jy enige vrae het. Pset8 is intussen reeds in jou hande. En laat my net by een Vrae te red mense mate van stres. Vir die grootste deel 'n groot deel van die chatter ons sien by kantoorure en 'n baie die foute wat ons op Bespreek berig sien, is wel foute in 'n student se kode. Maar wanneer jy teëgekom het iets soos die Google Earth plug-in gekraak of selfs nie werk nie en jy is vol vertroue dat dit nie is wat jy is, is dit nie 'n [? chamad] issue?, is dit nie 'n fout wat jy ingevoer en in die verspreiding kode. Besef net FYI - hierdie is 'n soort van plan Z - dat die laaste keer wat ons gebruik om hierdie probleem stel en ons het in 'n soortgelyke kwessies, is daar 'n reël van die kode in service.js wat in wese is dit, wat sê, draai geboue op. En hulle werk om die laaste keer dat ons het dit in, weer, op die hoek gevalle waar studente kon net nie die darn ding aan die werk is verander getrou aan valse in dat een lyn van kode. En jy sal dit vind as jy soek deur service.js. Ek beveel dit nie, want jy sal die skep van die mees dorre landskap van Cambridge, Massachusetts. Dit sal letterlik plat jou wêreld sodat alles wat jy sien, is die onderrig maats en natuurlik assistente op die horison en geen geboue. Maar besef vir watter rede ook al die Google Earth plug-in lyk nog steeds te wees karretjie 'n jaar later, so hierdie kan wees om jou fail red. So eerder as oord in trane, oord te draai geboue af as jy weet dit is die plug-in dit is nie saam op jou Mac of PC. Maar dit is weer die laaste uitweg as jy seker is dat dit nie 'n fout. So het die Hackathon. 'N Paar van die teasers net om jou opgewonde. Ons het nogal 'n paar wie al geantwoord. En net 'n prentjie van wat om te verf wag, het ek gedink ek wil gee jou 'n paar sekondes onthou van hierdie beelde van verlede jaar. [MUSIEK] David J. MALAN: Wag, oh. Ons het selfs ons letterlike CS50 pendel. [MUSIEK] David J. MALAN: So dit is wat wag jy in terme van die Hackathon. En dit sal 'n geleentheid wees om duidelik wees, nie jou finale te begin projekte, maar om voort te gaan werk op jou finale projekte saam klasmaats en personeel en baie kos. En weer, as jy wakker 05:00 Ons sal jou op die pad na IHOP. Die CS50 billike, intussen, is die klimaks vir die hele klas waar jy bring jou skootrekenaars en vriende, miskien selfs familie na 'n kamer op die kampus af in die straat jou projekte uit te stal op skootrekenaars, op lang tafels soos dit met baie van die kos en vriende en musiek in die agtergrond, sowel as ons vriende van die bedryf. Maatskappye soos Facebook en Microsoft en Google en Amazon en trosse van ander, sodat indien belangstel in net hoor oor die werklike wêreld of gesels met mense oor die werklike wêreld internskap of voltydse geleenthede, weet dat sommige van ons vriende van die bedryf sal daar wees. En 'n paar van die foto's wat ons kan verf hier is soos volg. [MUSIEK] David J. MALAN: Alle reg. So dit is dan die CS50 regverdig. So laat ons nou voortgaan om 'n storie te vertel wat werklik sal jou bemagtig om hopelik vir dinge soos finale projekte. So een van 'n paar klein dinge om saad jou gedagte, hetsy vir finale projekte of net meer algemeen vir projekte wat jy kan besluit aan te pak nadat die kursus is al hierdie gedokumenteer op manual.cs50.net waar die CS50 handleiding waar ons het baie van die tegnieke gedokumenteer. En dit is net snelskriknotasie vir sê dat daar in die wêreld dinge genoem SMS te e-pos poorte, wat is 'n deftige manier sê daar is bedieners in die wêreld wat weet hoe om e-pos te omskep teks boodskappe. So as vir jou finale projek wat jy wil hê 'n soort van mobiele tema te skep diens wat u toelaat om vriende te waarsku of gebruikers op gebeure op die kampus of wat bedien word in die D Hall daardie aand of enige sodanige waarskuwing funksie, weet dat dit eenvoudig soos die stuur van 'n e-pos as met PHPMailer wat jy mag gebruik het om vir pset7 of ons gesien kortliks 'n week of wat gelede, te adresse soos hierdie. En in die feit dat jy dit kan teks veronderstelling Jou vriend het 'n onbeperkte SMS plan en jy nie wil hê te hef hulle $ 0,10. Maar as jy stuur 'n e-pos aan jou vriend wat jy weet Verizon of te laat AT & T gebruik Gmail en net die stuur om dit te hul telefoonnommer op wat ook al die sub domein daar is, besef jy stuur 'n SMS-boodskap. Maar dit is een van daardie dinge om versigtig te wees. As jy sleep deur middel van verlede jaar se CS50 video's wat ek dink dit was 'n verskriklike, gruwelike, verskriklike fout ek geskryf het in die kode beland stuur van ongeveer 20.000 teks boodskappe lewe aan ons studente in die klas. En net omdat iemand opgemerk dat hulle was om meer as een teks boodskappe van my het ek die middele om vinnig te beheer C getref en stop die proses. Beheer C, jy onthou, is jou vriend in gevalle van oneindige lus. So wees versigtig vir die krag wat ons het net gegee aan u eerder onverantwoordelik, het die meeste waarskynlik, gebaseer op my eie ervaring. Maar dit is op die web en het is daar vir 'n geruime tyd. Alle regte. So textmarks.com. So, dit is 'n webwerf. En daar is trosse van ander daar buite asook dat ons eintlik gebruik het as 'n klas vir die jaar te wees om SMS-boodskappe te ontvang. Ongelukkig, die stuur van SMS-boodskappe is maklik as die stuur van e-posse soos dit. Ontvangs is 'n bietjie harder, veral as jy wil een te hê die sexy kort kodes wat net vyf of ses syfers lank. So byvoorbeeld, vir die jaar wat jy het al staat om 'n SMS-boodskap te stuur - en jy kan probeer om dit so goed - na 41411. En dit is die telefoonnommer vir hierdie spesifieke begin. En as jy 'n boodskap stuur na 41411 - Ek sal net skryf dit hier, sodat 41411 - en dan stuur hulle 'n boodskap hou SBOY vir pendel Boy. En dan tik in iets soos Mather quad. So jy stuur dat die SMS-boodskap aan daardie telefoonnommer. Binne 'n paar sekondes wat jy moet kry terug 'n reaksie van die CS50 Shuttle Boy diens, wat is die bus skedulering sagteware wat ons gehad het uit daar op die web vir 'n geruime tyd. En dit sal reageer op jy via SMS-boodskap. Want wat ons gedoen het as 'n klas, soos 'n programmeerder, is sagteware te skryf, ingestel om ons gratis rekening met die teks punte te luister vir sms-boodskappe gestuur te SBOY op daardie nommer. En wat hulle doen, is om vorentoe die teks boodskappe na jou PHP-gebaseerde webwerf HTTP parameters sê hier. Hierdie gebruiker met hierdie telefoonnommer het julle gestuur om hierdie teks boodskap. Doen met dit wat jy wil. So ons het 'n paar sagteware wat op ontvangs van 'n string soos SBOY Mather quad, ons ontleed dit. Ons vind uit waar die ruimtes tussen woorde. En ons as 'n klas besluit hoe om te reageer nie. En as jy probeer om daardie nou, byvoorbeeld, jy moet sien, via reaksie binne 'n n paar sekondes, die volgende paar shuttles gaan van Mather na die quad indien enige. En daar is ander punte. Jy kan tik in Boylston of sodanige ander stop op die kampus, en dit moet erken dié woorde. So parse.com. Dit is 'n ander diens wat ons het al wys sommige studente op vir finale projekte wat is wonderlik in dat dit is gratis vir 'n redelike bedrag van gebruik. En as ek gaan na parse.com sal jy sien dat hierdie is 'n alternatief vir eintlik het iets soos jou eie MySQL databasis. En eerlik, dit is net soort van hypnotiserende. Dit is wat die binnekant van die wolk op 'n bewolkte dag. So parse.com kan jy 'n om te doen n klomp van die interessante dinge. En daar is ander alternatiewe om dit uit daar. Byvoorbeeld, kan jy gebruik om hulle as jou rug end-databasis. So jy hoef nie te hê 'n web hosting maatskappy. Jy hoef nie te hê 'n MySQL databasis. Jy kan gebruik in plaas hul agterkant. As jy doen 'n mobiele projek vir Android of IOS of die wil, weet dat daar bestaan ​​dinge soos druk dienste sodat jy kan stoot kennisgewings aan jou vriende of jou gebruikers se huis skerms. En dan 'n klomp van die ander funksies as well. So as jy belang, kyk uit hierdie webwerwe en webwerwe soos hulle om net te sien hoeveel ander mense se skouers kan jy staan ​​op te maak werklik 'n koel sagteware van jou eie. Nou in terme van verifikasie, 'n FAQ, is hoe jy waarborg eintlik dat jou gebruikers is mense op die kampus, Harvard studente of fakulteit of personeel? So CS50 het sy eie verifikasie diens genoem CS50 ID. Gaan na dat die URL en jy kan beperk jou webwerf vir enigiemand met 'n Harvard ID, byvoorbeeld. So weet ons dat ons wat kan hanteer. Julle moet nie in die besigheid om te sê, wat is jou Harvard ID? Wat is jou Harvard PIN? Laat my nou iets te doen met dit. Ons doen dit alles. En wat ons sal gee jou terug iemand se naam en e-posadres, maar niks sensitief. 'N Program op 'n mobiele toestel, kan dit gemaak om te werk op 'n selfoon, maar dit is nie heeltemal ontwerp vir daardie. Sodat jy uiteindelik spandeer 'n nie geringe bedrag van die tyd om dit te doen. So ek sou ontmoedig dat die roete vir nou. Dit is eintlik bedoel vir web-gebaseerde programme. So web hosting. So as jy nie gesien het nie op die kursus se tuisblad - en hier is waar ons sal 'n storie begin - web hosting is al oor die betaling vir gewoonlik 'n diens, bied 'n bediener besit deur iemand anders op die web wat 'n IP adres, en jy dan jou webwerf op dit. En hulle het gewoonlik gee jou e-pos rekeninge en databasisse en ander sulke eienskappe. Weet dat as jy nie wil hê om werklik betaal vir so, gaan na daardie URL daar en CS50 het eintlik 'n nie-winsgewende rekening wat jy kan gebruik om te eintlik nie http://project binnekant van die toestel vir jou finale projek. As jy werklik wil hê dit moet iets wees soos, isawyouharvard.com, jy kan daardie domein naam te koop - hoewel nie daardie spesifieke een - en dan kan jy gaan oor die hosting dit op 'n openbare web bediener soos ons kan bied julle ouens deur hier. En in werklikheid, as onbekende, As jy nog nooit was nie isawyouharvard.com, een, daar gaan. Maar twee, weet dat dit was 'n jong vrou se naam deur Tej Te twee te toor jaar gelede, drie jaar gelede, wat 'n CS50 alumni wat 'n dag of twee gebeur voor die CS50 billike uitgestuur 'n e-pos na haar huis e-lys en voila. Twee dae later deur die CS50 regverdig, moes sy honderde gebruikers al die diere op mekaar op haar webwerf en sê hoe hulle gesien het hom of haar op die kampus. So dit is een van CS50 se gunsteling sukses stories uit 'n CS50 finale projek. So, hoe gaan jy te werk om 'n webwerf soos wat op die internet? Wel, daar is 'n paar sulke bestanddele hier. So een, het jy 'n domein naam te koop. Daar is trosse van plekke in die wêreld uit wat jy kan koop 'n domein naam. En byvoorbeeld, een wat ons aanbeveel net omdat dit is gewild en dit is goedkoop genoem namecheap.com. Maar jy kan godaddy.com gaan dekades van die ander daar buite. Jy kan lees oor resensies. Maar vir die grootste deel dit nie saak van wie jy koop 'n domein naam. En hulle verskil in prys en hulle verskil in agtervoegsel. Die agtervoegsels soos. Com, net,. Org,.. Io. Tv, diegene eintlik verskil in prys. Maar as ons wou iets te doen soos cats.com ons kan gaan na die webwerf, Klik op Soek. Vermoedelik hierdie een geneem word. Maar blykbaar, catsagainst.com beskikbaar is. pluscats.com beskikbaar is. Lovecats, catscorner, dampcats.net. Al hierdie hopelik pseudo lukraak gegenereerde. As jy wil cats.pw, $ 1500 net, Dit is 'n bietjie mal. So iemand het regtig opgeraap al die kat verwante domein name hier vir wisselende pryse. As 'n eenkant, laat ons sien. Wie cats.com het? Weet dat julle ouens het ten jou beskikking redelik gesofistikeerde bevele nou. Soos ek kan letterlik tik wat cats.com? En as gevolg van die manier waarop die internet is gestruktureer kan jy eintlik sien wat geregistreer het nie. Blykbaar het hierdie persoon is [onhoorbaar] gebruik van 'n proxy diens. So wie besit cats.com nie wil die wêreld om te weet wie hulle is. So het hulle geregistreer as deur 'n paar random privaatheid diens. Maar soms moet jy eintlik kry werklike eienaars. En dit is om te sê, veral as jy ' die voortsetting van 'n paar begin en jy regtig wil 'n domein naam en jy bereid is om iemand anders te betaal vir dit is, kan jy uitvind kontak inligting in die manier. Maar ook interessant is, is hierdie. Laat my blaai tot hierdie gedeelte. So dit is dat dieselfde uitset. En dit is net taai. So glo cats.com kan wees joune vir die regte prys. Maar wat interessant is hier is dat die naam bedieners - dit is totale misbruik van wat 'n naam bediener veronderstel is om te wees nie - jou naam bediener is nie veronderstel om te wees thisdomainforsale.com. As ons eintlik kies iets soos - Kom ons kies om iets 'n bietjie meer regmatige soos, wat is google.com, en blaai hier. So hier - wat daar gebeur het? Interessant. Beyond wat - Kom ons hou dit meer lae sleutel. Wie is mit.edu? OK. Dit is nuttig. So dit is wat ek gehoop het. Wettige gebruik van die DNS-diens. Naam bedieners hier dui die volgende. Dit is MIT se manier om te sê, wanneer iemand in die wêreld, waar hulle ook al is, tipes in mit.edu en treffers Tik, jou laptop, of Mac of PC, sal een of ander manier het uiteindelik uit te vind dat die mense in die wêreld wat weet wat die IP-adres is vir mit.edu of enige van die sub domeine by mit.edu of enige van hierdie servers hier - en dit eintlik lyk soos MITs infrastruktuur redelik sterk as wat jy sou verwag. Hulle het verskeie name servers wat goed is vir die ontslag. En in waarheid te sê, dit lyk asof hulle om wêreldwyd te wees versprei oor die hele wêreld. 'N klomp van die mense blyk te wees in die VSA, 'n paar in Asië, een in Europa, twee in iewers anders. Maar die punt hier is dat DNS wat het ons neem as vanselfsprekend aanvaar en oor die algemeen beskryf as 'n groot Excel-tabel wat IP adresse en domein name is eintlik redelik gesofistikeerd hiërargiese diens sodat in die World Daar is eintlik 'n beperkte aantal van bedieners wat in wese weet waar al die. Avontuur is of al die. nette is, almal van die . Orgs is, en so meer. So wanneer jy gaan voort en koop 'n domein naam van 'n plek soos Naam goedkoop of Gaan Daddy of enige ander webwerf, een van die belangrikste stappe wat jy hoef te doen, jy, as jy dit doen, selfs vir jou finale projek, is vertel die registrateur van wie jy die aankoop van die domein naam, wat in die wêreld weet jou webwerf se IP adresse, wat jou naam bedieners is. So as jy dit gebruik, byvoorbeeld CS50 se hosting rekening - ons gebeur het hierdie rekening deur dreamhost.com Dit is 'n gewilde web hosting maatskappy - hulle sal jou vertel dat jy moet koop jou domein en die wêreld vertel dat jou domein naam bediener is ns1.dreamhost.com, ns2.dreamhost.com, en ns3.dreamhost.com. Maar dit is dit. Aankoop van 'n domein naam beteken dat hulle die geld en om eienaarskap van die domein, maar dit is meer soos 'n huur al is. Jy kry dit vir 'n jaar en dan sal hulle wetsontwerp jy recurringly vir die res van jou lewe totdat jy kanselleer die domein naam. En dan moet jy vir hulle sê wat die naam bedieners is. Maar dan is jy klaar is met jou agent. En van daar af sal jy net interaksie met jou web hosting maatskappy, wat in CS50 se geval sal wees Dream Host. Maar weereens, sal meer dokumentasie wees verskaf aan jou as jy besluit om te gaan dat die roete. So as jy dit doen na die kursus se einde, net googlen web hosting maatskappy sal opdaag duisende van die opsies. En ek sal in die algemeen aan te moedig om jou te vra vriende wat dalk 'n gebruik het maatskappy voor as hulle beveel hulle en het 'n goeie ervaring. Want daar is 'n baie fly by night web hosting maatskappye, soos 'n man in sy kelder met 'n bediener wat 'n IP-adres. Hy het 'n paar ekstra RAM en hardeskyf ruimte en net verkoop web hosting rekeninge, selfs al is daar is geen manier dat bediener kon hanteer honderde gebruikers of duisende van die gebruikers. So besef jy sal kry waarvoor jy betaal. Vir 'n geruime tyd vir my persoonlike huis bladsy - en dit was heeltemal aanvaarbaar want ek het, wil, twee besoekers 'n maand - Ek was betaal, soos, $ 2,95 per maand. En ek is redelik seker dit was in iemand se kelder. Maar weereens, jy hoef nie noodwendig kry enige waarborge van uptime of scalability. So weer, jy tipies soek na iets meer as dit. Wel, wat oor SSL? So, wat is SSL gebruik? Laat ons nou begin om te stuur in die voorskrifte van sekuriteit en dinge wat ons kan seermaak. Veral as jy onderneming op jou eie. Wat is SSL, of wat gebruik word vir SSL? Sekuriteit, OK. So dit is wat gebruik word vir sekuriteit. Wat beteken dit? So dit staan ​​vir Secure Sockets Layer. En dit word aangedui deur 'n URL wat begin met https://. Baie van ons het waarskynlik nog nooit getik https://, maar jy sal vind dikwels dat jou leser is afgelei van HTTP te HTTPS sodat alles is daar na geïnkripteer. Ter inligting, die gebruik van SSL vereis gewoonlik dat jy het 'n unieke IP-adres. En tipies 'n unieke IP-adres te kry moet jy 'n web hosting te betaal maatskappy 'n paar dollars meer per maand. So besef dit is baie maklik geïmplementeer hierdie dae deur die koop van 'n IP adres en deur die koop van wat is genoem 'n SSL sertifikaat. Maar besef dat dit kom op 'n bykomende koste. En, soos ons sal probeer om te skrik in net 'n bietjie, dit is nie eens noodwendig 100% beskermende van wat dit ookal is jy probeer om te beskerm. So vir sekuriteit, het ek gedink ek wil doen soort van 'n ewekansige segue hier. Soos jy dalk weet van CS50 se lesing video's, het ons produksie span is 'n fan as ek van die neem van baie mooi fotografie van die kampus, en lug fotografie mees onlangs. As jy al ooit kyk en jy sien iets wat met 'n bietjie kamera, dit kan eintlik CS50. En ek het net gedink ek wil minuut van deel sommige van die beeldmateriaal van die span het versamel, veral as ons kyk na die lente semester en volgende val. Indien enige van julle het 'n aanleg vir fotografie, videografie, sou ons lief te kry jy betrokke agter die skerms. Maar meer op die besonderhede in 'n week. [MUSIEK] David J. Malan Turns out is daar 'n miniatuur gholfbaan op die top van die stadion dat ons nooit geweet het. [MUSIEK] David J. MALAN: Jy kan sien die uiteensetting van die dreun daar. [MUSIEK] David J. MALAN: Die beste deel hier is, kyk na die drawwer op die linkerkant. [MUSIEK] David J. MALAN: Nog 'n voorbeeld van wat wat jy kan doen met die tegnologie wat net tangensiaal, eerlik, verband hou met sekuriteit. Maar ek het gedink dit sou 'n meer prettige manier om net te sê, sekuriteit. So laat ons kyk of ons kan nie bang nie ouens nou met nie net 'n bietjie van 'n paar dreigemente, maar ook 'n onderliggende begrip van wat hierdie bedreigings word sodat vorentoe beweeg jy kan besluit hoe en of te verdedig jouself teen hierdie dinge, en op minste te wees bewus van hulle as wat jy besluite te neem as om te bepaal of te stuur dat die e-pos, of nie aan te meld in die webwerf, of om nie te gebruik dat kuber-kafee se Wi-Fi toegang punt so dat jy weet wat die bedreigings is inderdaad rondom jou. So Jonathan verwys na iets soos hierdie op Maandag. Hy het 'n venster skerm geskiet. Hierdie een is van 'n Mac. Hoeveel van julle het al ooit geïnstalleer sagteware op jou Mac of PC? Dit is duidelik dat almal. Hoeveel van julle gegee het veel gedink te tik in jou wagwoord wanneer dit gevra word? Ek meen, selfs ek dit nie doen nie, eerlik. So 'n paar van ons is goed by paranoïes. Maar kyk wat jy eintlik hier. Op 'n tipiese Mac of PC wat jy het 'n administrateur rekening. En tipies jy is die enigste een wat gebruik maak 'n skootrekenaar ten minste hierdie dae. So jou rekening, Malan of JHarvard of wat dit ookal is, is die administrateur rekening. En wat dit beteken is dat jy het wortel-toegang tot jou rekenaar. Jy kan installeer enigiets wat jy wil, verwyder enigiets wat jy wil. En tipies hierdie dae, as gevolg van gedateer ontwerp besluite van jare gelede, die manier waarop die meeste sagteware word geïnstalleer is as 'n administrateur. En selfs as jou Mac of PC het ten minste gekry het slim genoeg om oor die jaar met die nuutste inkarnasies van Mac OS en Windows te hardloop nie jou gebruikersnaam by verstek as die administrateur, wanneer jy dit aflaai paar nuwe program van die internet af en probeer om te dit installeer, gaan jy waarskynlik word gevra om jou wagwoord. Maar die catch is op daardie punt, is jy letterlik oorhandig die sleutels van jou rekenaar oor te wat lukraak program wat jy net afgelaai en toelaat om dit te installeer wat dit wil hê. En as Jonathan verwys om te besef dat dit dalk sê dat dit wil installasie van die sagteware wat jy omgee oor, Spotify of iTunes of wat ook al dit is wat jy probeer om te installeer. Maar jy letterlik die vertroue van die skrywer of skrywers van die sagteware te net doen wat die program veronderstel is om te doen nie. Maar daar is absoluut niks nie stop die meeste programme op die meeste die bedryfstelsel van die verwydering van lêers, van die oplaai om hulle tot 'n maatskappy se webwerf, van sleep rondom, vir versleutelen dinge. En weer, het soort van ons gebou 'n hele infrastruktuur oor die jaar op vertroue. En so besef dat jy het nou net vertrou ewekansige mense en random maatskappye vir die grootste deel. En Jonathan na verwys ook soms die maatskappye self is soort van willens en wetens kwaadwillige, alles reg? Sony gevang 'n baie Flack 'n paar jaar gelede vir die installering van dit wat was bekend as 'n rootkit kit op mense se rekenaars sonder hul kennis. En die kern van hierdie is dat wanneer jy 'n CD gekoop byvoorbeeld dat hulle nie wil hê jy moet in staat wees om te kopieer of rip die musiek af van die CD sou installeer, sonder jou wete, 'n rootkit op jou rekenaar. Rootkit net beteken sagteware wat loop as administrateur wat potensieel doen slegte dinge. Maar onder die dinge wat hierdie ding gedoen het, was dit weggesteek self. So 'n paar van julle sal wees redelik vaardig met jou rekenaar en weet, wel, ek kan net oop die Task Manager of die Aktiwiteit Monitor en ek kan kyk na al van die arcanely vernoem programme wat loop. En as daar iets verdag lyk Ek sal net dood te maak of dit verwyder. Maar dit is wat die rootkit het. Dit in wese gesê, indien hulle loop Taak Bestuurder, wys nie jouself. So het die sagteware was daar. En net as jy regtig, regtig gekyk hard jy kan selfs dit vind. En dit is gedoen in die naam van kopie beskerming. Maar dink net wat kan is anders gedoen. Nou in terme van die beskerming van jouself. Daar is baie van die webtuistes is wonderlik genadig in dat hulle hierdie slot ikone op hul tuisblad, wat beteken dat die webwerf is veilig. Dit is van bankofamerica.com vanoggend. So, wat beteken dat daar min slot-ikoon daar beteken langs die Sign In knoppie? Absoluut niks nie. Dit beteken dat iemand wat weet hoe om te gebruik Photoshop 'n foto van 'n te maak slot-ikoon. Graag heel letterlik, die feit dat dit daar is bedoel om 'n positiewe sein aan die gebruiker soos, ooh, veilige webwerf. Ek moet hierdie webwerf vertrou en nou tik in my gebruikersnaam en wagwoord. En dit is konvensionele vir jaar, so onlangs as vanoggend. Maar kyk na die gewoontes wat hierdie is om ons in. Dink aan die implisiete boodskap dat alle van die banke in hierdie geval was stuur vir die jaar. As jy sien slot, dan verseker. Alle reg? So, hoe kan jy misbruik die stelsel van die trust as jy die slegte ou? Sit 'n slot op jou webwerf, en logies, het die gebruikers is gekondisioneer vir die jaar aan te neem slot beteken veilig. En dit kan eintlik veilig wees. Jy het dalk 'n wonderlike veilige SSL HTTPS verbinding met 'n vals webwerf. com. En niemand anders in die wêreld kan sien dat jy oor hom of haar te oorhandig jou gebruikersnaam en wagwoord tot jou rekening. Dit alhoewel, miskien, is 'n bietjie meer gerus te stel. So dit is 'n screen shot van die top van my leser vanoggend by bankofamerica.com. En hier sien ook ons het 'n slot-ikoon. Wat beteken dit in hierdie konteks in Chrome ten minste? So, dit is nou die gebruik van SSL. So dit is eintlik 'n beter ding. En die feit dat Chrome dit maak groen is bedoel om ons aandag te trek aan die feit dat dit ' nie net oor SSL. Dit is 'n maatskappy wat iemand uit daar geverifieer is eintlik bankofamerica.com. En dit beteken dat Bank van Amerika, wanneer die koop van hul sogenaamde SSL sertifikaat, hoofsaaklik groot willekeur, ietwat ewekansige getalle wat implementeer sekuriteit vir hulle, het hulle geverifieer word deur 'n onafhanklike derde party wat sê, yep. Dit is eintlik die hoof uitvoerende beampte van die Bank van Amerika probeer om die sertifikaat te koop. Chrome sal dus vertrou dat sertifisering gesag en sê in groen, dit is bankofamerica.com. En die Bank van Amerika betaal net 'n paar honderd dollar vir daardie of 'n paar duisend eerder as 'n paar dekades van dollars. Maar ook hier, hoeveel van julle het al ooit Gedra hulle enige verskillend omdat die URL in jou leser is groen in plaas van swart? Reg? So 'n paar van ons. En dit is goed om te wees paranoïes. Maar selfs dan, dié van julle wat nog sien hierdie dinge, het jy eintlik stop te meld by 'n andersins veilige webwerf as die URL is nie groen nie? Alle reg, so seker nie, reg? Ten minste die meeste van ons, as dit is nie groen nie, waarskynlik jy net gaan te wees, wat ook al. Wil, ek wil aan te meld in hierdie webwerf. Dit is waarom ek hier is. Ek gaan om aan te meld in nietemin. As 'n eenkant, Chrome is 'n bietjie beter hieroor. Maar daar is 'n baie blaaiers soos Firefox byvoorbeeld, ten minste vir 'n geruime tyd, waar die slot-ikoon is, kan jy eintlik sit enige ikoon van jou eie. Laat my sien wat die nuutste weergawe van Firefox lyk. So as ons na CS50.net. OK, so hulle gekry het beter as well. Wat die gebruik implementeer om te doen, is hou nie, hier is byvoorbeeld [? SAAS is?] Crest hier. Dit is die sogenaamde gunsteling ikoon vir 'n webwerf. Jaar gelede - eintlik nie so lank gelede nie - dat daar min skild sou reg gewees het hier langs die URL. Omdat sommige genie besluit dat dit sou net mooi kyk aantreklike te hê jou grafiese logo reg langs jou URL. En ontwerp wys, wat eintlik is redelik oortuigend. So wat het slegte man begin doen? Hulle het begin om hul gunsteling ikone, of hul standaard ikoon vir 'n tuisblad om nie 'n wapen wees maar 'n slot, wat ' absoluut geen betekenis nie. Anders as hul gunsteling ikoon is 'n slot dit het geen aanduidings van sekuriteit. So het die lesse wat hier 'n paartjie wat ek dink. Een daarvan is dat daar eintlik 'n paar welmenende meganismes vir leer ons gebruikers oor die veiligheid selfs As jy was nie eens bewus wat groen bedoel of wat selfs HTTPS bedoel. Maar as daardie meganismes kry ons in die slegte gewoonte om te vertrou webwerwe wanneer ons sien die positiewe seine, Hulle is baie maklik misbruik soos ons gesien het net 'n oomblik gelede met iets dom soos hierdie. So sessie kaping kom in speel, as ons vantevore gesê het, met koekies byvoorbeeld. En wat dit eintlik beteken? Goed met sessie kaping dit is al oor die steel van iemand se koekies. So as ek oop Chrome hier vir byvoorbeeld, en ek maak die Inspekteur hier en ek gaan na die Netwerk Tab - en ons het dit gedoen voor - en ek gaan iets soos http://facebook.com betree, 'n hele n klomp van die dinge gaan oor die skerm as gevolg van al die beelde en CSS en JavaScript-lêers. Maar as ek kyk na hierdie een hier sien dat Facebook is inderdaad plant een of meer koekies op my leser hier. So dit is in wese die hand seëls wat my verteenwoordig. En nou hopelik my leser sal bied dit weer en weer wanneer herbesoek die webwerf. Maar dit is net veilig, ons het 'n n paar weke gelede, as jy met SSL. Maar selfs SSL self kan word die gedrang kom. Oorweeg nadat al die pad SSL werke. Wanneer jou leser verbind tot 'n afgeleë bediener via https://, 'n lang storie kort te maak, kriptografie is betrokke. Dit is nie so eenvoudig soos Caesar of Visionaire of selfs DES, DES van 'n rukkie terug in pset2. Dit is meer gesofistikeerd as dit. Dit is bekend as publieke sleutel kriptografie. Maar regtig groot en regtig ewekansige getalle word gebruik om te klouter inligting tussen punt A, jy, en punt B, soos facebook.com. Maar die probleem is, hoe baie van ons weer ooit soort in https:// te begin ons webwerf verbinding in die veilige modus? Ek bedoel, hoeveel van julle tipe http://facebook.com? Alle reg, as jy dit doen, wil, hallo. Jy hoef nie om dit te doen nie, reg? Die leser sal dit uitwerk. Maar die meeste van ons doen inderdaad tik net facebook.com. Want as ons 'n leser gebruik, word die bruisers gekry het slim genoeg om deur 2013 aan te neem as jy met 'n leser, jy tik in 'n adres, moet jy waarskynlik wil hê om dit te bekom nie via e-pos of direkte boodskap. Jy bedoel HTTP en Port 80. Diegene ooreenkomste aangeneem. Maar hoe herleiding werk? Wel, let op wat hier gebeur. As ek gaan terug na Chrome - en laat ons doen dit in incognito af sodat almal van my koekies is weggegooi. En laat my hier gaan, weer, facebook.com. En laat ons sien wat gebeur. Onthou dat die eerste versoek was inderdaad net vir facebook.com. Maar wat was die reaksie wat ek gekry het? Dit was nie 'n 200 OK. Dit was 300, of 301, wat 'n lei my vertel om te gaan na http://www.facebook.com, wat waar Facebook wil my om te gaan. Maar dan as ons kyk na die volgende versoek, en ons het dit gesien nie, sien wat hul tweede reaksie is. Spesifiek wat hulle wil my nou te gaan na die SSL weergawe van Facebook. So hier is 'n geleentheid. Dit is 'n wonderlike en nuttige funksie van net die web en HTTP. As die eindgebruiker soos Facebook wil my om te bly op die veilige weergawe van hul webwerf, groot. Hulle sal lei my vir myself. En so ek het nie eens dink. Maar wat as tussen punt A en B, tussen jou en Facebook, daar is 'n paar slegte ou, daar is 'n paar stelsel administrateur by Harvard wat is nuuskierig om te sien wat jou vriende is. Of is daar 'n paar - jaar gelede, is hierdie gebruik te klink mal - maar daar is 'n paar regering entiteit soos die NSA wat eintlik belangstel in wie jy skeer op Facebook. Waar is die geleentheid daar? Wel, so lank as wat iemand het genoeg tegniese vaardig en hulle toegang om jou werklike netwerk oor Wi-Fi of 'n fisiese draad, Wat kan hulle doen? Wel, as hulle op dieselfde netwerk as jy en hulle weet iets oor TCP / IP en IP adresse en DNS en hoe al wat werk, wat as dit man in die middel, wat as dit Nasionale Security Agency, wat dit ook al mag wees, maar wat as daardie entiteit eenvoudig reageer vinniger as Facebook te jou HTTP versoek en sê: O ja, ek is Facebook. Gaan voort, en hier is die HTML vir facebook.com. Rekenaars is pretty darn vinnig. So kan jy 'n program skryf wat op 'n bediener soos nsa.gov dat wanneer dit hoor 'n versoek van u vir facebook.com, baie vinnig agter die tonele kry die werklike facebook.com maak 'n perfek [? esque?] veilige SSL-verbinding tussen die NSA en tussen Facebook, om daardie HTML baie veilig vir die aanteken bladsy, en dan die NSA bediener reageer net vir jou met 'n login bladsy vir facebook.com. Nou hoeveel van julle sou selfs kennisgewing dat jy met behulp van Facebook oor HTTP nog steeds op daardie punt, want jy het per ongeluk gekoppel aan nsa.gov en nie Facebook? Die URL's nie verander. Al hierdie dinge word gedoen agter die skerms. Maar die meeste van ons, myself ingesluit, sou waarskynlik nie agterkom so 'n klein detail. So kan jy dalk 'n volkome werkbare verband tussen jou en wat jy dink is Facebook, maar daar is 'n sogenaamde man in die middel. En dit is 'n algemene term vir die mens in die middel aanval waar jy 'n paar entiteit tussen jou en punt B wat een of ander manier te manipuleer, steel, of kyk na jou data. So selfs SSL is nie betroubaar nie, veral as jy is om die bos gelei in nie draai dit op as gevolg van hoe hierdie onderliggende meganismes eintlik werk. So 'n les vandag is dan ook as jy regtig wil wees paranoïes - en selfs hier is daar dreigemente - jy moet regtig begin om in die gewoonte om te tik in https://www watter domein naam wat jy eintlik omgee. En as 'n ter syde te daar is nog 'n bedreiging met betrekking tot sessie kaping. Baie dikwels wanneer jy die eerste keer na 'n webwerf soos facebook.com, tensy die bediener is ingestel om te sê dat dat die hand stempel sit dit op jou gister moet verseker word self, jou leser kan baie goed, op besoek dinge soos facebook.com google.com, twitter.com, die leser dalk word die aanbieding van die hand stempel net word geklap af en sê, nee. Gebruik SSL. Maar dit is te laat om by daardie punt. As jy reeds gestuur om jou hand stempel, jou koekie, in die helder met geen SSL, jy het 'n split sekonde kwesbaarheid waar iemand snuif jou verkeer, of kamermaat of NSA, kan gebruik dan dieselfde koekie, en met 'n bietjie van die tegniese vaardig, bied dit as sy of haar eie. Nog 'n aanval mag nie gedink het oor. Dit is regtig op jou as jy skroef hierdie up in die skryf van 'n webwerf wat een of ander manier gebruik SQL. So hier is, byvoorbeeld, is 'n skerm geskiet van Harvard se aanteken. En dit is 'n algemene voorbeeld van iets met 'n gebruikersnaam en wagwoord. Super algemeen. So laat ons aanvaar dat SSL bestaan ​​en daar is geen man in die middel-of iets soos dit. Nou is ons fokus op die bediener se kode wat jy kan skryf. Wel, as ek tik in 'n gebruikersnaam en wagwoord, veronderstel dat die PIN-diens geïmplementeer word in PHP. En jy kan 'n paar kode op die bediener soos hierdie. Kry die gebruiker naam van die post super globale en kry die wagwoord, en dan as hulle met behulp van 'n paar pset7 soos kode is daar 'n navraag funksie wat kan dit doen. Kies Star van die gebruikers waar gebruikersnaam gelyk dat wagwoord gelyk nie. Dit lyk met die eerste oogopslag, heeltemal redelike. Dit is sintakties geldige PHP-kode. Logies daar is niks verkeerd met hierdie. Vermoedelik is daar 'n paar meer lyne wat eintlik iets te doen met die gevolg dat kom terug uit die databasis. Maar dit is kwesbaar vir die volgende rede. Let daarop dat, soos 'n goeie burger, Ek het in aanhalings, enkele aanhalings, die gebruiker se naam. En ek het in 'n enkele aanhalings die wagwoord. En dit is 'n goeie ding, want hulle is nie veronderstel is om te wees nommers. Tipies hulle gaan wees teks. So ek haal hulle soos snare. En as ek nou verder wat as bevorder - en ek verwyder, die koeëls van die PIN-diens tydelik - Wat as ek probeer om aan te meld as President [? Scroob?] maar ek sê dat my wagwoord 12345 'OR '1' = '1, en kennis wat ek nie gedoen het nie. Ek het nie die ander enkele aanhaling. Want ek is mooi skerp hier as die slegte ou. En ek neem aan hulle is jy nie baie goed met jou PHP en MySQL-kode. Ek vermoed dat jy nie die kontrolering vir die teenwoordigheid van aanhalings. So, wat nou net gebeur het, is dat wanneer jou gebruiker getik het in daardie string, die navraag jy oor om te skep lyk. En 'n lang storie kort te maak, as jy en saam iets vir jou of iets saam dit gaan om terug te keer 'n ry van die databasis. Want dit is altyd die geval dat 1 is gelyk aan 1. En net omdat jy nie verwag dat jou gebruikers, goed of sleg, mag het 'n toespraak in hul naam wat jy het 'n SQL navraag wat nog geldig is, sal terugkeer en nou meer resultate as jy dalk bedoel het. En so het hierdie slegte man het nou potensieel aangemeld is jou bediener omdat jou databasis terugkeer 'n ry selfs al is hy of sy het geen idee wat [? Scroob se] werklike? Wagwoord is. Ag, het ek besef 'n tikfout hier. Ek moet sê het gelyk wagwoord 12345 soos die vorige voorbeeld of 1 is gelyk aan 1. Ek sal regmaak wat aanlyn. So hoekom het ons gebruik jy die navraag funksie met vraagtekens? Een van die dinge wat die navraag funksie nie vir jou is dit seker maak dat as jy slaag in argumente na die kommas hier soos hierdie dat die navraag dit is eintlik gestuur word aan die databasis lyk. Daar is baie minder mooi om na te kyk nie, maar terug houe is outomaties ingevoeg om presies dit te vermy inspuiting aanval dat ek het 'n oomblik gelede. Nou 'n prettige Kletskerk dat ek gedink ek wil trek hier wat hopelik behoort nou 'n bietjie meer verstaanbaar is hierdie een hier. 'N bietjie? Miskien moet ons 'n bietjie meer bespreking op daardie. So dit verwys na 'n klein kind die naam Bobby wat een of ander manier geneem voordeel van 'n webwerf wat net vertrou dat dit wat die gebruiker getik in is nie, in werklikheid, SQL-kode, maar is in werklikheid 'n string. Nou kan jy onthou dat drop - Jy kan gesien het hierdie - drop middel verwyder 'n tafel, verwyder 'n databasis. So as jy in wese daarop aanspraak maak dat jou naam is Robert "; droptabl estudentsomething,] jy kan baie goed mislei die databasis nie net in seker te maak dat jy inderdaad Robert, maar ook kommapunt voortgaan om die tafel te laat val. En so SQL-inspuiting aanvalle kan eintlik as 'n bedreiging, aangesien dit waardeur jy kan verwyder iemand se data, jy kan kies meer data wat as bedoel is, kan jy voeg of te verander data. En jy kan eintlik sien dit op te huis oefening, nie vir kwaadwillige doeleindes, maar net vir die onderrig, is enige tyd wat jy gevra om aan te meld in die webwerf, veral 'n soort van nie baie openbare, baie gewild webwerf, probeer om aan te meld as John O'Reilly of iemand met 'n afkappingsteken in hul naam. Of letterlik net tik toespraak, getref Gee, en kyk wat gebeur. En al te dikwels is tragies, mense het nie gesteriliseer hul insette en het seker gemaak dat dinge soos aanhalings of kommapunte oorgebly het. Wat is die rede waarom in pset7 ons gee jy hierdie navraag funksie. Maar nie onder waardeer presies wat dit vir jou doen. So met wat gesê het, geniet die gebruik van die web hierdie week. En ons sal sien dat jy op Maandag. By die volgende CD50. [MUSIEK]