[MUZIEK] DAVID J. Malan: Oke. Dus dit is CS50 en dit het einde van week 10. Dus sommige van jullie dit misschien gezien hebben al, maar worden verspreid van laat is een artikel dat ik dacht dat ik had gelezen een stukje uit en dan laten zien een drie minuten durende video die schildert hetzelfde beeld. Het was echt een ontroerend verhaal, ik dacht van dit kruispunt van de echte wereld met echt overtuigend gebruik van technologie. Zodat het artikel was getiteld, "Een jongen oversleeps op de trein, maakt gebruik van Google Maps naar familie 25 jaar later vinden. "En de eerste paar alinea's waren, "Toen Saroo vijf jaar oud was ging hij met zijn oudere broer te bietsen voor veranderen op een passagierstrein in een stad ongeveer twee uur van zijn woonplaats. Saroo moe werd en sprong op een nabijgelegen trein waar hij dacht dat zijn broer was, dan viel in slaap. Toen hij wakker werd was hij in Calcutta, bijna 900 mijl afstand. Saroo probeerde zijn weg te vinden terug, maar hij wist niet de naam van zijn geboortestad. En als een klein ongeletterde jongen in een uitgestrekt stad vol vergeten kinderen hij had vrijwel geen kans op het krijgen van thuis. Hij was een straatkind voor een tijdje totdat een lokaal adoptiebureau verslaafd hem met een Australisch koppel die hem aan gebracht wonen in Hobart, Tasmanië. Saroo verhuisde, leerde Engels, en opgegroeid. Maar hij nooit gestopt op zoek naar zijn familie en zijn geboortestad. Decennia later, ontdekte hij Google Aarde en volgde het spoor sporen. En geeft zichzelf een voorgeschreven radius gebaseerd op hoe lang hij dacht dat hij was slaap en hoe snel dacht dat hij de trein ging, wist hij dat hij was opgegroeid in een warm klimaat, wist hij dat hij sprak Hindi als een kind, en hij was verteld dat hij zag eruit alsof hij was uit Oost-Indië. Eindelijk, na jaren van schuren de satelliet foto's, hij herkende een paar monumenten. En na het chatten met een beheerder van een nabijgelegen stad Facebook-pagina, besefte hij hij had thuis gevonden. " Dus hier is dan de video vertellen dat verhaal vanuit zijn perspectief. [VIDEO AFSPELEN] -Het was 26 jaar geleden en ik was gewoon over te schakelen vijf. We kregen aan het station en We stapten een trein samen. Mijn broer zei net dat ik blijf hier en ik kom terug. En ik dacht, nou, weet je, ik kan net zo goed gewoon gaan slapen en dan zal hij me gewoon wakker. En als ik wakker word de volgende dag, de hele wagen was leeg op een op hol geslagen trein, een spooktrein nemen me Ik weet niet waar. Ik werd aangenomen naar Australië een Australische familie. En Mam had mijn kamer met versierde de kaart van India, die ze zet naast mijn bed. Ik werd wakker elke ochtend te zien dat de kaart, en dus het soort hield de herinneringen levend. Mensen zouden zeggen, je probeert te vinden van een naald in een hooiberg. Saroo, je zult het nooit vinden. Ik zou flitsen van de plaatsen die moeten Ik gebruikte om te gaan, de flitsen van de gezichten van mijn familie. Er was het beeld van mijn moeder zitten neer met haar benen gekruist gewoon kijken naar haar huilen. Het leven is net zo moeilijk. Dat was mijn schat. En ik was op zoek in Google Map en realiseerde er is Google Earth ook. In een wereld waar je kan inzoomen op I begon al deze gedachten en wat mogelijkheden die dit kon doen voor mij. Ik zei tegen mezelf, nou ja, je weet wel, je hebt alle fotografische herinneringen en monumenten waar je bent uit en je weet wat de stad eruit ziet. Dit zou een toepassing kunnen zijn dat u kunt gebruiken om je weg terug te vinden. Ik dacht, nou, ik zal een punt op Calcutta treinstation in een straal lijn die je moet zoeken rond dit gebied. Ik kwam deze treinsporen. En ik begon na het en ik kwam tot een treinstation dat het gevolg van de hetzelfde beeld dat was in mijn herinneringen. Alles op elkaar afgestemd. Ik dacht, yep. Ik weet waar ik heen ga. Ik ben gewoon gaan om een ​​plan te laten dat ik heb in mijn hoofd om me te leiden en mij terug naar mijn woonplaats. Ik kwam aan de deur van het huis dat ik ben geboren en liep rond ongeveer vijftien meter om de hoek. Er werd drie dames die buiten naast elkaar. En de middelste stapte naar voren. En ik dacht, dit is je moeder. Ze kwam naar voren, ze omhelsde me, en we waren er voor ongeveer vijf minuten. Ze pakte mijn hand en ze nam me mee naar het huis en kreeg aan de telefoon en ze belde mijn zus en mijn broer om te zeggen dat je broer heeft net al het plotseling verscheen als een geest. En toen de familie was weer herenigd. Alles is al goed. Ik help mijn moeder uit. Ze hoeft niet weg te zwoegen. Ze kan de rest van leiden haar leven in vrede. Het was een naald in een hooiberg, maar de naald was er. Alles is er. Alles wat we hebben in de wereld is de kraan van een knop. Maar je moet de wil hebben en de vastberadenheid om het te willen. [END VIDEO AFSPELEN] Dus een heel lief verhaal. En het eigenlijk doet me denken aan een heel onderwerp dat is al het krijgen van heel wat van de aandacht van laat in The Crimson, meer nationaal in het algemeen. Vooral als MOOCs nemen het stadium van de late. MOOCs dat deze enorme en geopend online cursussen waarvan CS50 is een. En mensen praten over hoe, voor Zo, de geesteswetenschappen zijn niet echt inhalen of zijn lang niet zo in de mode als ze ooit waren. En ik wil jullie aanmoedigen, veel als Jonathan deed op maandag, om na te denken ongeveer zoals u afrit 50, en we weten al ongeveer 50% van je wil niet verder naar een andere computer over te nemen wetenschap natuurlijk, en dat is helemaal fijn en verwacht. Omdat een van de overkoepelende doelstellingen van een klasse als dit is echt te machtigen jullie met slechts een inzicht in hoe al deze spullen werkt en hoe deze wereld technologie werken. Zodat wanneer je terug bent in uw eigen werelden, of het nu pre-med of of het nu de geesteswetenschappen of de sociale wetenschappen of een ander veld geheel, dat jullie brengen enkele technische savvy om de tafel en helpen om slimme beslissingen te nemen bij het gaat om het gebruik en invoering van de technologie in uw wereld. Zo moest ik denken aan de late Ook twee van de undergraduate klassen Ik nam twee jaar geleden, die waren dergelijke eenvoudige technologiegebruik maar ooit zo overtuigend. Eerste nachten met professor Tom Kelly als je de klas hebt genomen. Het is een les over klassieke muziek op dit stadium hier waar je leert een beetje iets over muziek. Het is eigenlijk de eerste nachten dat CS50 leende het idee van de tracks voor die minder comfortabel tussen en comfortabeler. In mijn tijd hadden ze verschillende tracks voor kinderen met absoluut geen muziek ervaren zoals ik, en dan kinderen die was het uitvoeren aangezien ze waren vijf jaar oud. En die klasse, bijvoorbeeld, had net een website zoals de meeste andere, maar het was een website die toegestaan ​​u muziek ontdekken op en af ​​te spelen muzikale clips uit de klas, van het web, en gewoon gebruik maken van technologie in een zeer naadloze manier. Een andere klasse jaren later dat ik gecontroleerd, in wezen, in grad school, Anthro 1010, Inleiding tot de archeologie hier. Het was geweldig. En een van de meest dwingende nog super duidelijk, achteraf gezien, maakt gebruik van software was dat de professoren in die klasse Google Earth gebruikt. We waren aan de overkant zitten in sommige collegezaal. En je kon niet reizen, bijvoorbeeld, naar het Midden-Oosten aan de graven die ene van de hoogleraren net terug op was gekomen, maar we konden dat vrijwel doen door rondvliegen in Google Earth en kijken naar een vogelperspectief bij de graven terrein hij net terug was van een week geleden. Dus zou ik jullie aanmoedigen, met name in de geesteswetenschappen, om te gaan terug naar die departementen na deze klasse brengen van uw laatste projecten met u of ideeën van je eigen, en zie precies wat je kunt doen om uw bezielen eigen velden in geesteswetenschappen of daarbuiten met een beetje van dit soort ding dat we hebben onderzocht hier in CS50. Dus met dat beeld geschilderd, dacht we zouden proberen om twee dingen te pakken vandaag. , Probeer je een gevoel van geven waar u kunt gaan na 50. En in het bijzonder, als je ervoor kiest om aanpakken van een web-based project is ongelooflijk vaak, hoe je kunt gaan over opstijgen al CS50's zijwieltjes en gaan daar op je eigen en niet hoeft te rekenen op een PDF of een specificatie van een pset? Niet hoeft te rekenen op een CS50 apparaat niet meer. Maar kan je echt trek up aan je laarzen. Met dat gezegd, C-gebaseerd finale projecten zijn welkom. Dingen die de standaard gebruikt voor een draagbare bibliotheek graphics zijn welkom. We weten gewoon dat statistisch gezien veel mensen afbijten projecten in PHP en Python en Ruby en MySQL en andere omgevingen, dus we zullen vooringenomenheid aantal van onze opmerkingen in de richting van dat. Maar een snelle blik terug. Dus namen we voor lief in pset7 de feit dat $ _SESSION bestond. Dit was een super globaal, wereldwijd, associatieve array. En wat betekent dit laten doen? Functioneel, wat is de over dit geeft ons? Yeah? Naar ID van de gebruiker te volgen. En waarom is dit nuttig? Om te kunnen naar binnen slaan van deze super wereldwijde JHarvard of [? Scroobs?] of Malan's gebruikers-ID, toen hij of zij een site bezoeken. Precies. Dus je hoeft niet in te loggen in opnieuw en opnieuw. Het zou een echt lame world wide web te zijn Als elke keer dat je een link hebt geklikt op een site als Facebook of elke keer U klikte op een e-mail in Gmail je moest opnieuw authenticeren om te bewijzen dat het is nog steeds jij en niet je huisgenoot die zou hebben liep naar uw computer in uw afwezigheid. Dus gebruiken we SESSION om gewoon herinneren wie je bent. En hoe wordt dit geïmplementeerd onder de motorkap? Hoe werkt een website die gebruik maakt van de protocol dat webbrowsers en servers spreken, hoe werkt HTTP, dat is een stateless protocol, laten we zeggen. En door staatloze Ik bedoel, als je eenmaal verbinding met een website, download een aantal HTMLs, sommige JavaScript, sommige CSS, uw icon browser stopt met draaien. U hoeft niet een constante verbinding hebben naar de server meestal. Dat is het. Er is geen toestand gehandhaafd voortdurend. Dus hoe is SESSION uitgevoerd op een manier dat iedere keer dat je een bezoek aan een nieuwe pagina, de website onthoudt wie je bent? Wat is de onderliggende implementatie detail? Schreeuw het uit. Het is een woord. Cookies. Oke. Dus cookies. Nou ja, hoe worden cookies gebruikt? We zullen zich herinneren dat een cookie is algemeen gewoon een stukje informatie. En het is vaak een grote willekeurige nummer, maar niet altijd. En een koekje is geplant op uw harde schijf of in het RAM van uw computer, zodat dat elke keer als je dat zelfde opnieuw website, uw browser herinnert de server, Ik ben gebruiker 1234567. Ik ben gebruiker 1234567. En zolang de server heeft onthouden die gebruiker 1234567 is JHarvard, zal de website gewoon aannemen dat je bent wie je zegt te zijn. En herinneren dat we presenteren deze cookies soort in de vorm van een virtuele handtribune. Het is in de HTTP-headers gestuurd gewoon om herinneren aan de server die je bent wie het denkt dat je bent. Natuurlijk, er is een bedreiging. Welke dreiging gaat deze opent ons tot wanneer we zijn wezen met een soort van een club of een pretpark mechanisme voor het herinneren wie we zijn? Als je iemands koekje kopiëren en kapen hun sessie, om zo te zeggen, u kan doen als iemand anders en het zijn website het meest waarschijnlijk is gewoon te geloof je. Dus we zullen terugkomen naar dat. Omdat de andere thema voor vandaag voorbij empowerment 'is ook praten over de zeer enge wereld waarin we leven en hoe veel van wat je doet op het web, hoeveel van wat je nog doet op uw mobiele telefoons vandaag de dag kan worden echt bijgehouden door iedereen tussen u en punt B. En Ajax, terugroepen. We keken slechts kort op dit, hoewel u al gebruik van het indirect in pset8 want je gebruikt Google Maps en omdat je met behulp van Google Earth. Google Maps en Google Earth niet downloaden de hele wereld aan uw desktop, uiteraard, de moment dat u laadt pset8. Het downloadt slechts een plein van de wereld of een groter plein van de aarde. En dan elke keer dat je soort van sturen buiten bereik je misschien opmerken - vooral als op een trage verbinding - u zou kunnen zien wat grijze voor een moment of een beetje van vage beelden als de computer downloads meer van dergelijke tegels, meer van dergelijke beelden uit de wereld of de aarde. En Ajax is over het algemeen de techniek door die websites die aan het doen zijn. Zodra je meer van de kaart, uw browser gaat naar Ajax, dat is gebruikt niet zelf een taal of technologie, het is gewoon een techniek. Het is het gebruik van JavaScript te gaan halen meer informatie van een server die maakt uw browser te gaan halen wat er aan het oosten of wat er aan de westkant van wat er momenteel anders wordt in genoemde map. Dus dit is een onderwerp dat veel van jullie zal direct of tegenkomen indirect via afstudeeropdrachten als u kiezen voor iets dat te maken dezelfde dynamiek die de trekken van gegevens van enkele website van derden. Dus we hebben een echt spannend volgende week woensdag vooruit. Quiz ene, de inlichtingen waarvoor is op CS50.net reeds. Weet dat er een review sessie zal deze komende maandag om 05:30. De datum en tijd is al gepost op CS50.net in die Over sheet. En laat het ons weten dat u Voor vragen. Pset8 ondertussen al in uw handen. En laat ik alleen betrekking hebben op een FAQ om mensen te redden wat stress. Voor het grootste deel veel van de chatter we zien op kantooruren en veel de insecten zien we gerapporteerd over Discuss zijn inderdaad bugs in de code van een student. Maar als je iets bent tegengekomen zoals de Google Earth plug-in crasht of zelfs niet werken en je bent ervan overtuigd dat het je niet, het is niet een [? chamad?] kwestie, is geen bug je in de ingevoerde verdeelsleutel. Beseffen FYI - Dit is een soort van plan van Z - dat de laatste keer dat we dit probleem gebruikt ingesteld en we liepen tegen vergelijkbare kwesties, is er een regel code in service.js die in wezen is dit, dat zegt, zet gebouwen op. En ze werken rond de laatste keer dat we deed dit in, wederom, hoek gevallen waarin studenten kon gewoon niet de darn krijgen ding aan het werk is verandering true in false in die ene regel code. En u zult het vinden als je zoekt door service.js. Ik beveel dit niet omdat je wil maken van de meest dorre landschap van Cambridge, Massachusetts. Dit zal letterlijk plat uw wereld zodat alles wat je ziet zijn het onderwijs bursalen en natuurlijk assistenten op de horizon en geen gebouwen. Maar realiseren om welke reden de Google Earth plug-in lijkt nog steeds te zijn buggy een jaar later, dus deze misschien wel uw fail slaan. Dus in plaats van toevlucht te nemen tot tranen, toevlucht te draaien van gebouwen af ​​als je weet het is de plug-in die niet is samenwerken op je Mac of pc. Maar, dit is weer laatste redmiddel als weet je zeker dat het niet een bug. Dus de Hackathon. Een paar teasers net om u enthousiast te krijgen. We hadden een flink aantal RSVPs. En alleen maar om een ​​beeld van wat verf wacht, ik dacht dat ik je een paar geven seconden herinneren van deze beelden van vorig jaar. [MUZIEK] DAVID J. Malan: Wacht, oh. We hebben zelfs onze letterlijke CS50 shuttles. [MUZIEK] DAVID J. Malan: Dus dat is wat wacht u in termen van de Hackathon. En dit zal een gelegenheid zijn, om duidelijk zijn, niet om te beginnen met uw laatste projecten, maar te blijven werken aan je laatste projecten naast klasgenoten en personeel en veel eten. En nogmaals, als je wakker bent om 05:00 we brengen je op de weg naar IHOP. De CS50 beurs, ondertussen, is de climax voor de hele klas, waar je zult breng je laptops en vrienden, misschien zelfs familie naar een kamer op de campus in de straat aan uw projecten tentoon op laptops, op hoge tafels als deze met veel eten en vrienden en muziek op de achtergrond, evenals onze vrienden uit de industrie. Bedrijven als Facebook en Microsoft en Google en Amazon en trossen van anderen, zodat als belanghebbende in slechts horen over de echte wereld of chatten met mensen over de echte wereld stage of full-time mogelijkheden, weten dat sommige van onze vrienden uit de industrie zal er zijn. En een paar foto's die we kunnen verf zijn hier als volgt. [MUZIEK] DAVID J. Malan: Oke. Dus dat is dan de CS50 beurs. Dus laten we nu overgaan tot een verhaal te vertellen die echt je hopelijk zal machtigen voor zaken als de definitieve projecten. Dus een van de weinige kleine dingen om zaad uw geest, hetzij voor afstudeeropdrachten of gewoon meer in het algemeen voor projecten die je zou besluiten om te pakken na de cursus, deze zijn allemaal gedocumenteerd op manual.cs50.net waar de CS50 handleiding, waar we veel technieken gedocumenteerd. En dit is slechts korte notatie voor zeggen dat er in de wereld dingen geroepen SMS naar e-mail gateways, dat is een mooie manier om zeggen, is er servers in de wereld die weet hoe je e-mails om te zetten in tekstberichten. Dus als je laatste project dat u wilt om een ​​soort van mobiele thema maken dienst die u toelaat om vrienden te waarschuwen of gebruikers om gebeurtenissen op de campus of wat er wordt geserveerd in de D Hall die nacht of een dergelijke waarschuwing functie, weten dat het eenvoudig als het versturen van een email als met PHPMailer die u zou hebben gebruikt voor pset7 of we zagen kort een week of zo geleden, te adressen als deze. En in feite kun je tekst deze veronderstelling je vriend heeft een onbeperkt sms'en plan en u niet wilt op te laden $ 0,10. Maar als je een e-mail naar uw vriend wie je kent om Verizon hebben of AT & T met Gmail en gewoon op te sturen hun telefoonnummer op, ongeacht de subdomein er is, besef je zal een tekstbericht te verzenden. Maar dit is een van die dingen om voorzichtig te zijn van. Als je troll door CS50 van vorig jaar video Ik denk dat het was, een gruwelijke, gruwelijke, gruwelijke bug schreef ik in code belandde het verzenden ongeveer 20.000 tekst boodschappen leven om onze studenten in de klas. En alleen omdat iemand opgevallen dat ze kregen meerdere tekst berichten van mij had ik het middelen om controle C snel geraakt en stoppen met dat proces. Controle C, u herinnert, is je vriend in gevallen van oneindige lus. Dus pas op de macht die we net hebben gegeven aan u liever onverantwoord, de meeste waarschijnlijk, gebaseerd op mijn eigen ervaring. Maar dat is op het web en heeft er al enige tijd. Oke. Zo textmarks.com. Dus dit is een website. En er is trossen van anderen die er zo goed dat we eigenlijk hebben gebruikt als een klasse voor de komende jaren te kunnen om tekstberichten te ontvangen. Helaas, het verzenden van SMS-berichten is eenvoudig als het verzenden van e-mails als dat. Het ontvangen is een beetje moeilijker, vooral als je wilt een van hebben die sexy korte codes dat is alleen vijf of zes cijfers lang. Dus bijvoorbeeld, jarenlang u geweest in staat om een ​​SMS-bericht - en je kan proberen dit ook - naar 41.411. En dat is het telefoonnummer voor dit opstarten. En als je een bericht sturen naar 41411 - Ik schrijf het hier, dus 41.411 - en vervolgens een bericht sturen graag SBOY voor Shuttle Boy. En typ in iets zoals mather quad. Dus u dat tekstbericht verzenden naar dat nummer. Binnen een paar seconden je moet terug te krijgen een reactie van de CS50 Shuttle Jongen service, dat is de shuttle scheduling software die we hebben gehad op er op het web voor bepaalde tijd. En het zal reageren u via sms. Want wat we hebben gedaan als een klasse, zoals een programmeur is om software te schrijven, geconfigureerde onze gratis account met tekst merken te luisteren voor tekstberichten verzonden te SBOY op dat nummer. En wat ze doen is naar voren die tekst berichten naar onze PHP-gebaseerde website als HTTP parameters zeggen, hier. Deze gebruiker met dit telefoonnummer stuurde u dit SMS-bericht. Doe ermee wat je wilt. Dus schreven we wat software die op het ontvangen van een string als SBOY mather quad, ontleden we het. We achterhalen waar de ruimtes zijn tussen de woorden. En wij als een klasse te beslissen hoe te reageren op dat. En als je dat nu proberen, bijvoorbeeld, je moet zien, via antwoord binnen een enkele seconden, de komende paar shuttles gaan van mather naar de quad indien van toepassing. En er is andere haltes. U kunt typen in Boylston of andere dergelijke stopt op de campus, en het moet herkennen die woorden. Zo parse.com. Dit is een andere dienst die we ooit geweest ben wijzend sommige studenten op voor afstudeerprojecten dat is prachtig in dat het gratis is voor een redelijke mate van gebruik. En als ik naar parse.com je zult zien dat dit een alternatief eigenlijk hebben van iets als uw eigen MySQL database. En eerlijk gezegd, het is gewoon soort fascinerend. Dit is wat er in de wolk zelfs op een bewolkte dag. Dus parse.com kunt u een doen stelletje interessante dingen. En er is andere alternatieven deze die er zijn. Bijvoorbeeld, kunt u ze gebruiken als uw back-end database. Dus je hoeft niet te hebben een web hosting bedrijf. U hoeft niet te hebben een MySQL database. U kunt in plaats daarvan gebruik maken van hun back-end. Als je doet een mobiel project voor Android of iOS of dergelijke, dat bestaat er dingen zoals push-diensten dus je kunt waarschuwingen door aan uw vrienden of uw gebruikers 'home screens. En dan een heleboel andere functies ook. Dus als je interesse hebt, kijk dan op deze websites en websites als ze om te zien hoe veel andere volkeren ' schouders kun je staan ​​op te maken echt cool software van je eigen. Nu in termen van authenticatie, een FAQ, is hoe doe je dat eigenlijk garanderen dat uw gebruikers zijn mensen op de campus, Harvard studenten of docenten of medewerkers? Dus CS50 heeft zijn eigen authenticatie service genaamd CS50 ID. Ga naar die URL en je kunt je beperken website voor iedereen met een Harvard ID, bijvoorbeeld. Dus weten dat we aankunnen dat. Jullie moet niet in het bedrijfsleven te zeggen, wat is je Harvard ID? Wat is je Harvard pincode? Laat me nu iets mee doen. Zullen we dat allemaal doen. En wat wij bellen u terug te geven is iemands naam en e-mailadres, maar niets gevoelig. Een app op een mobiel apparaat, kan het zijn gemaakt om te werken op een mobiel apparaat, maar het is niet helemaal voor gemaakt. Dus je zult uiteindelijk de uitgaven een niet triviale hoeveelheid tijd te doen. Dus ik zou ontmoedigen die route voor nu. Dit is echt bedoeld voor web-based applicaties. Dus webhosting. Dus als je nog niet gezien op de cursus homepage - en hier is waar we een verhaal zullen beginnen - web hosting is alles over het betalen voor meestal een dienst, host een server in eigendom door iemand anders op het web die een heeft IP-adres, en je zet dan je website op. En ze geven je email meestal accounts en databases en andere dergelijke functies. Weet dat als je niet wilt eigenlijk betalen voor een dergelijke, naar die URL daar en CS50 heeft eigenlijk een non-profit account die u kunt gebruiken om eigenlijk niet http://project binnenkant van het apparaat voor je afstudeerproject. Als je eigenlijk wilt dat het iets zijn zoals, isawyouharvard.com, kunt u die domeinnaam te kopen - hoewel niet die ene - en dan kunt u gaan over het hosten van het op een openbare webserver zoals wij kunnen bieden jullie hier doorheen. En in feite als onbekende, Als je nog nooit in geweest isawyouharvard.com, een, ga daar. Maar twee, weet dat dat was een jonge naam van de vrouw door Tej Om Toor Too twee jaar geleden, drie jaar geleden, die was een CS50 alumni die een dag of twee gebeurd voordat de CS50 beurs stuurde een e-mail naar haar huis mailinglijst en voila. Twee dagen later door de CS50 beurs, had ze honderden gebruikers al kruipend op elkaar op haar website en zeggen hoe ze hadden gezien hem of haar op de campus. Dus dat is een van CS50's favoriete succesverhalen van een CS50 afstudeerproject. Dus hoe ga je over het zetten van een website als dat op het internet? Nou, er is een paar van zulke ingrediënten hier. Dus een, moet je een domeinnaam te kopen. Er zijn trossen van plaatsen in de wereld van waaruit u kunt koop een domeinnaam. En bijvoorbeeld een dat we raden alleen omdat het populair en het is goedkoop heet namecheap.com. Maar je kunt godaddy.com gaan en tientallen anderen die er zijn. U kunt lezen op beoordelingen. Maar voor het grootste deel doet het niet uit van wie u koop een domeinnaam. En ze variëren in prijs en ze variëren in achtervoegsel. De achtervoegsels zoals. Com,. Net, . Org,. Io,. Tv, die eigenlijk variëren in prijs. Maar als we wilden iets doen als cats.com we kunnen gaan naar deze website, klik op Zoeken. Vermoedelijk deze is genomen. Maar blijkbaar, catsagainst.com beschikbaar. pluscats.com beschikbaar. Lovecats, catscorner, dampcats.net. Dit alles hopelijk pseudo willekeurig gegenereerd. Als u wilt cats.pw, $ 1500 alleen, dat is een beetje gek. Dus iemand heeft echt griste alle de kat gerelateerde domeinnamen hier voor variërende prijzen. Even terzijde, laten we eens kijken. Wie heeft cats.com? Weet dat jullie nog bij uw beschikking vrij geavanceerde commando's nu. Zoals ik letterlijk kan typen wie is cats.com? En vanwege de manier waarop het internet is gestructureerd je daadwerkelijk kunt zien wie heeft dit geregistreerd. Blijkbaar is deze persoon is [onverstaanbaar] het gebruik van een proxy-dienst. Dus wie is eigenaar cats.com niet wil de wereld om te weten wie ze zijn. Dus hebben ze geregistreerd als door wat willekeurige privacy service. Maar soms moet je eigenlijk krijg werkelijke eigenaars. En dit is te zeggen, vooral als je het nastreven van een aantal opstarten en je echt willen sommige domeinnaam en je bent bereid zijn om iemand anders te betalen voor het, kunt u uitzoeken contact informatie op die manier. Maar ook interessant is dit. Laat me scrollen tot dit gedeelte. Dus dit is dezelfde uitgang. En dit is gewoon smakeloos. Dus blijkbaar cats.com kan van jou voor de juiste prijs. Maar wat is interessant hier is dat de nameservers - Dit is totale misbruik van wat een naam server hoort te zijn - je naam server wordt niet verondersteld te worden thisdomainforsale.com. - Als we echt iets als kiezen laten we iets meer te kiezen legitiem ziet, wie is google.com, en scroll hier boven. Dus hier - wat daar gebeurde? Interessant. Voorbij die is - laten we het meer low key. Wie is mit.edu? OK. Dit is nuttig. Dus dit is wat ik hoopte. Rechtmatig gebruik van de DNS-service. Nameservers hier aangeven de volgende. Dit is MIT's manier om te zeggen, wanneer iemand in de wereld, waar ze ook zijn, vormen in mit.edu en klappen Enter, je laptop, of Mac of pc, zal een of andere manier uiteindelijk erachter te komen dat de mensen in de wereld die weten wat de IP adres voor mit.edu of een van de subdomeinen bij mit.edu of een van Deze servers hier - en het eigenlijk lijkt MITs infrastructuur is vrij robuust zoals je zou verwachten. Ze hebben meerdere namen servers wat goed is voor redundantie. En in feite, ze lijken te globaal zijn verspreid over de hele wereld. Een stelletje van die lijken te zijn in de VS, een paar in Azië, een in Europa, twee in ergens anders. Maar het punt is hier dat DNS dat hebben we zo vanzelfsprekend en algemeen beschreven als een grote Excel-tabel dat IP-adressen en domein namen is eigenlijk vrij gesofisticeerde hiërarchische dienst, zodat in de wereld is er eigenlijk een eindig aantal van servers die in wezen weten waar alle. com zijn of alle de. netten zijn alle . Orgs zijn, enzovoort. Dus als je gaat door en koop een domeinnaam naam van een plek als Naam goedkoop of Go Daddy of enige andere website, een van de belangrijkste stappen die je zult moeten doen je, als je dit doet, zelfs voor uw finale project, is het vertellen van de registrar van wie je koopt het domein naam, die in de wereld weet je IP-adressen van website's, die uw naam-servers zijn. Dus als u gebruikt, bijvoorbeeld CS50's hosting account - we toevallig hebben dit account via dreamhost.com die een populaire web hosting bedrijf - ze zullen je vertellen dat je moet kopen uw domein en de wereld vertellen dat naamserver van uw domein is ns1.dreamhost.com, ns2.dreamhost.com, en ns3.dreamhost.com. Maar dat is het. Het kopen van een domeinnaam betekent dat ze het geld en het krijgen van de eigendom van de domein, maar het is meer als een verhuur wel. Je krijgt het voor een jaar en dan zijn ze bill u recurringly voor de rest van je leven tot je annuleert de domeinnaam. En dan moet je ze vertellen wie de nameservers zijn. Maar dan ben je klaar met uw registrar. En van daar u alleen zult interactie met uw web hosting bedrijf, dat in het geval CS50 zal zijn DreamHost. Maar nogmaals, zal meer documentatie worden verstrekt aan u als u besluit om te gaan die route. Dus als je dit doet na de cursus end, gewoon googlen web hosting bedrijf zal opduiken duizenden van opties. En ik zou u over het algemeen te stimuleren Vraag vrienden die zou gebruik hebben gemaakt van een bedrijf voordat indien zij aanbevelen hen en had een goede ervaring. Want er is een heleboel vliegen bij nacht web hosting bedrijven, als een man in zijn kelder met een server dat een IP-adres heeft. Hij heeft wat extra RAM-geheugen en de harde schijf ruimte en net verkoopt web hosting rekeningen ook al is er geen manier dat server kon honderden verwerken gebruikers of duizenden gebruikers. Dus realiseer je krijgt wat je betaalt voor. Voor een tijdje voor mijn persoonlijke homepage pagina - en dit was volledig aanvaardbaar want ik had, net als, twee bezoekers per maand - Ik was te betalen, als, $ 2,95 per maand. En ik ben er vrij zeker van dat het in iemands kelder. Maar nogmaals, je hoeft niet per se te krijgen geen garanties van uptime of schaalbaarheid. Dus nogmaals, bent u meestal op zoek op iets meer dan dat. Nou, hoe zit het met SSL? Dus wat is SSL wordt gebruikt voor? Laten we nu beginnen om te sturen in de aanwijzingen van de beveiliging en dingen die kan ons schaden. Vooral als je onderneming op uw eigen. Wat is SSL, of wat er SSL wordt gebruikt voor? Veiligheid, OK. Dus het wordt gebruikt voor de beveiliging. Wat betekent dat? Dus het staat voor Secure Sockets Layer. Wordt aangeduid door een URL dat begint met https://. Velen van ons hebben waarschijnlijk nog nooit getypt https://, maar je zult vaak zien dat uw browser worden doorgestuurd van HTTP naar HTTPS zodat alles er na versleuteld. FYI, met behulp van SSL vereist meestal dat je hebt een uniek IP-adres. En doorgaans naar een uniek IP-adres te krijgen je nodig hebt om een ​​web hosting te betalen bedrijf een paar euro meer per maand. Dus beseffen dat dit heel gemakkelijk door het kopen van een IP geïmplementeerd deze dagen adres en door te kopen wat is riep een SSL-certificaat. Maar beseffen dat het komt op een aantal extra kosten. En, zoals we zullen proberen bang te maken in slechts een beetje, het is niet eens per se 100% beschermend van wat het ook is je probeert te beschermen. Dus voor de veiligheid, zou ik dacht dat ik zou doe een soort van een willekeurige segue hier. Zoals u wellicht weet uit lezing CS50's video's, heeft onze productie-team is een fan zoals ik heb van het nemen van echt leuke fotografie van campus, en luchtfoto fotografie meest recent. Als je ooit kijk omhoog en zie je iets vliegen met een kleine camera, het kan eigenlijk wel CS50. En ik dacht dat ik zou minuut van delen een aantal van de beelden van het team heeft verzameld, met name als we kijken naar het tweede semester en volgend najaar. Als een van u een talent voor fotografie, videografie, zouden we liefde om je betrokken te raken achter de schermen. Maar meer op die details in een week. [MUZIEK] DAVID J. Malan: Blijkt dat er een midgetgolfbaan op de bovenkant van het stadion dat we nooit wisten. [MUZIEK] DAVID J. Malan: U kunt zien dat de schetsen van de drone daar. [MUZIEK] DAVID J. Malan: Het beste deel hier is, kijk naar de jogger aan de linkerkant. [MUZIEK] DAVID J. Malan: Een ander voorbeeld van wat je kunt doen met technologie die slechts oppervlakkig, eerlijk gezegd, betrekking tot beveiliging. Maar ik dacht dat een meer zou zijn leuke manier om gewoon te zeggen, beveiliging. Dus laten we kijken of we niet kunnen schrikken jullie nu niet alleen met een beetje een paar bedreigingen, maar ook een onderliggende begrip van wat deze bedreigingen worden zodat vooruit kunt beslissen hoe en of te verdedigen jezelf tegen deze dingen en bij minst bewust van hen te zijn als u beslissingen te nemen over het al dan niet om stuur die e-mail, al dan niet om in te loggen naar die website, al dan niet te Gebruik dat WiFi cyber cafe's punt, zodat je weet wat de bedreigingen zijn inderdaad om je heen. Dus Jonathan bedoeld iets zoals dit op maandag. Hij had een raam schermafdruk. Deze is van een Mac. Hoeveel van jullie ooit hebt geïnstalleerd software op je Mac of pc? Uiteraard iedereen. Hoeveel van jullie hebben veel aandacht besteed te typen in je wachtwoord wanneer daarom wordt gevraagd? Ik bedoel, zelfs ik niet, eerlijk gezegd. Dus een paar van ons zijn goed bij paranoïde. Maar overwegen wat je bent eigenlijk hier doen. Op een typische Mac of pc je hebt een beheerdersaccount. En meestal je bent de enige met een laptop op zijn minst deze dagen. Dus je account, Malan of JHarvard of wat het ook is, is het beheerdersaccount. En wat dat betekent is dat je hebt wortel toegang tot uw computer. U kunt alles wat je wilt installeren, alles wat je wilt verwijderen. En meestal deze dagen, vanwege gedateerde ontwerp beslissingen van jaren geleden, de manier waarop de meeste software wordt geïnstalleerd is als beheerder. En zelfs als je Mac of pc heeft ten minste gekregen slim genoeg over de jaar met de laatste incarnaties van Mac OS en Windows om niet je draaien gebruikersnaam standaard als de administrator, als je wat te downloaden nieuw programma uit het internet en proberen te installeren, ben je waarschijnlijk gaat worden gevraagd om uw wachtwoord. Maar de vangst is op dat punt, je bent letterlijk overhandigen de sleutels van uw computer dan naar wat willekeurige programma dat u zojuist hebt gedownload en waardoor het installeren wat het wil. En als Jonathan gezinspeeld, realiseren dat het zou kunnen zeggen dat het wil Installeer de software die u de zorg over, Spotify of iTunes of wat dan ook het is je probeert te installeren. Maar je bent letterlijk het vertrouwen van de auteur of auteurs van de software te alleen doen wat het programma verondersteld wordt te doen. Maar er is absoluut niets het stoppen van de meeste programma's op de meeste besturingssystemen uit het verwijderen van bestanden, van ze te uploaden naar enkele onderneming website, van trollen rond, voor het coderen dingen. En nogmaals, we hebben soort van gebouwd een gehele infrastructuur het jaar op vertrouwen. En dus beseffen dat je net geweest bent vertrouwend willekeurige mensen en willekeurige bedrijven voor het grootste deel. En Jonathan zinspeelde ook, soms die bedrijven zelf zijn soort wetens kwaadaardig, oke? Sony ving veel flack een paar jaar geleden voor het installeren wat genoemd rootkit kit op de computers zonder hun medeweten. En de kern van dit was dat wanneer je kocht een cd bijvoorbeeld dat ze wist niet dat je in staat zijn om te kopiëren of rip de muziek uit van, de cd zou installeren, zonder dat je het weet, een rootkit op uw computer. Rootkit gewoon betekent software die draait als beheerder die potentieel doet slechte dingen. Maar een van de dingen dit ding wist lag verborgen zelf. Dus sommige van jullie misschien wel behoorlijk savvy met uw computer en kennen, nou, ik kan alleen de Task Manager of het openen Activity Monitor en ik kan kijken naar alle van de arcanely genoemde programma's die worden uitgevoerd. En als er iets er verdacht uitziet Ik zal gewoon doden of verwijderen. Maar dat is wat de rootkit deed. Het zei in wezen, als het runnen van Task Manager, niet jezelf te tonen. Dus de software was er. En alleen als je echt, echt gekeken moeilijk kon je zelfs vinden. En dit werd gedaan in de naam van kopieerbeveiliging. Maar stel je eens voor wat er zou kunnen zijn anders gedaan. Nu in termen van bescherming van jezelf. Veel websites zijn heerlijk genadig in dat zetten ze deze hangslot pictogrammen op hun homepage waar betekent dat de website beveiligd is. Dit is van bankofamerica.com vanmorgen. Dus wat doet dat kleine hangslotje daar bedoel naast de knop Aanmelden? Absoluut niets. Het betekent dat iemand weet hoe te gebruiken Photoshop om een ​​foto van een te maken hangslot icoon. Net als heel letterlijk, het feit dat het er is bedoeld als een positieve signaal aan de gebruiker zoals, ooh, beveiligde website. Ik vertrouw deze website en nu Typ in mijn gebruikersnaam en wachtwoord. En dit heeft conventionele geweest jaren, zo recent als deze morgen. Maar rekening houden met de gewoonten die dit wordt ons in. De impliciete boodschap dat alle van deze banken in dit geval zou zijn geweest stuurt ons al jaren. Als je ziet hangslot, dan beveiligen. Oke? Dus hoe kan je misbruiken dat systeem van vertrouwen als je de bad guy? Zet een hangslot op uw website, en logisch, zijn de gebruikers geweest airconditioning voor jaren te veronderstellen hangslot betekent veilig. En het kan eigenlijk veilig. Misschien heb je een heerlijk veilige SSL HTTPS-verbinding naar een nep-website. com. En niemand anders in de wereld kan zien dat je op het punt om hem of haar de hand uw gebruikersnaam en wachtwoord aan uw account. Dit echter is misschien een weinig meer geruststellend. Dus dit is een screen shot van de top van mijn browser vanochtend bij bankofamerica.com. En ook hier merken we hebben een hangslot. Wat betekent het in deze context in Chrome tenminste? Dus dit is nu met SSL. Dus dit is eigenlijk een betere zaak. En dat Chrome maakt het groen is bedoeld om onze aandacht te vestigen het feit dat dit niet alleen via SSL. Dit is een bedrijf dat iemand er heeft geverifieerd is eigenlijk bankofamerica.com. En dat betekent dat de Bank of America, bij de aankoop van hun zogenaamde SSL certificaat, in wezen grote willekeurig, enigszins willekeurige getallen die implementeren zekerheid voor hen, zijn ze geverifieerd door een aantal onafhankelijke derde partij die zegt, yep. Dit is eigenlijk de CEO van Bank of Amerika proberen om het certificaat te kopen. Chrome zal dan ook op vertrouwen dat certificeringsinstantie en zeggen in groen, is bankofamerica.com. En Bank of America betaalt slechts een paar honderd dollar voor die of een paar duizend in tegenstelling tot een enkele tientallen dollars. Maar ook hier, hoeveel van jullie hebben ooit gedroeg zich anders te omdat de URL in je browser groen in plaats van zwart? Rechts? Dus een paar van ons. En dat is goed te zijn paranoïde. Maar zelfs dan, degenen onder jullie die nog merkt deze dingen, doe je eigenlijk stop in te loggen op een andere wijze veilig website als de URL is niet groen? Oke, dus waarschijnlijk niet, toch? Althans de meesten van ons, als het niet groen, waarschijnlijk ben je gewoon gaan te zijn als, wat dan ook. Graag, ik wil inloggen op deze website. Dat is waarom ik hier ben. Ik ga toch in te loggen. Even terzijde, Chrome is een beetje beter over. Maar er is veel browsers zoals Firefox bijvoorbeeld tenminste enige tijd, waar dat hangslot is, kun je eigenlijk zet elke pictogram van je eigen. Laat me zien wat de nieuwste versie van Firefox lijkt. Dus als we naar CS50.net. OK, dus ze hebben gekregen beter ook. Wat de gebruikte browsers te doen is willen, hier is bijvoorbeeld [? SAAS is?] heuvelrug hier up. Dat is de zogenaamde favoriet pictogram voor een website. Jaar geleden - eigenlijk niet zo lang geleden - dat kleine schild zou gelijk zijn geweest hier naast de URL. Omdat sommige genie besloten dat het zou gewoon kijken vrij classy te hebben uw grafische logo rechts naast uw URL. En het ontwerp verstandig, dat eigenlijk is vrij overtuigend. Dus wat deed slechterik start aan het doen? Ze begonnen het veranderen van hun favoriete pictogrammen, of hun standaard icoon voor een homepage om niet een kuif zijn maar een hangslot, die moest absoluut geen betekenis. Anders dan hun favoriete icoon werd een hangslot het had geen indicaties veiligheid. Dus de lessen hier zijn een paar denk ik. Een daarvan is dat er eigenlijk een aantal goedbedoeld mechanismen voor leert ons gebruikers over de beveiliging zelfs als je niet eens bewust waren wat groen betekende of wat zelfs HTTPS betekende. Maar als die mechanismen krijgen ons in de slechte gewoonte van het vertrouwen websites wanneer wij zien deze positieve signalen, ze zijn zeer gemakkelijk misbruikt zoals we zagen zoëven met iets dom als dit. Dus het kapen van sessies komt in spelen, zoals we al eerder zeiden, met koekjes bijvoorbeeld. En wat betekent dit eigenlijk? Goed met het kapen van sessies is dit alles over het stelen van iemands cookies. Dus als ik hier open Chrome, voor Zo, en ik open de Inspecteur hier beneden en ik ga naar het Netwerk Tab - en we hebben dit al eerder gedaan - en ik ga naar iets als http://facebook.com Enter, geheel heleboel dingen gaat over het scherm vanwege al de afbeeldingen en CSS en JavaScript-bestanden. Maar als ik kijk naar deze ene hier opmerken dat Facebook is inderdaad het planten van een of meer cookies op mijn browser hier. Dus deze zijn in wezen de kant stempels die mij vertegenwoordigen. En nu hopelijk mijn browser zal presenteren deze steeds weer als herzien van die website. Maar dat alleen is veilig, we zeiden een paar weken geleden, als je met behulp van SSL. Maar zelfs SSL zelf kan worden aangetast. Overweeg na helemaal SSL werkt. Als uw browser verbinding maakt met een externe server via https://, lang verhaal kort, cryptografie is betrokken. Het is niet zo eenvoudig als Caesar of Visionaire of zelfs DES, DES uit een tijdje terug in pset2. Het is geavanceerder dan dat. Het heet public key cryptografie. Maar echt groot en echt willekeurig nummers worden gebruikt om scramble informatie tussen punt A, u, en punt B, zoals facebook.com. Maar het probleem is, hoe velen van ons weer ooit typ https:// te beginnen onze website verbinding in die veilige modus? Ik bedoel, hoeveel van jullie ook Type http://facebook.com? Oke, als je dat doet, willen, hallo. U hoeft niet om dat te doen meer, toch? De browser zal het uitzoeken. Maar de meesten van ons doen inderdaad typ je gewoon facebook.com. Want als we met behulp van een browser, het browsers zijn slim genoeg gekregen door 2013 aan te nemen als u gebruik maakt van een browser, u typt in een adres, je Waarschijnlijk wil het openen niet via e-mail of chatbericht. Je bedoelt HTTP en poort 80. Die verdragen zijn aangenomen. Maar hoe werkt omleiding werk? Nou ja, op wat hier gebeurt. Als ik terug naar Chrome - en laten we dit doen in incognito modus, zodat al mijn cookies worden weggegooid. En laat mij gaan hier naar, nogmaals, facebook.com. En laten we zien wat er gebeurt. Bedenk dat het eerste verzoek was inderdaad alleen voor facebook.com. Maar wat was het antwoord dat ik kreeg? Het was niet een 200 OK. Het was 300 of 301, die een redirect vertelt me ​​om naar http://www.facebook.com, dat is waar Facebook wil dat ik ga. Maar dan als we kijken naar de volgende aanvraag, en we hebben dit eerder gezien, merken wat hun tweede reactie is. Specifiek dat ze willen dat ik nu naar ga naar de SSL versie van Facebook. Dus hier is een kans. Dit is een heerlijk nuttige functie van alleen de web-en HTTP. Als de eindgebruiker zoals Facebook wil dat ik te blijven op de beveiligde versie van hun website, geweldig. Ze zullen me redirect voor mezelf. En dus heb ik niet om nog denken. Maar wat als tussen punt A en B, tussen u en Facebook, is er een aantal slechterik, is er een aantal systeem beheerder op Harvard wie nieuwsgierig om te zien wie je vrienden zijn. Of is er een aantal - jaar geleden, dit was vroeger gek klinken - maar er is wat overheidsentiteit zoals de NSA die is eigenlijk geïnteresseerd in wie je bent porren op Facebook. Waar is de kans daar? Nou ja, zo lang als iemand heeft genoeg technisch onderlegde en zij toegang hebben om uw werkelijke netwerk via Wi-Fi of een fysieke draad, wat kunnen ze doen? Nou, als ze op hetzelfde netwerk als je en ze iets over weten TCP / IP en IP-adressen en DNS en hoe dat alles werkt, wat als dat man in het midden, wat als dat National Security Agency, wat het ook kan zijn, maar wat als die entiteit gewoon reageert sneller dan Facebook te uw HTTP-verzoek en zegt, oh, ik ben Facebook. Ga je gang, en hier is de HTML voor facebook.com. Computers zijn pretty darn snel. Dus je kan een programma op te schrijven een server zoals nsa.gov dat wanneer het hoort een verzoek van u om facebook.com, heel snel achter de scènes krijgt de echte facebook.com maken een volkomen [? esque?] veilig SSL-verbinding tussen NSA en tussen Facebook, het krijgen van die HTML zeer veilig voor de login-pagina en klik vervolgens de NSA server reageert alleen maar om je met een login pagina voor facebook.com. Nu hoeveel van jullie zouden eens merken dat u gebruikt Facebook via HTTP nog steeds op dat punt, want je hebt ongeluk verbonden nsa.gov en geen Facebook? De URL's niet veranderen. Dit alles wordt gedaan achter de schermen. Maar de meesten van ons, waaronder ikzelf, waarschijnlijk niet zou opmerken zo'n klein detail. Dus je zou kunnen hebben een perfect werkbare verbinding tussen jou en wat je denken is Facebook, maar er is een zogenaamde man in het midden. En dit is een algemene term voor de mens in de middle aanval waarbij je een aantal entiteit tussen u en punt B dat is een of andere manier manipuleren, stelen, of kijken naar uw gegevens. Dus zelfs SSL is niet trefzekere, vooral als je hebt misleid in niet aan te zetten vanwege de manier waarop deze onderliggende mechanismen eigenlijk werken. Dus een les van vandaag dan ook is als je echt wilt worden paranoïde - en ook hier zijn er bedreigingen - je moet echt beginnen met het krijgen in de gewoonte van het typen in https://www welke domeinnaam u eigenlijk schelen. En als een terzijde te er nog een andere bedreiging met met betrekking tot het kapen van sessies. Heel vaak wanneer u voor het eerst een bezoek aan een website zoals facebook.com, tenzij de server is geconfigureerd om te zeggen dat die hand stempel het op je gisteren te beveiligen zelf, uw browser zou heel goed, na bezoek aan dingen zoals facebook.com google.com, twitter.com, uw browser misschien maar presenteert die hand stempel worden geslagen neer en zei, nee. SSL gebruiken. Maar het is te laat op dat punt. Als u al hebt verzonden uw hand stempel, uw cookie, in het heldere met geen SSL, heb je een fractie van een seconde kwetsbaarheid waar iemand snuiven uw verkeer, of huisgenoot of NSA, kunt vervolgens dat zelfde koekje, en met een beetje technisch onderlegde, presenteren het als zijn of haar eigen. Andere aanval je misschien niet over nagedacht. Deze is echt aan jou als je schroef deze op schrift enkele website die een of andere manier gebruik maakt van SQL. Hier, bijvoorbeeld, is een scherm schot van Harvard login. En dit is een algemeen voorbeeld van iets met een gebruikersnaam en wachtwoord. Super gemeen. Dus laten we aannemen dat SSL bestaat en er is geen man in het midden of iets dergelijks. Nu richten we ons op de server code die je zou kunnen schrijven. Nou, als ik typ een gebruikersnaam en wachtwoord, veronderstellen dat de PIN-dienst wordt geïmplementeerd in PHP. En je zou een stukje code hebben op die server als deze. Verkrijg de gebruikersnaam uit de post super wereldwijde en krijg het wachtwoord, en vervolgens als ze met behulp van enkele pset7 zoals code is er een query functie dit zou kunnen doen. Selecteer Star van gebruikers waarbij gebruikersnaam gelijk aan die en het wachtwoord is gelijk aan die. Dat ziet er op het eerste gezicht, volstrekt redelijk. Dit is syntactisch geldig PHP-code. Logischerwijs is er niets mis mee. Vermoedelijk is er wat meer lijnen die daadwerkelijk iets doen met de resultaat dat terug komt uit de database. Maar dit is kwetsbaar voor de volgende reden. Merk op dat, als een goede burger, Ik heb tussen aanhalingstekens, enkele citaten, de gebruikersnaam. En ik zet in enkele aanhalingstekens het wachtwoord. En dat is een goede zaak omdat ze niet hoort te zijn getallen. Typisch ze gaan om de tekst te zijn. Dus ik ben ze te citeren, zoals strijkers. En als ik nu verder wat als vooruit - en ik heb de kogels van de verwijderde PIN dienst tijdelijk - wat als ik probeer in te loggen als President [? Scroob?] maar ik beweren dat mijn wachtwoord is 12345 'OR '1' = '1, en kennisgeving wat ik niet heb gedaan. Ik heb niet de andere sluiten enkele offerte. Want ik ben er vrij scherpe hier als de bad guy. En ik neem aan dat ze je niet erg goed met uw PHP en MySQL code. Ik gok dat je niet controleren voor de aanwezigheid van citaten. Dus wat er net gebeurd is dat wanneer uw gebruiker in die string heeft getypt, de vraag die je gaat maken ziet er zo uit. En lang verhaal kort te maken, als u en iets samen of u of iets samen dit gaat terug een rij van de database. Want het is altijd de zo dat 1 gelijk is aan 1. En alleen maar omdat je niet op hadden gerekend dat uw gebruikers, goed of slecht, misschien hebben een apostrof in hun naam hebben een SQL-query die nog gemaakt geldig is, en zal nu meer resultaten opleveren dan je zou hebben bedoeld. En dus is deze slechte kerel heeft nu mogelijk aangemeld bij uw server want uw database is terug een rij zelfs als hij of zij heeft geen idee wat [? ?] Werkelijke wachtwoord Scroob is. Oh, realiseerde ik een typfout hier. Ik heb gezegd wachtwoord is gelijk aan 12345 net als de vorige Bijvoorbeeld of 1 is gelijk aan 1. Ik zal dat online te lossen. Dus waarom hebben wij u met behulp van de query functie met vraagtekens? Een van de dingen die de query functie betekent voor u is het zorgt ervoor dat wanneer je langs in argumenten na de komma hier als deze die de query die daadwerkelijk aan het wordt verzonden databank ziet er zo uit. Veel lelijker om naar te kijken, maar terug slashes zijn automatisch geweest ingevoegd juist aan dit voorkomen injectie aanval die ik liet een daarnet. Nu een leuke XKCD dat ik dacht dat ik trek hier die hopelijk moet nu een beetje meer begrijpelijk is dit hier. Een beetje? Misschien moeten we een beetje meer discussie over dat. Dus dit is een verwijzing naar een klein kind genaamd Bobby die een of andere manier heeft genomen voordeel van een website die is gewoon vertrouwen dat wat de gebruiker heeft getypt Het is niet in feite SQL code, maar is in feite een tekenreeks. Nu kun je die druppel herinneren - je zou hebben gezien dit - daling betekent een tabel verwijderen, verwijderen van een database. Dus als je in wezen beweren dat je naam is Robert "; droptabl estudentsomething,] je zou heel goed misleiden de databank niet alleen rekening te controleren of u bent inderdaad Robert, maar puntkomma ook overgaan tot de tafel laten vallen. En dus SQL injectie aanvallen kunnen eigenlijk als bedreigend als deze waarbij je de gegevens van iemand kunt verwijderen, kunt u meer details bekijken selecteert dan bedoeld, kunt u invoegen of gegevens bij te werken. En je kunt eigenlijk dit zien in ten thuis te oefenen, niet voor kwaadaardige doeleinden, maar alleen voor educatieve, is elke keer dat je wordt gevraagd om in te loggen in de website, in het bijzonder een soort van niet erg openbaar, zeer populaire website, probeer dan in te loggen als John O'Reilly of iemand met een apostrof in hun naam. Of letterlijk typ je gewoon apostrof, druk op Enter, en zie wat er gebeurt. En maar al te vaak, tragisch, mensen hebben hun input opgeschoond en zorgde ervoor dat dingen als quotes of puntkomma's zijn ontkomen. Dat is de reden waarom in pset7 wij geven u deze query functie. Maar niet onder waarderen precies wat het doet voor je. Dus met dat gezegd, genieten van het gebruik het web deze week. En wij zullen u op maandag. Bij de volgende CD50. [MUZIEK]