>> [MUSIC]
>> DAVID J. MALAN: All right.
Så dette er CS50 og dette er utgangen av uke 10..
Så noen av dere kanskje har sett dette allerede, blir men sirkulert i det siste
er en artikkel som jeg tenkte jeg skulle lese et utdrag fra, og deretter vise deg et
tre minutters video som tegner det samme bildet.
Det var virkelig en rørende historie, jeg tenkte på dette krysset av
virkelige verden med genuint overbevisende bruker av teknologi.
>> Så artikkelen ble tittelen "En gutt oversleeps på toget, bruker Google Maps
å finne familien 25 år senere. "Og første par avsnitt var,
"Da Saroo var fem år gammel gikk han med sin eldre bror til å rote for
endre på et passasjertog i en by ca to timer
fra sin lille hjemby.
Saroo ble sliten og hoppet på en nærliggende tog hvor han trodde hans
bror var, så sovnet.
Da han våknet var han i Calcutta, nesten 900 miles unna.
Saroo prøvde å finne veien tilbake, men han visste ikke
navnet på hjembyen.
Og som en liten analfabet gutt i en stor by full av glemte barna han hadde
nesten ingen sjanse for å komme hjem.
>> Han var en gate barn en stund til en lokal adopsjon byrå hekta
ham opp med en australsk par som brakte ham til
bor i Hobart, Tasmania.
Saroo flyttet dit, lærte Engelsk, og vokste opp.
Men han har aldri sluttet å lete etter hans familie og hans hjemby.
>> Tiår senere, oppdaget han Google Jorden og fulgte jernbane spor.
Og gi seg selv en foreskrevet radius basert på hvor lenge han trodde han var
sover og hvor fort han trodde toget skulle, visste han at han hadde vokst opp
i et varmt klima, visste han at han snakket Hindi som et barn, og han hadde fått beskjed
at han så ut som han var fra Øst-India.
>> Endelig, etter flere år på skuring satellitt bilder, han
anerkjent noen landemerker.
Og etter chatter med en administrator av en nærliggende byen sin
Facebook-side, innså han han hadde funnet hjemme. "
>> Så her er da videoen forteller at historien fra hans perspektiv.
>> [VIDEOAVSPILLING]
>> -Det var 26 år siden og jeg var bare om å slå fem.
Vi fikk til jernbanestasjonen og vi tok toget sammen.
Min bror sa jeg skal bo her og jeg skal komme tilbake.
Og jeg tenkte, vel, du vet, jeg kan like godt bare gå i dvale og
så vil han bare vekke meg opp.
Og når jeg våkner opp neste dag, hele vognen var tom på en rømling
tog, et spøkelse tog tar meg at jeg vet ikke hvor.
>> Jeg ble vedtatt ut til Australia til en australsk familie.
Og mamma hadde dekorert rommet mitt med kartet av India, som hun
satt ved siden av sengen min.
Jeg våknet opp hver morgen å se at kartet, og dermed er det liksom holdt
minnene i live.
>> Folk vil si, du prøver å finne en nål i en høystakk.
Saroo, vil du aldri finne den.
Jeg ville ha blinker av de stedene som Jeg pleide å gå, blinker
av min families ansikter.
Det var bildet av min mor sittende ned med bena krysset
bare se henne gråte.
Livet er bare så vanskelig.
Det var min skatt.
>> Og jeg var ute i Google Map og innså at det er Google Earth også.
I en verden der du kan zoome inn jeg begynte å ha alle disse tankene og
hvilke muligheter som dette kunne gjøre for meg.
Jeg sa til meg selv, vel, du vet, du har all den fotografiske
minner og landemerker der du er fra og vet du hva
byen ser ut.
Dette kan være et program som du kan bruke til å finne veien tilbake.
>> Jeg tenkte, vel, jeg skal sette en prikk på Calcutta togstasjon i en radius
linje som du bør søke rundt dette området.
Jeg kom over disse jernbanelinjene.
Og jeg begynte å følge det, og jeg kom til en togstasjon som reflekterte
samme bildet som var i mine minner.
>> Alt matchet.
Jeg tenkte, ja.
Jeg vet hvor jeg skal.
Jeg skal bare la kartet som jeg har i hodet mitt til å lede meg og ta meg
tilbake til hjembyen min.
>> Jeg kom til dørstokken til huset at jeg ble født og gikk rundt
ca femten meter rundt hjørnet.
Det var tre damer som står utenfor ved siden av hverandre.
Og den mellomste gikk frem.
Og jeg tenkte, dette er din mor.
Hun kom fram, klemte hun meg, og vi var der i ca fem minutter.
>> Hun tok meg i hånden og hun tok meg med til huset og fikk på telefonen, og hun
ringte min søster og min bror å si at din bror har bare alle
plutselig dukket opp som et spøkelse.
>> Og da familien var gjenforent igjen.
Alt er bra.
Jeg hjelper min mor ut.
Hun trenger ikke å være slaving unna.
Hun kan lede resten av sitt liv i fred.
>> Det var en nål i en høystakk, men nålen var der.
Alt er der.
Alt vi har i verden er å banke på en knapp.
Men du må ha vilje og vilje til å ville det.
>> [END VIDEOAVSPILLING]
>> Så en veldig søt historie.
Og det minner meg faktisk på ganske tema som har vært å få ganske mye
oppmerksomhet i det siste i The Crimson, mer nasjonalt generelt.
Spesielt som MOOCs tar scenen i det siste.
MOOCs blir disse massive og åpne online kurs som CS50 er én.
>> Og folk snakker om hvordan, for eksempel humaniora er egentlig ikke
fange opp eller ikke er nesten like på moten som de en gang var.
Og jeg vil oppfordre dere, mye som Jonathan gjorde på mandag, å tenke
om når du avslutter 50, og vi vet allerede om 50% av dere vil ikke
fortsette å ta en annen datamaskin vitenskap kurs, og det er helt
fint og forventet.
Fordi en av de overordnede målene av en klasse som dette er virkelig å
styrke dere med bare en forståelse av hvordan alt dette ting
fungerer og hvordan denne verden av teknologien fungerer.
>> Slik at når du er tilbake i ditt eget verdener, enten det er pre-med eller
enten det er humaniora eller samfunnsfag eller noen andre felt
helt, at dere bringer noen teknisk kyndige til bordet og
bidrar til å ta smarte avgjørelser når det gjelder bruken av og
innføring av teknologi inn i din verden.
>> For eksempel ble jeg minnet på slutten også av to av undervisning
klassene jeg tok for to år siden, som var slike enkle bruk av teknologi
men aldri så overbevisende.
Første natten med professor Tom Kelly hvis du har tatt klassen.
Det er en klasse på klassisk musikk på dette stadiet her hvor du lærer en
litt om musikk.
Det er faktisk første nettene at CS50 lånt ideen om sporene for disse
mindre komfortable i mellom og mer behagelig.
>> I min tid hadde de ulike spor for barn med absolutt ingen musikk
opplever som meg, og deretter barn som hadde opptrådt siden de var
fem år gammel.
Og den klassen, for eksempel, hadde et nettsted som de fleste andre, men det
var et nettsted som lot deg utforske musikk på den og spille av
musikalske klipp fra klassen, fra nettet, og bare bruke teknologien i en svært
sømløs måte.
>> En annen klasse år senere at jeg revidert, i hovedsak, i grad skolen,
1010 Anthro, Introduksjon til arkeologi her.
Det var fantastisk.
Og en av de mest overbevisende ennå super opplagt i ettertid bruker av
programvare var at professorer i at klassen brukte Google Earth.
Vi ble sittende over gaten i noen forelesningssal.
Og du ikke kunne reise, for eksempel, til Midtøsten for å grave at en
av professorene hadde nettopp kommet tilbake på, men vi kunne gjøre det nærmest ved en
flyr rundt i Google Earth og ser på et fugleperspektiv på
grave stedet han hadde nettopp returnert fra en uke siden.
>> Så jeg vil oppfordre dere, spesielt i humaniora, å gå
tilbake til disse avdelingene etter dette klasse bringe den endelige prosjekter
med deg eller ideer til din egen, og se akkurat hva du kan gjøre for å fylle opp ditt
egne felt i humaniora eller utover med en liten bit av denne typen
ting som vi har utforsket her i CS50.
>> Så med det bildet malt, tenkte vi ville prøve å takle to ting i dag.
One, kan du prøve å gi deg en følelse av hvor du kan gå etter 50.
Og spesielt hvis du velger å takle en web-basert prosjekt som er
utrolig vanlig, hvordan du kan gå om å ta av alle CS50 er
trening hjul og går ute på din egen og ikke måtte stole på en
PDF eller en spesifisering av en PSett?
Ikke å måtte stole på en CS50 apparatet lenger.
Men kan virkelig trekke deg opp av bootstraps.
>> Med det sagt, C-basert finalen prosjekter er velkomne.
Ting som bruker stativet for en bærbar bibliotek i
Grafikken er velkomne.
Vi bare vet at statistisk mye folk bite av prosjekter i PHP og
Python og Ruby og MySQL og andre miljøer, så vi vil skjevhet noen av
våre bemerkninger mot det.
>> Men en rask titt tilbake.
Så vi tok for gitt i pset7 den At $ _SESSION eksisterte.
Dette var en super global, en global, assosiativ array.
Og hva la dette du gjør?
Funksjonelt, hva er har dette gir oss?
Yeah?
Å spore brukerens ID.
Og hvorfor er dette nyttig?
For å kunne lagre innsiden av denne super global JHarvard eller [? Scroobs?]
eller Malan bruker-ID når han eller hun besøker et nettsted.
>> Nettopp.
Slik at du ikke trenger å logge inn igjen og igjen.
Det ville være en veldig halt world wide web hvis hver gang du klikket på en link
på et nettsted som Facebook eller hver gang du klikket på en e-post i Gmail deg
måtte re-godkjenne å bevise at det er fortsatt deg og ikke din samboer
som kanskje har gått opp til datamaskin i ditt fravær.
>> Så vi bruker SESSION å bare huske hvem du er.
Og hvordan er dette implementert under panseret?
Hvordan en nettside som bruker, den protokoll som nettlesere og servere
tale, hvordan HTTP, som er en statsløse protokollen, la oss si.
>> Og ved statsløse jeg mener, når du koble til et nettsted, laste ned noen
HTMLs, noen JavaScript, noen CSS, din nettleserens ikonet slutter å spinne.
Du trenger ikke en konstant tilkobling til serveren typisk.
Det var det.
Det er ingen stat opprettholdes hele tiden.
Så hvordan er SESSION gjennomføres slik en måte at hver gang du besøker en
ny side, husker nettsiden hvem du er?
Hva er den underliggende implementeringen detalj?
Rop det ut.
Det er ett ord.
>> Cookies.
OK.
Så cookies.
Vel, hvordan brukes informasjonskapsler?
Vi vil minne om at en cookie er generelt bare en bit av informasjon.
Og det er ofte en stor tilfeldig nummer, men ikke alltid.
Og en cookie er plantet på dine hardt stasjon eller i datamaskinens RAM så
at hver gang du besøker det samme nettstedet, minner leseren på
server, jeg bruker 1.234.567.
Jeg er brukeren 1.234.567.
>> Og så lenge serveren har husket at brukeren 1234567 er
JHarvard, vil nettstedet bare anta at du er den du sier du er.
Og husker at vi presenterer disse informasjonskapslene slags i form av en
virtuell hånd stativ.
Det er sendt i HTTP-hoder bare for å minne serveren at du er som det
tror du er.
>> Selvfølgelig, det er en trussel.
Hvilken trussel åpner dette oss opp til hvis vi egentlig bruker en slags klubb
eller en fornøyelsespark mekanisme for å huske hvem vi er?
>> Hvis du kopierer noens cookie og kapre sin sesjon, så å si, du
kan late som å være noen andre, og det Nettside mest sannsynlig bare kommer til å
tror deg.
Så får vi komme tilbake til det.
Fordi den andre temaet for i dag utover Selvstendighet er også snakk
om veldig skremmende verden vi lever i og hvor mye av det du gjør på
nettet, hvor mye av det du gjør selv på mobiltelefoner i dag kan være
spores egentlig av alle mellom deg og punkt B.
>> Og Ajax, tilbakekalling.
Vi så bare en kort stund på dette, selv om du har brukt det
indirekte i pset8 fordi du bruker Google Maps og fordi du er
ved hjelp av Google Earth.
Google Maps og Google Earth ikke laste ned hele verden til din
skrivebordet, selvsagt, den øyeblikket du legger pset8.
Den laster ned bare et torg i verden eller et større kvadrat av jorden.
Og deretter hver gang du liksom styre utenfor rekkevidde kan du legge merke til -
spesielt hvis du er på en treg tilkobling - du kan se noen grå for et øyeblikk
eller litt uklar bilder som Datamaskinen laster ned flere slike fliser,
mer slike bilder fra verden eller jorden.
>> Og Ajax er vanligvis den teknikken av hvilke nettsteder som gjør det.
Når du trenger mer av kartet, din Nettleseren kommer til å bruke Ajax, som er
ikke i seg selv et språk eller teknologi, det er bare en teknikk.
Det er bruk av JavaScript for å hente mer informasjon fra en server som
lar få nettleseren til å gå hva som er til øst eller hva som er på vestsiden av
hva er ellers i dag er vist i det kartet.
Så dette er et tema som mange av dere vil møte enten direkte eller
indirekte via endelige prosjekter hvis du velger å gjøre noe som er
samme dynamikk som trekker data fra noen tredjeparts nettsted.
>> Så vi har fått en veldig spennende neste onsdag fremover.
En quiz, den informasjonen som er på CS50.net allerede.
Vet at det vil være en gjennomgang session førstkommende mandag klokken 05:30.
Datoen og klokkeslettet er allerede lagt ut på CS50.net i den Om arket.
Og la oss vet du har noen spørsmål.
Pset8 er i mellomtiden allerede i hendene.
>> Og la meg bare ta en FAQ å spare folk litt stress.
For det meste mye skravling vi ser på arbeidstid og mye
feilene vi ser rapportert på Diskuter er faktisk feil i en elevs kode.
Men når du har støtt på noe som Google Earth plugin-krasj
eller ikke engang fungerer, og du er sikker på det er ikke deg, det er ikke en
[? chamad?] problemet, er det ikke en bug du introdusert i
fordeling kode.
>> Innse FYI -
dette er slags plan Z -
at forrige gang vi brukte dette problemet satt, og vi kjørte inn i lignende
problemer, det er en linje med kode i service.js som i hovedsak er dette,
som sier, slår bygninger på.
Og de omgå den siste gangen vi gjorde dette i, igjen, hjørne tilfeller der
studenter kunne bare ikke få darn ting å jobbe er å endre true til false
i at en kodelinje.
Og du finner det hvis du søker gjennom service.js.
>> Jeg anbefaler ikke dette fordi du vil lage den mest golde landskapet
av Cambridge, Massachusetts.
Dette vil bokstavelig talt flat verden slik at alt du ser er undervisningen
stipendiater og kurs assistenter på horisonten og ingen bygninger.
Men innser uansett grunn den Google Earth plug-in fortsatt synes å være
buggy et år senere, så dette kan være din fail lagre.
Så i stedet for å ty til tårer, resort å snu bygninger av hvis du vet
det er plug-in som ikke samarbeider på din Mac eller PC.
Men, dette er igjen siste utvei hvis du er sikker på at det ikke er en bug.
>> Så Hackathon.
Et par teasers bare å få deg opphisset.
Vi hadde ganske mange svarene.
Og bare for å male et bilde av hva venter, tenkte jeg at jeg skulle gi deg noen
sekunder tilbakekalling av disse bildene fra i fjor.
>> [MUSIC]
>> DAVID J. MALAN: Vent, oh.
Vi har våre bokstavelig CS50 skyttelbussene.
>> [MUSIC]
>> DAVID J. MALAN: Så det er hva som venter deg i form av den Hackathon.
Og dette vil være en mulighet, til være tydelig, for ikke å starte den endelige
prosjekter, men å jobbe videre med den endelige prosjekter sammen
klassekamerater og ansatte og masse mat.
Og igjen, hvis du er våken om 05:00 vi tar deg nedover veien til IHOP.
>> Det CS50 rettferdig, i mellomtiden, er klimaks for hele klassen der
du tar med din bærbare PC og venner, kanskje til og med familien til et rom på campus
ned gaten for å stille ut dine prosjekter på bærbare datamaskiner, på høye bord
som dette med masse mat og venner og musikk i bakgrunnen,
så vel som våre venner fra industrien.
Selskaper som Facebook og Microsoft og Google og Amazon og bunter av
andre, slik at hvis interessert i bare høre om den virkelige verden eller
chatter med folk om virkelige verden internship eller full tid muligheter,
vet at noen av våre venner fra industrien vil være der.
Og et par av bildene kan vi maling her er som følger.
>> [MUSIC]
>> DAVID J. MALAN: All right.
Så det er da CS50 rettferdig.
Så la oss nå gå videre til å fortelle en historie som virkelig vil styrke deg forhåpentligvis
for ting som endelige prosjekter.
Så en av noen små ting til din ætt sinn, enten for endelig prosjekter
eller bare mer generelt for prosjekter som du kan bestemme seg for å takle etter
kurset, disse er alle dokumentert på manual.cs50.net der CS50
manual der vi har massevis av teknikker dokumentert.
>> Og dette er bare korte notasjonen for si at det foreligger i
verdens ting kalt SMS til e-post gateways, som er en fancy måte å
sier, det er serverne i verden som vet hvordan å konvertere e-post til
tekstmeldinger.
Så hvis for det endelige prosjektet du vil å skape en slags mobil tema
tjeneste som gjør det mulig å varsle venner eller brukere til arrangementer på campus
eller hva som blir servert i D Hall den kvelden eller noe slikt varsling funksjon,
vet at det er enkelt som å sende en e-post som med PHPMailer som du
kan ha brukt for pset7 eller vi så kort en uke eller så siden, til
postadresser som denne.
>> Og faktisk kan du teksten dette forutsatt din venn har et ubegrenset texting
plan og du ikke ønsker å lade dem $ 0,10.
Men hvis du sender en e-post til din venn som du vet å ha Verizon eller
AT & T bruker Gmail og bare sende det til telefonnummeret sitt på uansett
sub-domene er det, skjønner du vil sende en tekstmelding.
>> Men dette er en av de tingene være forsiktig med.
Hvis du troll gjennom fjorårets CS50 videoer tror jeg det var, en forferdelige,
forferdelige, forferdelige bug jeg skrev i koden endte opp med å sende rundt 20.000 tekst
meldinger leve til vår elevene i klassen.
Og bare fordi noen la merke til at de fikk flere tekst
meldinger fra meg gjorde jeg har midlene til å treffe Kontroll C raskt
og stoppe denne prosessen.
Kontroll C, du husker, er din venn i tilfeller av uendelig loop.
Så pass opp kraften vi har nettopp gitt til deg i stedet uansvarlig, mest
sannsynlig, basert på min egen erfaring.
Men det er på nettet og har vært der i noen tid.
>> OK.
Så textmarks.com.
Så dette er en nettside.
Og det er bunter av andre der ute samt at vi faktisk har brukt
som en klasse i mange år for å kunne å motta tekstmeldinger.
Dessverre, sende tekstmeldinger er enkelt som å sende e-poster sånn.
Motta er litt vanskeligere, spesielt hvis du vil ha en av
de sexy korte koder som er bare fem eller seks sifre.
>> Så for eksempel, i mange år har du vært kunne sende en tekstmelding - og du
kan prøve dette også -
til 41411.
Og det er telefonnummeret til denne spesielle oppstart.
Og hvis du sender en melding til 41 411 -
Jeg skal bare skrive det opp her, så 41 411 -
og deretter sende dem en melding liker SBOY for Shuttle Boy.
Og deretter skrive inn noe som mather quad.
Så du sende denne tekstmeldingen til det telefonnummeret.
Innen noen få sekunder skal du få tilbake et svar fra CS50 Shuttle
Boy-tjenesten, som er shuttle planlegging programvare som vi har hatt ut
der ute på nettet en stund.
Og det vil svare på du via tekstmelding.
>> Fordi det vi har gjort som en klasse, som en programmerer, er å skrive programvare,
konfigurert vår gratis konto med tekst merkene for å lytte til tekstmeldinger sendt
å SBOY på det nummeret.
Og hva de gjør fremover er de som tekst meldinger til vår PHP-basert nettsted som
HTTP-parametere sier her.
Denne brukeren med dette telefonnummeret sendte deg denne tekstmeldingen.
Gjøre med det hva du vil.
>> Så vi skrev noe programvare som på mottar en streng som SBOY Mather
quad, analysere vi det.
Vi finne ut hvor mellomrommene er mellom ordene.
Og vi som en klasse bestemmer hvordan å svare på det.
Og hvis du prøver det nå, for eksempel, du burde se, via svar innen en
noen sekunder, de neste få skyttelbussene går fra Mather til quad hvis noen.
Og det er andre stopp.
Du kan skrive inn Boylston eller andre slike stopper på campus, og det skal
gjenkjenne disse ordene.
>> Så parse.com.
Dette er en annen tjeneste som vi har vært peker noen elever på for
siste prosjekter som er fantastisk i at det er gratis for en
rimelig mengde bruk.
Og hvis jeg går til parse.com du vil se at dette er et alternativ til
faktisk ha noe sånt din egen MySQL database.
Og ærlig talt, det er bare slags hypnotiserende.
Dette er hva som er på innsiden av sky selv på en overskyet dag.
>> Så parse.com lar deg gjøre en haug av interessante ting.
Og det er andre alternativer til dette der ute.
For eksempel kan du bruke dem som back end database.
Slik at du ikke trenger å ha en web-hosting selskapet.
Du trenger ikke å ha en MySQL database.
Du kan i stedet bruke sin back end.
>> Hvis du gjør en mobil prosjekt for Android eller iOS eller lignende, vet at
det finnes ting som push-tjenester slik at du kan presse varsler til dine venner
eller brukernes startskjermer.
Og så en haug med andre funksjoner i tillegg.
>> Så hvis du har interesse, sjekk ut disse nettsteder og websider som dem
å bare se hvor mange andre folkeslag ' skuldre du kan stå på for å gjøre
veldig kul programvare for din egen.
>> Nå i form av godkjenning, en FAQ, er hvordan du faktisk garantere
at brukerne er folk på campus, Harvard studenter eller lærere eller ansatte?
Så CS50 har sin egen autentisering tjeneste kalt CS50 ID.
Gå til denne nettadressen og du kan begrense nettstedet for alle med en Harvard
ID, for eksempel.
Så vet at vi kan håndtere det.
Dere bør ikke være i bransjen å si, hva er din Harvard ID?
Hva er din Harvard PIN?
La meg nå gjøre noe med det.
Vi vil gjøre alt dette.
Og hva vi skal gi tilbake er noens navn og e-postadresse, men
ikke noe sensitiv.
>> En app på en mobil enhet, kan det være laget for å fungere på en mobil enhet, men
det er ikke helt designet for det.
Så vil du ende opp med å tilbringe en ikke ubetydelig Mengden av tid å gjøre det.
Så jeg vil fraråde den ruten for nå.
Dette er egentlig ment for web-baserte applikasjoner.
>> Så web hosting.
Så hvis du ikke har sett på kursets hjemmeside -
og her er hvor vi skal begynne en historie -
web hosting handler om å betale for vanligvis en tjeneste, være vert for en server eid
av noen andre på nettet som har en IP-adresse, og du deretter sette
nettside på den.
Og de som regel gi deg e- kontoer og databaser
og andre slike egenskaper.
>> Vet at hvis du ikke ønsker å faktisk betale for slikt, gå til denne nettadressen
der og CS50 har faktisk en non-profit konto som du kan bruke til å
faktisk har ikke http://project inne i apparatet
for det endelige prosjektet.
Hvis du faktisk vil at det skal være noe lignende, isawyouharvard.com,
du kan kjøpe det domenenavnet - selv ikke det spesielt ett - og
så kan du gå om hosting det på en offentlig web server som vi kan tilby
dere gjennom her.
>> Og faktisk hvis ukjente, hvis du aldri har vært i
isawyouharvard.com, en, gå dit.
Men to, vet at det var en ung Kvinnens navn etter Tej å toor Too to
år siden, tre år siden, som var en CS50 alumni som skjedde en dag eller to
før CS50 rettferdig sendt ut en e-post til huset hennes mailingliste og voila.
To dager senere av CS50 rettferdig, hadde hun hundrevis av brukere snikende på
hverandre på hennes nettside og si hvordan de hadde sett
henne eller ham på campus.
Så det er en av CS50 favoritt suksesshistorier fra
en CS50 endelige prosjektet.
>> Så hvordan du går om å sette et nettsted sånn på internett?
Vel, det er noen slike ingredienser her.
Så en, må du kjøpe et domenenavn.
Det er bunter av steder i verden, som du kan
kjøpe et domenenavn.
Og for eksempel, en som vi anbefaler bare fordi det er populært
og det er billig kalles namecheap.com.
Men du kan gå godaddy.com og dusinvis av andre der ute.
Du kan lese opp på vurderinger.
>> Men for det meste gjør det ikke rolle fra hvem du
kjøpe et domenenavn.
Og de varierer i pris og de varierer i suffikset.
De suffikser som. Com,. Net, . Org,. Io,. Tv, de
faktisk varierer i pris.
Men hvis vi ønsket å gjøre noe sånt cats.com vi kan gå til denne nettsiden,
deretter Søk.
Antagelig dette er tatt.
Men tydeligvis catsagainst.com er tilgjengelig.
pluscats.com er tilgjengelig.
Lovecats, catscorner, dampcats.net.
Alt dette forhåpentligvis pseudo tilfeldig generert.
Hvis du ønsker cats.pw, $ 1500 bare, som er litt gal.
Så noen har virkelig snappet opp alle katten relaterte domenenavn her for
varierende priser.
>> Som en side, la oss se.
Hvem har cats.com?
Vet at dere har på din disposisjon ganske
sofistikerte kommandoer nå.
Som jeg kan skrive bokstavelig talt som er cats.com?
Og på grunn av måten Internett er strukturert du faktisk kan se hvem
har registrert dette.
Angivelig denne personen er [uhørlig] bruker en proxy-tjeneste.
Så den som eier cats.com ønsker ikke at verden skal vite hvem de er.
Så de har registrert om gjennom noen tilfeldige Privacy Service.
Men noen ganger du faktisk få faktiske eierne.
>> Og dette er å si, spesielt hvis du er forfølge noen oppstart og du
virkelig ønsker noen domenenavn og du er villig til å betale noen andre for
det, kan du regne ut kontakten informasjon på den måten.
>> Men også interessant er dette.
La meg bla opp til denne delen.
Slik dette er at samme utgang.
Og dette er bare klebrig.
Så tilsynelatende cats.com kan være din for riktig pris.
Men det som er interessant her er at navnetjenerne -
dette er totalt misbruk av hva et navn Serveren er ment å være - ditt navn
Serveren er ikke ment å være thisdomainforsale.com.
Hvis vi faktisk velge noe sånt som -
la oss velge noe litt mer legitim ut, som er google.com,
og blar opp her.
Så her -
hva skjedde der?
Interessant.
Utover som er -
la oss holde det mer low key.
>> Hvem er mit.edu?
OK.
Dette er nyttig.
Så dette er hva jeg hadde håpet på.
Legitim bruk av DNS-tjenesten.
Navnetjenere her indikere følgende.
Dette er MIT måte å si, når noen i verden, uansett hvor de
er, typer i mit.edu og treff Enter, den bærbare datamaskinen, enten Mac eller PC, vil
en eller annen måte til slutt finne ut at mennesker i verden som vet hva
IP-adresse er for mit.edu eller en hvilken som helst av de subdomener på mit.edu eller noen av
disse serverne her - og det faktisk ser ut som MITs infrastruktur er
ganske robust som du forventer.
De har flere navn servere som er bra for redundans.
Og faktisk, synes de å være globalt distribuert over hele verden.
En haug av dem ser ut til å være i USA, et par i Asia, en i Europa, to
i et annet sted.
>> Men poenget her er at DNS som vi har tatt for gitt og
vanligvis beskrevet som en stor Excel-tabell som har IP-adresser og domene
navnene er egentlig ganske sofistikert hierarkisk tjenesten, slik at i
verden er det faktisk et endelig antall av servere som i hovedsak vet hvor
alle de. coms er eller alle de. garn er, alle av
. Orgs er, og så videre.
>> Så når du går videre og kjøpe et domene navn fra et sted som navn Cheap eller
Go Daddy eller noe annet nettsted, en av de viktigste trinnene som du må gjøre
du, hvis du gjør dette selv for den endelige prosjektet, er å fortelle registraren
fra hvem du kjøper domenet navn, hvem vet i din verden
nettstedets IP-adresser, som navnetjenere er.
>> Så hvis du bruker, for eksempel CS50 er hosting konto - vi måtte ha
denne kontoen gjennom dreamhost.com som er en
populære web hosting selskap -
de vil fortelle deg at du bør kjøpe domenet ditt og fortelle verden at
ditt domene navn server er ns1.dreamhost.com, ns2.dreamhost.com,
og ns3.dreamhost.com.
>> Men det er det.
Kjøpe et domenenavn betyr å gi dem penger og får eierskap til
domene, men det er mer som en leie skjønt.
Du får den for et år og deretter de bill du recurringly for resten av
ditt liv inntil du avbryter domenenavnet.
Og så fortelle dem hvem navnetjenerne er.
Men så er du ferdig med registraren.
Og derfra vil du samhandler bare med din web hosting selskap, som
i CS50 sak vil være DreamHost.
Men igjen, vil mer dokumentasjon være gitt til deg hvis du bestemmer deg for å gå
den ruten.
>> Så hvis du gjør dette etter kursets slutt, ganske enkelt googling web hosting
Selskapet vil slå opp tusenvis av alternativer.
Og jeg vil generelt oppfordre deg til spør venner som kanskje har brukt en
selskapet før hvis de anbefaler dem og hadde en god opplevelse.
>> Fordi det er mye fly by night web hosting selskaper, som en fyr i
hans kjeller med en server som har en IP-adresse.
Han har litt ekstra RAM og harddisk plass og bare selger web hosting
kontoer selv om det er ingen måte at serveren kunne håndtere hundrevis av
brukere eller tusenvis av brukere.
Så innser du vil få hva du betaler for.
>> For en god stund for min personlige hjem side - og dette var helt akseptabelt
fordi jeg hadde, som, to besøkende i måneden -
Jeg var å betale, like, $ 2,95 i måneden.
Og jeg er ganske sikker på at det var i noens kjeller.
Men igjen, får du ikke nødvendigvis noen garantier for oppetid eller
skalerbarhet.
Så igjen, du vanligvis ser ved noe mer enn det.
>> Vel, hva med SSL?
Så hva er SSL brukes til?
La oss nå begynne å styre i retninger av sikkerhet og ting som
kan skade oss.
Spesielt når du våger ut på egen hånd.
>> Hva er SSL, eller hva som SSL brukes til?
Sikkerhet, OK.
Så det er brukt for sikkerhet.
Hva betyr det?
Så det står for Secure Sockets Layer.
Og merkes med en URL som starter med https://.
Mange av oss har sikkert aldri skrevet https://, men du vil ofte oppleve at
din nettleser er omdirigert fra HTTP til HTTPS slik at alt er der
etter kryptert.
>> FYI, ved hjelp av SSL krever vanligvis at du har en unik IP-adresse.
Og typisk å få en unik IP-adresse du må betale en web hosting
Selskapets et par dollar mer per måned.
Så innser at dette er veldig enkelt implementert i disse dager ved å kjøpe en IP
adresse og ved å kjøpe det som er kalles et SSL-sertifikat.
Men skjønner at det ikke kommer på noen ekstra kostnad.
Og, som vi vil prøve å skremme i løpet av et bit, er det ikke engang nødvendigvis 100%
beskyttende av hva det er du prøver å beskytte.
>> Så for sikkerhet, jeg trodde jeg hadde gjør liksom en tilfeldig naturlig overgang her.
Som du kanskje vet fra CS50 foredrag videoer, har vår produksjon team vært en
fan som jeg har til å treffe veldig hyggelig fotografering av campus, og antenne
fotografering sist.
Hvis du noen gang ser opp og du ser noe flyr med et lite kamera,
det kan faktisk være CS50.
Og jeg tenkte jeg skulle dele minutt av noen av opptakene laget har
samlet, særlig når vi ser vårsemesteret og neste høst.
Hvis noen av dere har et knep for fotografering, videoopptak, ville vi
elsker å involvere deg bak kulissene.
Men mer om disse detaljene i en uke.
>> [MUSIC]
>> DAVID J. MALAN: Det viser seg at det er en minigolfbane på toppen av
stadion som vi aldri visste om.
>> [MUSIC]
>> DAVID J. MALAN: Du kan se skissere av drone der.
>> [MUSIC]
>> DAVID J. MALAN: Det beste her er å se, jogger til venstre.
>> [MUSIC]
>> DAVID J. MALAN: Et annet eksempel på hva du kan gjøre med teknologi som er
bare tangentially, ærlig, relatert til sikkerhet.
Men jeg tenkte det ville være en mer morsom måte for å bare si, sikkerhet.
Så la oss se om vi ikke kan skremme dere nå med ikke bare en bit av noen få
trusler, men også en underliggende forståelse av hva disse truslene
er så at fremover kan du bestemme hvordan og om å forsvare
deg mot disse tingene og på minst å være oppmerksom på dem som du
ta avgjørelser om hvorvidt eller ikke å send som epost, om du vil logge
inn i den nettsiden, om ikke å bruke den cyber cafe Wi-Fi
punktet slik at du vet hva trusler er faktisk rundt deg.
>> Så Jonathan referert til noe liker dette på mandag.
Han hadde et vindu skjermbilde.
Dette er av en Mac.
Hvor mange av dere har noen gang installert programvare på din Mac eller PC?
Tydeligvis alle.
Hvor mange av dere har tenkt så mye til å skrive inn passordet ditt
når du blir bedt om?
Jeg mener, selv om jeg ikke gjør det, ærlig.
Så et par av oss er gode på å være paranoid.
Men tenk på hva du er faktisk gjør her.
>> På en typisk Mac eller PC du har en administratorkonto.
Og vanligvis du er den eneste som bruker en laptop minst disse dager.
Så din konto, Malan eller JHarvard eller hva det er, er det
administratorkonto.
Og hva det betyr er at du har root-tilgang til datamaskinen.
Du kan installere hva du vil, slette alt du vil.
>> Og vanligvis disse dager, på grunn av datert design beslutninger fra år siden,
den måten de fleste programvare blir installert er som administrator.
Og selv om din Mac eller PC har minst fått smart nok over
år med de nyeste inkarnasjoner av Mac OS og Windows til å ikke kjøre
brukernavn som standard som administrator, når du laster ned noen
nytt program på internett og prøve å installere det, er du sannsynligvis kommer
å bli spurt om passord.
Men fangsten er på dette punkt, er du bokstavelig talt overlate nøklene til din
datamaskinen over til hva tilfeldige programmet du nettopp lastet ned og
slik at det å installere hva den ønsker.
>> Og som Jonathan antydet, innser at det kan si at den ønsker å
installere programvare som du bryr deg om, Spotify eller iTunes eller hva
det er du prøver å installere.
Men du er bokstavelig talt å stole forfatteren eller forfatterne av programvaren til
bare gjøre hva programmet er ment å gjøre.
>> Men det er absolutt ingenting å stoppe de fleste programmene på de fleste
operativsystemer fra å slette filer, fra å laste dem opp til en viss selskapets
nettside, fra trolling rundt, for å kryptere ting.
Og igjen, vi har liksom bygget en hel infrastruktur
årene på tillit.
Og så innser at du nettopp har vært tillitsfulle tilfeldige mennesker og tilfeldige
selskaper for det meste.
>> Og Jonathan antydet også, noen ganger disse selskapene selv er liksom
bevisst ondsinnet, ok?
Sony fanget mye Flack noen år siden for å installere det som ble kalt en
rootkit kit på folks datamaskiner uten deres kjennskap.
Og hovedpunkt av dette var at når du kjøpte en CD for eksempel at de
ikke vil at du skal være i stand til å kopiere eller rippe musikk ut av, CD ville
installere, uten at du vet, et rootkit på datamaskinen.
Rootkit bare betyr programvare som kjører som administrator som potensielt
gjør dårlige ting.
>> Men blant de tingene denne tingen gjorde var det gjemte seg.
Så noen av dere kan være ganske kunnskapsrike med datamaskinen og vet, vel, jeg
kan bare åpne Oppgavebehandling eller Activity Monitor og jeg kan se på alle
av de arcanely navngitte programmer som kjører.
Og hvis noe ser mistenkelig Jeg vil bare drepe den eller slette den.
Men det er hva rootkit gjorde.
Det i hovedsak er sagt, hvis du kjører Task Manager, ikke vis deg.
>> Slik at programvaren var der.
Og bare hvis du virkelig, virkelig så vanskelig kan du selv finne det.
Og dette ble gjort i navnet av kopibeskyttelse.
Men tenk hva som kunne har vært gjort på annen måte.
>> Nå i form av å beskytte deg selv.
En rekke nettsteder er fantastisk nådig i at de setter disse
hengelås ikoner på deres hjemmeside som betyr at nettstedet er sikkert.
Dette er fra bankofamerica.com denne morgenen.
Så hva betyr det lite hengelås det betyr ved siden av knappen Logg på?
>> Absolutt ingenting.
Det betyr at noen vet å bruke Photoshop for å lage et bilde av en
hengelås-ikonet.
Liker bokstavelig talt, det faktum at det er Det er ment å være en positiv
signalisere til brukeren som, ooh, sikkert nettsted.
Jeg skulle stole dette nettstedet og nå skrive inn brukernavn og passord.
Og dette har vært vanlig for år, så sent som i morges.
>> Men tenk på de vaner som dette er å få oss inn.
Vurdere den implisitte budskapet om at alle av disse banker i dette tilfelle har vært
sender oss i mange år.
Hvis du ser hengelås, deretter fest.
Greit?
>> Så hvordan kan du misbruker dette systemet av tillit hvis du er skurken?
Sette en hengelås på nettstedet ditt, og logisk, har brukerne vært
forutsetning for år å anta hengelås betyr sikker.
Og det kan faktisk være sikker.
Du kan ha en fantastisk sikker SSL HTTPS-tilkobling til en
falsk nettside. com.
Og ingen andre i verden kan se at du er i ferd med å gi ham eller henne
ditt brukernavn og passord til kontoen din.
>> Dette skjønt kanskje er en litt mer betryggende.
Så dette er et skjermbilde av toppen av nettleseren min denne morgenen på
bankofamerica.com.
Og legg merke til også her vi har en hengelås-ikonet.
Hva betyr det i denne sammenheng i Chrome minst?
>> Så dette er nå bruker SSL.
Så dette er faktisk en bedre ting.
Og det at krom er slik at det grønt er ment å trekke oppmerksomheten
til det faktum at dette er ikke bare over SSL.
Dette er et selskap som noen ut det har verifisert er faktisk
bankofamerica.com.
Og det betyr at Bank of America, når du kjøper deres såkalte SSL
sertifikat, i hovedsak store tilfeldig, noe tilfeldige tall som implementerer
sikkerhet for dem, de har vært bekreftet av noen uavhengig tredje
parti som sier, Jepp.
Dette er faktisk den administrerende direktør i Bank of Amerika prøver å kjøpe sertifikatet.
Chrome vil derfor stole på at sertifiseringsinstans og si i
grønt, er dette bankofamerica.com.
Og Bank of America betaler bare noen få hundre dollar for at eller et par
tusen i motsetning til en noen titalls dollar.
>> Men også her, hvor mange av dere har noen gang oppførte seg annerledes fordi
nettadressen i nettleseren din er grønn istedenfor sort?
Høyre?
Så et par av oss.
Og det er godt å være paranoid.
Men selv da, de av dere som enda Legg merke til disse tingene, gjør du faktisk
slutte å logge inn i en ellers sikker Nettside hvis nettadressen ikke er grønn?
Greit, så sannsynligvis ikke, ikke sant?
Minst de fleste av oss, hvis det ikke er grønn, mest sannsynlig du bare kommer
å være som, uansett.
Liker, jeg ønsker å logge inn på denne nettsiden.
Det er derfor jeg er her.
Jeg kommer til å logge på likevel.
>> Som en digresjon, er Chrome en liten bedre om dette.
Men det er mange nettlesere som Firefox for eksempel, i hvert fall for
litt tid, hvor som hengelås er, kan du faktisk sette noen
ikon av din egen.
La meg se hva den nyeste versjonen av Firefox ser ut.
Så hvis vi går til CS50.net.
>> OK, så de har fått bedre også.
Hva nettlesere som brukes til å gjøre er å like, her er for eksempel [? SAAS er?]
toppe opp her.
Det er den såkalte favoritt ikonet for et nettsted.
År ago -
faktisk ikke så lenge siden - det lille skjold ville ha vært riktig
her ved siden av nettadressen.
Fordi noen geni besluttet at det ville bare se ganske stilig å ha
din grafiske logo rett ved siden av nettadressen.
Og design klok, som faktisk er ganske overbevisende.
>> Så hva gjorde skurken start gjør?
De begynte å endre sin favoritt ikoner, eller deres standard ikon for en
hjemmeside til å ikke være en kam men en hengelås, som hadde
absolutt ingen mening.
Annet enn deres favoritt ikon ble en hengelås det hadde ingen
indikasjoner på sikkerhet.
>> Så lærdommen her er et par tror jeg.
Det ene er at det faktisk finnes noen velmenende mekanismer for
lærer oss brukere om sikkerhet selv hvis du var ikke engang klar over hva grønn
ment eller hva med HTTPS mente.
Men hvis disse mekanismene få oss inn den dårlige vanen med tillitsfulle nettsteder
når vi ser disse positive signaler, de er veldig lett misbrukt som vi så
bare et øyeblikk siden med noe dumt som dette.
>> Så session hijacking kommer inn spille, som vi sa før,
med cookies for eksempel.
Og hva betyr dette egentlig?
Godt med session hijacking dette er alt om å stjele noens cookies.
Så hvis jeg åpner opp Chrome her, for eksempel, og jeg åpner opp Inspector
her nede, og jeg går til Nettverk Tab -
og vi har gjort dette før -
og jeg går til noe sånt http://facebook.com Enter, en hel
haug med ting går over skjermen på grunn av alle bildene og CSS og
JavaScript-filer.
>> Men hvis jeg ser på denne her merke at Facebook er faktisk å plante en
eller flere informasjonskapsler på min Nettleseren her.
Så disse er i hovedsak de hånd frimerker som representerer meg.
Og nå forhåpentligvis nettleseren min vilje presentere dette igjen og igjen når
borti denne nettsiden.
Men som bare er trygt, sa vi en par uker siden, hvis du bruker SSL.
>> Men selv SSL selv kan bli kompromittert.
Tenk etter hele veien SSL fungerer.
Når din nettleser kobler til en ekstern server via https://, lang historie kort,
kryptografi er involvert.
Det er ikke så enkelt som Caesar eller Visionaire eller DES, DES fra en
stund tilbake i pset2.
Det er mer sofistikert enn det.
Det kalles offentlig nøkkel kryptografi.
Men virkelig stor og veldig tilfeldig Tallene brukes til å rykke ut
informasjon mellom punkt A,, du og punkt B, som facebook.com.
>> Men problemet er, hvor mange av oss igjen noensinne skriver https:// å starte
vår nettside tilkobling i at sikker modus?
Jeg mener, hvor mange av dere selv typen http://facebook.com?
Greit, hvis du gjør det, liker, hallo.
Du trenger ikke å gjøre det lenger, ikke sant?
Leseren vil finne det ut.
>> Men de fleste av oss gjør faktisk bare skrive facebook.com.
Fordi hvis vi bruker en nettleser, den nettlesere har fått smart nok ved
2013 å anta hvis du bruker en browser, skriver du inn en adresse, du
sannsynligvis vil ha tilgang til det ikke via e-post eller direktemelding.
Du mener HTTP og Port 80.
Disse konvensjonene er vedtatt.
>> Men hvordan gjør omdirigering arbeid?
Vel, legge merke til hva som skjer her.
Hvis jeg går tilbake til Chrome -
og la oss gjøre dette i inkognito modus, slik at alle mine
cookies blir kastet bort.
Og la meg gå hit for å, igjen, facebook.com.
Og la oss se hva som skjer.
>> Husker at den første forespørselen var faktisk bare for facebook.com.
Men hva var svaret som jeg fikk?
Det var ikke en 200 OK.
Det var 300 eller 301, som er en omdirigere fortelle meg å gå til
http://www.facebook.com, som er hvor Facebook vil at jeg skal gå.
Men så hvis vi ser på den neste forespørselen, og vi har sett dette før,
Legg merke til hva deres andre responsen er.
Spesielt at de vil ha meg nå til gå til SSL-versjonen av Facebook.
>> Så her er en mulighet.
Dette er en fantastisk nyttig funksjon for bare web og HTTP.
Hvis sluttbrukeren som Facebook vil ha meg å holde seg på den sikre versjonen av deres
nettsted, great.
De vil omdirigere meg for meg selv.
Og så jeg slipper å selv tenke på det.
>> Men hva om mellom punkt A og B, mellom deg og Facebook, er det noen
bad guy, det er noe system administrator ved Harvard som er nysgjerrig
å se hvem vennene dine er.
Eller er det noen -
år siden, dette pleide å høres sprøtt -
men det er noen offentlig instans som NSA hvem som faktisk er interessert
i hvem du er poking på Facebook.
Hvor er muligheten der?
Vel, så lenge noen har tilstrekkelig teknisk kunnskapsrike, og de har tilgang
til selve nettverket via Wi-Fi eller noen fysisk wire,
hva kan de gjøre?
>> Vel, hvis de er på samme nettverk som deg og de vet noe om
TCP / IP og IP-adresser og DNS og hvordan Alle som fungerer, hva om det
Mannen i midten, hva om det nasjonale Security Agency, hva det
kan være, men hva om den aktuelle enheten bare reagerer raskere enn Facebook til
din HTTP-forespørsel og sier: oh, jeg er Facebook.
Gå videre, og her er det HTML for facebook.com.
>> Datamaskiner er ganske utrolig fort.
Så du kan skrive et program som kjører på en server som nsa.gov at når det
hører en forespørsel fra deg for facebook.com, veldig raskt bak
scener får den virkelige facebook.com making en perfekt [? esque?] sikker
SSL-forbindelse mellom NSA og mellom Facebook, får som HTML svært
sikkert for innloggingssiden, og deretter NSA serveren svarer bare til deg
med en innloggingsside for facebook.com.
>> Nå hvor mange av dere selv ville merke at du bruker Facebook via HTTP
fortsatt på det punktet fordi du har uhell koblet til nsa.gov og
ikke Facebook?
Nettadressene ikke endring.
Alt dette blir gjort bak kulissene.
Men de fleste av oss, meg selv inkludert, sannsynligvis ikke ville legge merke til
slik en liten detalj.
>> Så du kan ha en helt gjennomførbar forbindelsen mellom deg og hva du
tror er Facebook, men det er en såkalte mannen i midten.
Og dette er et generelt begrep for mannen i midten angrepet der du har noen
enhet mellom deg og punkt B som er en eller annen måte å manipulere, stjele, eller
se dine data.
Så selv SSL er ikke sikker, spesielt hvis du har blitt lurt til
ikke slå den på grunn av hvordan disse underliggende mekanismene faktisk fungerer.
>> Så en leksjon i dag så er også hvis du virkelig ønsker å være paranoid -
og selv her er det trusler -
du bør virkelig begynne å få inn en vane å skrive i https://www
hva domenenavnet du faktisk bryr seg om.
>> Og som en side for det er enda en trussel med
hensyn til kidnapping av økta.
Veldig ofte når du først besøke en nettsted som facebook.com, med mindre
serveren er konfigurert til å si at som hånd stempel det sette på deg
i går bør sikre seg selv, din Nettleseren kan meget vel, på
besøker ting som facebook.com google.com, twitter.com, nettleseren
kan presentere den hånden stempel bare å bli fiket ned og sa, nei.
Bruk SSL.
>> Men det er for sent på det tidspunktet.
Hvis du allerede har sendt hånden stempel, informasjonskapselen, i klartekst med
uten SSL, har du et brøkdels sekund sårbarhet der noen sniffing
trafikken, enten kollektiv eller NSA, Deretter kan du bruke den samme cookie, og
med litt teknisk kunnskapsrike, presentere det som sitt eget.
>> Et annet angrep du kanskje ikke har tenkt på.
Dette er virkelig på deg hvis du skru dette opp i å skrive noen nettside som
en eller annen måte bruker SQL.
Så her, for eksempel, er en skjerm skutt av Harvards pålogging.
Og dette er et generelt eksempel av noe med en
brukernavn og passord.
Super vanlig.
Så la oss anta at SSL eksisterer og det er ingen mann i midten eller
noe sånt.
Nå fokuserer vi på serverens kode som du kan skrive.
>> Vel, når jeg skriver inn et brukernavn og passord, antar at PIN-tjenesten
er implementert i PHP.
Og du har kanskje noen kode på den serveren som dette.
Få brukernavnet fra stillingen super global og få passord, og deretter
hvis de bruker noen pset7 som koden er det en spørring funksjon
som kan gjøre dette.
Velg stjerne fra brukerne der brukernavn tilsvarer det og passord tilsvarer det.
>> Det ser ved første øyekast, helt rimelig.
Dette er syntaktisk gyldig PHP-kode.
Logisk er det ingenting galt med dette.
Antagelig er det noen flere linjer som faktisk gjøre noe med det
Resultatet som kommer tilbake fra databasen.
Men dette er sårbar for følgende grunn.
>> Legg merke til at, som en god borger, Jeg har satt i anførselstegn, single
sitater, brukernavnet.
Og jeg satt i enkle anførselstegn passordet.
Og det er en god ting fordi de er ikke ment å være tall.
Vanligvis de kommer til å være tekst.
Så jeg siterer dem som strenger.
>> Og hvis jeg nå avansere videre hva om - og jeg har fjernet kuler fra
PIN tjenesten midlertidig -
hva hvis jeg prøver å logge inn som President [? Scroob?]
men jeg påstår at passordet mitt er 12345 'eller '1' = '1, og varsel
hva jeg ikke har gjort.
Jeg gjorde ikke lukke den andre enkelt anførselstegn.
Fordi jeg er ganske skarp her som bad guy.
Og jeg antar de er du ikke veldig bra med din
PHP og MySQL-koden.
Jeg gjetter at du ikke sjekker for tilstedeværelse av sitater.
>> Så hva skjedde er at når Brukeren har skrevet i denne strengen,
spørringen du er i ferd med å skape ser slik ut.
Og lang historie kort, hvis du og noe sammen eller du eller noe
sammen dette kommer til å gå tilbake en rad fra databasen.
Fordi det er alltid slik at en lik en.
>> Og bare fordi du ikke hadde forutsett at brukerne, gode eller dårlige, kanskje
ha en apostrof i navnet du har skapt en SQL-spørring som fortsatt
gyldig, og kommer tilbake nå flere resultater enn du kanskje har tenkt.
Og så denne slemmingen har nå potensielt logget inn på serveren din
fordi databasen er tilbake på rad selv om han eller hun har ingen anelse om hva
[? Scroob oss?] Faktiske passordet er.
>> Oh, innså jeg en skrivefeil her.
Jeg skulle ha sagt passord tilsvarer 12 345 som den forrige
eksempel eller en lik en.
Jeg skal fikse det på nettet.
>> Så hvorfor vi har deg ved hjelp av spørringen funksjon med spørsmålstegn?
En av de tingene spørringen funksjon betyr for deg er det sørger for at
når du passerer i argumentene etter komma her som dette at spørringen
som faktisk sendes til database ser slik ut.
Mye styggere å se på, men tilbake flenger har vært automatisk
satt inn for å unngå nettopp at injeksjon angrep som jeg viste en
øyeblikk siden.
>> Nå er en morsom xkcd at jeg tenkte jeg skulle trekke her oppe som forhåpentligvis skal nå være en
litt mer forståelig er denne her.
>> En liten bit?
Kanskje vi trenger litt mer diskusjon om det.
Så dette er noe som henviser til en liten gutt heter Bobby som har liksom tatt
nytte av et nettsted som er bare tillitsfulle at det brukeren har skrevet inn
i er ikke, faktisk, SQL-kode, men er faktisk en streng.
>> Nå kan du huske at drop -
du har kanskje sett dette - slipp midler slette en tabell, slette en database.
Så hvis du i hovedsak hevder at ditt navn er Robert "; droptabl
estudentsomething,]
du kan godt lure databasen ikke bare til å sjekke at du er
faktisk Robert, men semikolon også fortsette å slippe bordet.
>> Og så SQL-injeksjon angrep kan faktisk være like truende som dette
der du kan slette noens data, kan du velge flere datasett enn
ment, kan du sette eller oppdatere data.
Og du kan faktisk se dette over på hjem trening, ikke for skadelig
formål, men bare for instruksjonsvideo, er når du blir bedt om å logge
inn i din webside, spesielt en slags ikke veldig offentlig, svært populært nettsted,
prøv å logge inn som John O'Reilly eller noen med en
apostrof i navnet.
Eller bokstavelig talt bare skrive apostrof, trykk Enter, og se hva som skjer.
>> Og altfor ofte tragisk nok folk har ikke renses sine innganger og
sørget for at ting som sitater eller semikolon er rømt.
Det er derfor i pset7 gir vi du dette søket funksjonen.
Men ikke under verdsetter nøyaktig hva den gjør for deg.
>> Så med det sagt, liker å bruke nettet denne uken.
Og vi vil se deg på mandag.
>> Ved neste CD50.
>> [MUSIC]