>> [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]