Tip:
Highlight text to annotate it
X
>> [MUSIC]
>> DAVID J. MALAN: Okay.
Så dette er CS50 og dette er slutningen af uge 10.
Så nogle af jer måske har set denne allerede ved at blive, men cirkulerede for sent
er en artikel, som jeg troede, jeg ville læse et uddrag fra, og derefter vise dig en
tre minutter video, der maler det samme billede.
Det var virkelig en rørende historie, jeg tænkte denne skæringspunktet
virkelige verden med virkelig overbevisende anvendelser af teknologien.
>> Så artiklen blev titlen "En dreng oversleeps på toget, bruger Google Maps
at finde familie 25 år senere ". Og første par stykker var
"Da Saroo var fem år gammel gik han med sin ældre bror til at nasse for
ændre på et passagertog i en by omkring to timer
fra sit lille hjemby.
Saroo blev træt og hoppet på en nærliggende tog, hvor han troede, at hans
bror, og derefter faldt i søvn.
Da han vågnede han var i Calcutta, næsten 900 miles væk.
Saroo forsøgte at finde vej tilbage, men han vidste ikke
navnet på hans hjemby.
Og som en lille analfabeter dreng i et stort by fuld af glemte børn, han havde
stort set ingen chance for at komme hjem.
>> Han var en gade barn et stykke tid indtil et lokalt adoption hooked agentur
ham op med en australsk par der bragte ham til
bor i Hobart, Tasmanien.
Saroo flyttede dertil, lærte Engelsk, og voksede op.
Men han har aldrig holdt op med på udkig efter hans familie og hans hjemby.
>> Årtier senere, opdagede han Google Jorden og fulgte køreskinner.
Og give sig selv en ordineret radius baseret på hvor længe han troede, han var
søvn, og hvor hurtigt han troede, at toget foregik, han vidste, han var vokset op
i et varmt klima, vidste han, at han talte Hindi som et barn, og han havde fået at vide
at han lignede han var fra East India.
>> Endelig efter flere års vaskning satellitbillederne, han
anerkendt et par vartegn.
Og efter chatter med en administrator af en nærliggende bys
Facebook-side, at han indså han havde fundet hjem. "
>> Så her er så den video fortæller at fortælling fra hans perspektiv.
>> [VIDEO AFSPIL]
>> -Det var 26 år siden, og jeg var bare ved at vende fem.
Vi fik til togstationen og Vi bordede et tog sammen.
Min bror sagde bare jeg vil bo her, og jeg vil vende tilbage.
Og jeg tænkte bare, ja, du ved, jeg kan lige så godt bare gå på vågeblus og
så vil han bare vække mig.
Og når jeg vågner op næste dag, Hele vogn var tom på en løbsk
tog, et spøgelse tog tager mig, jeg ved ikke hvor.
>> Jeg blev vedtaget ud til Australien til en australsk familie.
Og mor havde dekoreret mit værelse med kortet over Indien, som hun
sætte ved siden af min seng.
Jeg vågner op hver morgen se, at kortet, og derfor er det slags holdt
minderne i live.
>> Folk ville sige, du forsøger at finde en nål i en høstak.
Saroo, vil du aldrig finde det.
Jeg ville have glimt af de steder, Jeg plejede at gå, de blinker
af min familie ansigter.
Der var et billede af min mor siddende ned med korslagte ben
bare at se hende græde.
Livet er bare så hårdt.
Det var min skat.
>> Og jeg var på udkig i Google Map og indså, at der er Google Earth så godt.
I en verden, hvor man kunne zoome ind I begyndt at have alle disse tanker og
hvilke muligheder der dette kunne gøre for mig.
Jeg sagde til mig selv, ja, du kender, du har fået al den fotografiske
erindringer og vartegn, hvor du er fra, og du ved, hvad
Byen ser ud.
Dette kunne være et program, du kan bruge til at finde vej tilbage.
>> Jeg tænkte, ja, jeg vil sætte en prik på Calcutta Station i en radius
linje, som du bør være at søge omkring dette område.
Jeg kom på tværs af disse tog spor.
Og jeg begyndte at følge det, og jeg kom til en togstation, der afspejlede
samme billede, der var i mine erindringer.
>> Alt matches.
Jeg troede bare, jep.
Jeg ved, hvor jeg skal hen.
Jeg skal bare lade det kort, jeg har i mit hoved til at lede mig og tage mig
tilbage til min hjemby.
>> Jeg kom til døren af huset at jeg er født og gik rundt
omkring femten meter rundt om hjørnet.
Der blev tre damer stående udenfor støder op til hinanden.
Og den midterste trådte frem.
Og jeg troede bare, det er din mor.
Hun kom frem, at hun omfavnede mig, og vi var der for omkring fem minutter.
>> Hun greb min hånd, og hun tog mig med til huset og fik på telefonen, og hun
ringede min søster og min bror til at sige at din bror har bare alle de
pludselig optrådte som et spøgelse.
>> Og så var familien genforenet igen.
Alt er godt.
Jeg hjælper min mor ud.
Hun behøver ikke at blive knokle rundt.
Hun kan føre resten af hendes liv i fred.
>> Det var en nål i en høstak, men nålen var der.
Alt er der.
Alt hvad vi har i verden er tryk på en knap.
Men du nødt til at have viljen og viljen til at ville det.
>> [END VIDEOAFSPILNING]
>> Så en rigtig sød historie.
Og det faktisk minder mig om en ganske emne, der har været at få en hel
opmærksomhed for sent i The Crimson, mere nationalt generelt.
Især som MOOCs tager den fase af sent.
MOOCs idet disse massive og åben online kurser, hvoraf CS50 er en.
>> Og folk taler om, hvordan, for Eksempelvis humaniora er ikke rigtig
indhente eller ikke er nær så på mode som de engang var.
Og jeg vil opfordre jer, meget ligesom Jonathan gjorde på mandag, for at tænke
om, som du afslutter 50, og vi ved allerede omkring 50% af jer vil ikke
fortsætte på at tage en anden computer videnskab kursus, og det er helt
fint og forventede.
Fordi en af de overordnede mål af en klasse som dette er virkelig at
bemyndige du fyre med blot et forståelse af, hvordan alle disse ting
fungerer, og hvordan denne verden af teknologi virker.
>> Så når du er tilbage i din egen verdener, uanset om det er pre-med eller
uanset om det er det humanistiske eller samfundsvidenskab eller et andet område
helt, at du fyrene er at bringe nogle tekniske kyndige til bordet og
bidrage til at gøre kloge beslutninger, når det kommer til brug af og
indførelse af teknologi ind i din verden.
>> For eksempel blev jeg mindet om sent også to af bachelor
klasser tog jeg for to år siden, som var sådanne simple anvendelser af teknologi
men lige så overbevisende.
Første nætter med professor Tom Kelly Hvis du har taget klassen.
Det er en klasse på klassisk musik på denne fase her, hvor du lærer en
lidt om musik.
Det er faktisk første nætter, CS50 lånt ideen om spor for dem,
mindre behagelig i mellem og mere behagelig.
>> I min tid havde de forskellige spor for børn med absolut ingen musik
oplevelse som mig, og så børn, der havde optrådt siden de var
fem år gammelt.
Og denne klasse, for eksempel, havde netop en hjemmeside som de fleste andre, men det
var en hjemmeside, der tillod dig at udforske musik på den og afspille
musikalske klip fra klassen, fra internettet, og bare bruge teknologien i et meget
problemfri måde.
>> Anden klasse år senere, at jeg revideres væsentlige i Grad skole,
Anthro 1010, Indledning til Archaeology her.
Det var forbløffende.
Og en af de mest overbevisende alligevel super indlysende, set i bakspejlet, anvendelser af
software var, at professorer i denne klasse brugte Google Earth.
Vi sad på tværs af gaden i nogle auditoriet.
Og du kunne ikke rejse, for eksempel, til Mellemøsten til udgravningen, at en
af professorerne lige var kommet tilbage på, men vi kunne gøre, at stort set ved
flyver rundt i Google Earth og ser på en fugleperspektiv på
udgravning, han var netop vendt tilbage fra en uge siden.
>> Så jeg vil opfordre jer, især inden for humaniora, gå til
tilbage til de afdelinger efter denne klasse at bringe dine afgangsprojekter
med dig eller ideer til din egen, og se lige hvad du kan gøre for at indgyde din
egne marker i humaniora eller ud over med en lille smule af denne slags
ting, som vi har udforsket her i CS50.
>> Så med dette billede malet, tænkte vi vil forsøge at tackle to ting i dag.
One, forsøge at give dig en følelse af hvor du kan gå efter 50 år.
Og i særdeleshed, hvis du vælger at tackle en webbaseret projekt, som det er
utroligt almindeligt, hvordan du kan gå om at tage off alle CS50 s
støttehjul og gå derude på din egen og ikke at skulle stole på en
PDF eller en specifikation af et Pset?
Ikke at skulle stole på en CS50 Apparatet længere.
Men kan virkelig trække dig op af dine bootstraps.
>> Med det sagt, C-baseret afsluttende projekter er velkomne.
Ting, der bruger står for en bærbar bibliotek i
Grafikken er velkomne.
Vi ved bare, at statistisk set en masse folk bide projekter i PHP og
Python og Ruby og MySQL og andre miljøer, så vi vil forudindtagethed nogle af
vores bemærkninger mod det.
>> Men et hurtigt kig tilbage.
Så vi tog for givet i pset7 den kendsgerning, at $ _SESSION eksisterede.
Dette var en super globalt, en global, associative array.
Og hvad betyder dette lade dig gøre?
Funktionelt, hvad er har dette giver os?
Ja?
Hvis du vil spore brugerens id.
Og hvorfor er det nyttigt?
At være i stand til at lagre på indersiden af dette super global JHarvard eller [? Scroobs?]
eller Malan bruger-ID, da han eller hun besøger et websted.
>> Præcis.
Så du behøver ikke at logge i igen og igen.
Det ville være en virkelig halt world wide web Hvis hver gang du klikker på et hyperlink
på et site som Facebook eller hver gang du har klikket på en e-mail i Gmail du
havde re-autentificere at bevise, at det er stadig dig og ikke din værelseskammerat
som kunne have gået op til din computer i dit fravær.
>> Så vi bruger SESSION til bare huske, hvem du er.
Og hvordan dette implementeres under hætten?
Hvordan et websted, der bruger den protokol, som web-browsere og servere
tale, hvordan gør HTTP, som er en statsløse protokol, lad os sige.
>> Og ved statsløse Jeg mener, når du forbindelse til et websted, downloade nogle
HTMLs, nogle JavaScript, nogle CSS, din browserens ikon stopper spinning.
Du behøver ikke have en konstant forbindelse til serveren typisk.
Det er det.
Der er ingen fastholdt tilstand konstant.
Så hvordan er SESSION gennemføres på en sådan en måde, at hver gang du besøger en
ny side, hjemmesiden husker hvem du er?
Hvad er den underliggende implementering detaljer?
Råbe det ud.
Det er et ord.
>> Cookies.
Ok.
Så cookies.
Nå, hvordan anvendes cookies?
Vi vil minde om, at en cookie er generelt bare et stykke information.
Og det er ofte en stor tilfældig nummer, men ikke altid.
Og en cookie er plantet på din harddisk drev eller i computerens RAM, så
at hver gang du gense det samme hjemmeside, din browser minder
server, jeg bruger 1234567.
Jeg bruger 1234567.
>> Og så længe serveren er husket at brugeren 1234567 er
JHarvard, vil hjemmesiden bare antage at du er hvem du siger du er.
Og huske, at vi præsenterer disse cookies slags i form af en
virtuel hånd stå.
Det er sendt i HTTP headers bare for at minde den server, du er, hvem det
tror du er.
>> Selvfølgelig er der en trussel.
Hvilken trussel betyder det åbne os op til, hvis vi hovedsageligt bruger en slags klub
eller en forlystelsespark mekanisme for at huske, hvem vi er?
>> Hvis du kopierer en andens cookie og kapre deres session, så at sige, du
kan foregive at være en anden, og website mest sandsynlige er bare at
tror dig.
Så kommer vi tilbage til.
Fordi den anden tema for dag ud empowerment også taler
om den meget skræmmende verden vi lever i og hvor meget af det, du gør på
nettet, hvor meget af det, du gør selv på din mobiltelefon i dag, kan være
spores virkelig af alle mellem dig og punkt B.
>> Og Ajax, tilbagekaldelse.
Vi kiggede kun kort på dette, selvom du har brugt det
indirekte i pset8 fordi du bruger Google Maps og fordi du er
ved hjælp af Google Earth.
Google Maps og Google Earth ikke downloade hele verden til din
desktop, naturligvis, den øjeblik du indlæse pset8.
Den har kun henter en firkant af verden eller en større kvadrat af jorden.
Og så hver gang du slags styre uden for rækkevidde vil du måske bemærke -
især hvis en langsom forbindelse - du kunne se nogle grå for et øjeblik
eller en smule fuzzy billedsprog som Computeren downloader flere sådanne fliser,
flere sådanne billeder fra verden eller jorden.
>> Og Ajax er generelt teknik ved hvilke websteder, der gør det.
Når du har brug for mere af kortet, dit browseren skal bruge Ajax, som er
ikke i sig selv et sprog eller teknologi, det er bare en teknik.
Det er brugen af JavaScript gå få mere information fra en server,
giver din browser for at gå få, hvad der er til øst eller hvad der er vest for
hvad er ellers i øjeblikket bliver vist i dette kort.
Så dette er et emne, som mange af jer vil støde enten direkte eller
indirekte via afgangsprojekter, hvis du vælger at gøre noget, der er
tilsvarende dynamik, er trække data fra nogle tredjeparts hjemmeside.
>> Så vi har fået en rigtig spændende næste onsdag forude.
Quiz én, de oplysninger, som er på CS50.net tidligere.
Vide, at der vil være en gennemgang session på mandag på 5:30.
Datoen og klokkeslættet er allerede sendt på CS50.net i det Om ark.
Og lad os vide, at du har spørgsmål.
Pset8 mellemtiden er allerede i dine hænder.
>> Og lad mig lige nævne et FAQ at spare folk nogle stress.
For det meste en masse af snakken vi ser på kontortid og en masse
bugs vi ser indberettet på Diskuter er faktisk bugs i en elevs kode.
Men når du er stødt på noget ligesom Google Earth plug-in crashe
eller ikke engang fungerer, og du er sikker det er ikke dig, det er ikke en
[? chamad?] problem, det er ikke en bug dig indføres i
fordeling kode.
>> Indse bare FYI -
dette er slags plan Z -
at sidste gang vi brugte dette problem indstille og vi løb ind lignende
spørgsmål, der er en linje kode i service.js der hovedsagelig er det,
der siger, drej bygninger på.
Og de arbejder rundt sidste gang vi gjorde dette, igen, hjørne tilfælde, hvor
studerende kunne bare ikke få det darn ting til arbejde, er at ændre sand til falsk
i det ene linje kode.
Og du vil finde det, hvis du søger gennem service.js.
>> Jeg vil ikke anbefale dette, fordi du vil skabe den mest golde landskab
of Cambridge, Massachusetts.
Dette vil bogstaveligt tromle din verden så alt hvad du ser, er undervisningen
stipendiater og kursus assistenter på horisonten og ingen bygninger.
Men indse uanset årsagen til Google Earth plug-in synes stadig at være
buggy et år senere, så dette kan være din fail gemme.
Så snarere end ty til tårer, resort at dreje bygninger fra, hvis du kender
det er plug-in, der ikke samarbejder på din Mac eller PC.
Men dette er igen sidste udvej, hvis er du sikker på det er ikke en fejl.
>> Så hackathon.
Et par teasere bare at få dig ophidset.
Vi havde en hel SU'er.
Og bare for at male et billede af, hvad venter, jeg troede, jeg ville give dig et par
sekunder husker denne billedsprog fra sidste år.
>> [MUSIC]
>> DAVID J. MALAN: Vent, oh.
Vi har endda vores bogstavelige CS50 rumfærger.
>> [MUSIC]
>> DAVID J. MALAN: Så det er hvad der venter dig i form af hackathon.
Og det vil være en mulighed, at være klar, ikke at starte din endelige
projekter, men at fortsætte arbejdet med din endelige projekter sammen
klassekammerater og personale og masser af mad.
Og igen, hvis du er vågen kl 5:00 Vi vil tage dig ned ad vejen til IHOP.
>> Den CS50 fair, i mellemtiden, er klimaks for hele klassen, hvor
du medbringe din bærbare og venner, måske endda familie til et værelse på campus
ned ad gaden for at udstille dine projekter på bærbare computere, på høje borde
som dette med masser af mad og venner og musik i baggrunden,
samt vores venner fra industrien.
Virksomheder som Facebook og Microsoft og Google og Amazon og klaser af
andre, så hvis de er interesseret i blot høre om den virkelige verden, eller
chatter med folk om den virkelige verden praktik eller fuld tid muligheder
ved, at nogle af vores venner fra industrien vil være der.
Og et par billeder, vi kan male her er som følger.
>> [MUSIC]
>> DAVID J. MALAN: Okay.
Så det er så det CS50 fair.
Så lad os nu fortsætte med at fortælle en historie der virkelig vil give dig forhåbentlig
for ting som afgangsprojekter.
Så en af de få små ting til frø din sind, enten til afgangsprojekter
eller bare mere generelt for projekter, du kan beslutte at tackle efter
kurset, er disse alle dokumenterede på manual.cs50.net hvor CS50
manual, hvor vi har masser af teknikker dokumenteret.
>> Og dette er blot stenografi notation for siger, at der findes i
verdens ting kaldet SMS til e-mail gateways, som er en fancy måde
siger, er der servere i verden der ved, hvordan man konverterer e-mails til
tekstbeskeder.
Så hvis du for din endelige projekt, du vil at skabe en slags mobile tema
service, der giver dig mulighed for at advare venner eller brugere til arrangementer på campus
eller hvad der bliver serveret i D Hall den aften, eller en sådan alarm funktion,
vide, at det er simpelt som at sende en e-mail som med PHPMailer som du
kunne have brugt til pset7 eller vi oplevede kortvarigt en uge eller så siden,
adresser som denne.
>> Og i virkeligheden kan du tekst er dette under forudsætning af din ven har en ubegrænset sms'er
plan, og du ikke ønsker at oplade dem $ 0.10.
Men hvis du sender en e-mail til din ven hvem du kender at have Verizon eller
AT & T bruger Gmail og bare sende den til deres telefonnummer på uanset
sub domæne er der, indser du vil sende en SMS-besked.
>> Men dette er en af de ting at være forsigtig med.
Hvis du trold gennem sidste års CS50 videoer, jeg tror det var, en rædselsvækkende,
rædselsvækkende, rædselsvækkende bug jeg skrev i kode endte med at sende omkring 20.000 tekst
budskaber lever til vores elever i klassen.
Og kun fordi nogen har bemærket, at de fik flere tekst
beskeder fra mig havde jeg den midlerne til at slå Kontrol C hurtigt
og standse denne proces.
Kontrol C, du husker, er din ven i tilfælde af uendelig løkke.
Så pas på den effekt, vi lige har givet til du hellere uansvarligt, de fleste
sandsynligt, baseret på mine egne erfaringer.
Men det er på nettet og har været der i nogen tid.
>> Ok.
Så textmarks.com.
Så dette er en hjemmeside.
Og der er klaser af andre derude så godt, at vi faktisk har brugt
som en klasse for år for at være i stand at modtage SMS-beskeder.
Desværre sender SMS-beskeder er let som at sende e-mails som.
Modtagelse er lidt hårdere, især hvis du ønsker at have en af
disse sexy korte koder, der er kun fem eller seks cifre.
>> Så for eksempel, for år, du har været i stand til at sende en sms - og du
kan prøve det så godt -
til 41411.
Og det er telefonnummeret til denne særlige opstart.
Og hvis du sender en besked til 41411 -
Jeg vil bare skrive det op her, så 41411 -
og derefter sende dem en besked gerne SBOY for Shuttle Boy.
Og skriv derefter i noget, ligesom Mather quad.
Så du sende det tekstmeddelelse til telefonnummeret.
Inden for et par sekunder, bør du komme tilbage et svar fra CS50 Shuttle
Dreng tjeneste, der er shuttle planlægning software, som vi har haft ud
der på nettet for et stykke tid.
Og det vil reagere på dig via SMS.
>> Fordi hvad vi har gjort som en klasse, som en programmør, er at skrive software,
konfigureret vores gratis konto med tekst mærker til at lytte til tekstbeskeder sendt
at SBOY på dette nummer.
Og hvad de gør, er videresende dem tekst budskaber til vores PHP-baserede hjemmeside som
HTTP parametre siger her.
Denne bruger med dette telefonnummer sendt dig denne besked.
Gøre med det hvad du vil.
>> Så vi skrev noget software at ved modtager en streng som SBOY Mather
quad, vi parse det.
Vi regne ud, hvor de rum er mellem ord.
Og vi som klasse beslutte hvordan man reagerer på det.
Og hvis du prøver at nu, for eksempel, bør du se via svar inden for en
få sekunder, de næste par rumfærger gå fra Mather til quad, hvis nogen.
Og der er andre stopper.
Du kan skrive Boylston eller andre sådanne stopper på campus, og det bør
genkende disse ord.
>> Så parse.com.
Dette er en anden service, som vi har været peger nogle elever på for
afgangsprojekter, der er vidunderligt i, at det er gratis for en
rimeligt beløb for brugen.
Og hvis jeg går til parse.com du vil se at dette er et alternativ til
faktisk at have noget som din egen MySQL-database.
Og helt ærligt, det er bare slags fortryllende.
Dette er, hvad der er inde i sky selv på en overskyet dag.
>> Så parse.com tillader dig at gøre en bundt af interessante ting.
Og der er andre alternativer til dette derude.
For eksempel kan du bruge dem som din back end-databasen.
Så du behøver ikke at have en web-hosting firma.
Du behøver ikke at have en MySQL-database.
Du kan i stedet bruge deres ryg ende.
>> Hvis du laver et mobilt projekt for Android eller iOS eller lignende, ved, at
der findes ting som push-tjenester så du kan skubbe beskeder til dine venner
eller dine brugeres hjem skærme.
Og så en masse andre karakteristika.
>> Så hvis du har interesse, så tjek disse websteder og websteder som dem
bare se, hvor mange andre folkeslag ' skuldre, du kan stå på at gøre
virkelig cool software på din egen.
>> Nu i form af godkendelse, en FAQ, er, hvordan du rent faktisk garanterer
at dine brugere er folk på campus, Harvard studerende eller fakultetet eller ansatte?
Så CS50 har sin egen autentificering tjeneste kaldet CS50 ID.
Gå til denne URL, og du kan begrænse din hjemmeside for alle med en Harvard
ID, f.eks.
Så ved, at vi kan håndtere det.
Du fyre bør ikke være i erhvervslivet at sige,? hvad er din Harvard ID
Hvad er din Harvard PIN-kode?
Lad mig nu gøre noget med det.
Vi vil gøre alt dette.
Og hvad vi vil give dig tilbage, er andens navn og e-mail-adresse, men
ikke noget følsomme.
>> En app på en mobil enhed, kan det være lavet til at arbejde på en mobil enhed, men
Det er ikke helt designet til det.
Så du ender med at bruge en ikke triviel mængde tid at gøre det.
Så jeg ville modvirke denne rute for nu.
Dette er virkelig beregnet til web-baserede applikationer.
>> Så web hosting.
Så hvis du ikke har set på kursets hjemmeside -
og her er, hvor vi vil begynde en historie -
web hosting handler om at betale for normalt en service, vært for en ejet server
af en anden på internettet, der har en IP-adresse, og du derefter sætte din
website på det.
Og de normalt give dig email konti og databaser
og andre sådanne funktioner.
>> Vide, at hvis du ikke ønsker at rent faktisk betale for en sådan, skal du gå til denne URL
der og CS50 har faktisk en non-profit konto, som du kan bruge til at
har faktisk ikke http://project apparatets inderside
for din endelige projekt.
Hvis du rent faktisk ønsker det skal være noget ligesom, isawyouharvard.com,
kan du købe dette domænenavn - selv ikke netop en - og
så kan du gå om hosting det på en offentlig web-server som vi kan tilbyde
jer igennem her.
>> Og i virkeligheden, hvis ukendte, hvis du aldrig har været til
isawyouharvard.com, en, derned.
Men to, ved, at det var en ung Kvindens navn ved Tej Til Toor Too to
år siden, tre år siden, der var en CS50 alumner, der skete en dag eller to
før CS50 messen sendt en e-mail til hendes hus postliste og voila.
To dage senere af CS50 fair, hun havde hundreder af brugere krybende på
hinanden på hendes hjemmeside, og at sige, hvordan de havde set
hende eller ham på campus.
Så det er en af CS50 favorit succeshistorier fra
et CS50 afgangsprojekt.
>> Så hvordan kan du gå om at sætte en hjemmeside lide, at på internettet?
Tja, der er et par sådanne ingredienser her.
Så en, skal du købe et domænenavn.
Der er bundter af steder i verden, hvorfra du kan
købe et domænenavn.
Og for eksempel, som vi anbefaler kun fordi det er populært
og det er billigt kaldes namecheap.com.
Men du kan gå godaddy.com og snesevis af andre derude.
Du kan læse op på vurderinger.
>> Men for det meste er det ikke noget fra, hvem du
købe et domænenavn.
Og de varierer i pris og de varierer i endelse.
De endelser som. Com,., Netto, . Org. Io. Tv, der
faktisk varierer i pris.
Men hvis vi ønskede at gøre noget lignende cats.com vi kan gå til denne hjemmeside,
klik på Søg.
Formentlig denne ene er taget.
Men tilsyneladende catsagainst.com er tilgængelig.
pluscats.com er tilgængelig.
Lovecats, catscorner, dampcats.net.
Alt dette forhåbentlig pseudo tilfældigt genereret.
Hvis du vil have cats.pw, 1500 dollar alene, som er en smule sindssyg.
Så nogen har virkelig revet op alle katten relaterede domænenavne her for
varierende priser.
>> Som en sidebemærkning, lad os se.
Hvem har cats.com?
Vid, at du fyre har på din rådighed retfærdigt
sofistikerede kommandoer nu.
Ligesom jeg kan skrive bogstaveligt hvem der er cats.com?
Og på grund af den måde, internettet er struktureret kan du faktisk se, hvem
har registreret dette.
Tilsyneladende er denne person [uhørligt] bruger en proxy service.
Så uanset hvem der ejer cats.com ikke ønsker verden til at vide, hvem de er.
Så de har registreret, hvis gennem nogle tilfældige privatliv service.
Men nogle gange er du faktisk få egentlige ejere.
>> Og det er at sige, især hvis du er forfølge nogle opstart, og du
virkelig ønsker nogle domænenavn, og du er villige til at betale en anden for
det, kan du regne ud, kontakt oplysninger på den måde.
>> Men også interessant er det.
Lad mig rulle op til denne del.
Så dette er den samme output.
Og dette er bare tarvelige.
Så tilsyneladende cats.com kan være din for den rigtige pris.
Men hvad er interessant her er, at navneservere -
dette er total misbrug af, hvad et navn server er meningen at være - dit navn
serveren er ikke meningen at være thisdomainforsale.com.
Hvis vi rent faktisk vælge noget lignende -
lad os vælge noget lidt mere legitimt ud, hvem der er google.com,
og rulle op her.
Så her -
hvad skete der?
Interessant.
Beyond hvem er -
lad os holde det mere lav nøgle.
>> Hvem er mit.edu?
OK.
Dette er nyttigt.
Så dette er hvad jeg håbede på.
Lovlig brug af DNS service.
Navneservere her indikerer følgende.
Det er MIT måde at sige, når det person i verden, uanset hvor de
er typer i mit.edu og hits Enter, din bærbare computer, uanset om Mac eller pc, vil
en eller anden måde til sidst regne ud, at de mennesker i verden, der ved, hvad de
IP-adressen er mit.edu eller nogen af de sub-domæner på mit.edu eller nogen af
Disse servere her - og det faktisk ligner MITs infrastruktur
temmelig robust som du ville forvente.
De har flere navne servere hvilket er godt for redundans.
Og i virkeligheden, synes de at være globalt fordelt over hele verden.
En flok af dem synes at være i USA, et par i Asien, et i Europa, to
i et andet sted.
>> Men pointen her er, at DNS, som Vi har taget for givet, og
generelt beskrives som en stor Excel-tabel der har IP-adresser og domænenavne
navne er faktisk temmelig sofistikeret hierarkisk service, så i
verden er der faktisk et endeligt antal af servere, der hovedsagelig ved, hvor
alle. coms er eller alle de. net er, alle af
. Orgs er, og så videre.
>> Så når du går videre og købe et domæne navn fra et sted som navn Cheap eller
Go Daddy eller enhver anden hjemmeside, en af de vigtigste skridt, at du bliver nødt til at gøre
dig, hvis du gør dette selv for din endelige projekt, er at fortælle registratoren
fra hvem du køber domænet navn, der i verden kender dit
hjemmesidens IP-adresser, som dine navneservere er.
>> Så hvis du bruger, for eksempel CS50 s hosting-konto - vi tilfældigvis har
denne konto via dreamhost.com der er en
populære web-hosting firma -
de vil fortælle dig, at du skal købe dit domæne og fortælle verden, at
dit domænes navneserver er ns1.dreamhost.com, ns2.dreamhost.com,
og ns3.dreamhost.com.
>> Men det er det.
At købe et domænenavn betyder at give dem penge og få ejerskab af
domæne, men det er mere som en leje selv.
Du får det i et år og derefter de bill du recurringly for resten af
dit liv, indtil du annullerer domænenavnet.
Og så skal du fortælle dem, hvem navneservere er.
Men så er du færdig med din registrator.
Og derfra kan du interagere kun med din web-hosting firma, som
i CS50 sag vil være DreamHost.
Men igen, vil mere dokumentation være leveret til dig, hvis du beslutter at gå
denne rute.
>> Så hvis du gør dette efter kursets ende blot googling web-hosting
Selskabet vil slå op i tusindvis af muligheder.
Og jeg vil generelt opfordre dig til at spørge venner, der måske har brugt en
Selskabet før, hvis de anbefaler dem og havde en god oplevelse.
>> Fordi der er en masse flue om natten web-hosting virksomheder, som en fyr i
sin kælder med en server der har en IP-adresse.
Han har nogle ekstra RAM og harddisk plads og bare sælger web hosting
regnskab, også selv om der er ingen måde, at serveren kunne håndtere hundredvis af
brugere eller tusindvis af brugere.
Så indser du får hvad du betaler for.
>> For et stykke tid for min personlige hjem side - og det var helt acceptabelt
fordi jeg havde, ligesom, to besøgende om måneden -
Jeg betaler, ligesom, $ 2,95 om måneden.
Og jeg er temmelig sikker på det var i en eller andens kælder.
Men igen, får du ikke nødvendigvis nogen garantier for oppetid eller
skalerbarhed.
Så igen er du typisk leder på noget mere end det.
>> Jamen, hvad SSL?
Så hvad er SSL bruges til?
Lad os nu begynde at styre i retninger for sikkerhed og ting,
kan skade os.
Især som du venture ud på din egen.
>> Hvad er SSL, eller hvad der er SSL bruges til?
Sikkerhed, OK.
Så det er brugt til sikkerhed.
Hvad betyder det?
Så det står for Secure Sockets Layer.
Og det er angivet ved en URL der starter med https://.
Mange af os har sikkert aldrig skrevet https://, men du vil ofte opleve, at
din browser er omdirigeret fra HTTP til HTTPS, så alt er der
efter krypteret.
>> FYI, ved hjælp af SSL kræver typisk, at har du en unik IP-adresse.
Og typisk for at få en unik IP-adresse du nødt til at betale en web-hosting
Virksomhedens et par dollars mere per måned.
Så indse dette er meget let gennemført disse dage ved at købe en IP
adresse og ved køb, hvad der er kaldes et SSL-certifikat.
Men indse, at det kommer på nogle ekstra omkostninger.
Og som vi vil prøve at skræmme på bare et bit, det er ikke engang nødvendigvis 100%
beskyttende over hvad det er du forsøger at beskytte.
>> Så for sikkerhed, ville jeg troede, jeg ville gør en slags tilfældig Overgang her.
Som du måske ved fra CS50 foredrag videoer, har vores produktion team været en
fan, som jeg har at tage virkelig rart fotografering af campus, og antennen
fotografering senest.
Hvis du nogensinde kigge op, og du ser noget flyvende med et lille kamera,
Det kan faktisk være CS50.
Og jeg troede bare jeg ville dele minut nogle af optagelserne har holdet
samlet, især da vi ser på forårssemestret og næste efterår.
Hvis nogen af jer har en evne til fotografering, videography, ville vi
elsker at få dig involveret bag kulisserne.
Men mere om disse detaljer i en uge.
>> [MUSIC]
>> DAVID J. MALAN: Slår ud der er en minigolfbane på toppen af
stadion, som vi aldrig vidste om.
>> [MUSIC]
>> DAVID J. MALAN: Du kan se skitsere af drone der.
>> [MUSIC]
>> DAVID J. MALAN: Den bedste del her er, se jogger til venstre.
>> [MUSIC]
>> David J. MALAN: Et andet eksempel på, hvad du kan gøre med teknologi, der er
kun tangentielt ærligt, relateret til sikkerhed.
Men jeg troede det ville være en mere sjov måde for bare at sige, sikkerhed.
Så lad os se om vi ikke kan skræmme jer nu med ikke blot lidt af et par
trusler, men også et underliggende forståelse af, hvad disse trusler
er så at bevæge sig fremad, kan du beslutte, hvordan og hvorvidt at forsvare
dig mod disse ting og på mindste at være opmærksomme på dem, som du
træffe beslutninger om, hvorvidt eller ikke at Send denne e-mail, om ikke at logge
ind i denne hjemmeside, om eller ikke at bruge cyber cafe trådløs internetadgang
punkt, således at du ved, hvad trusler er faktisk omkring dig.
>> Så Jonathan nævnt noget gerne dette på mandag.
Han havde et vindue skærmbillede.
Denne ene er en Mac.
Hvor mange af jer har nogensinde installeret software på din Mac eller PC?
Naturligvis alle.
Hvor mange af jer har tænkt meget til at skrive i din adgangskode
når du bliver bedt?
Jeg mener, selv jeg ikke gør det, helt ærligt.
Så et par af os er gode på at være paranoid.
Men overveje, hvad du faktisk gør her.
>> På en typisk Mac eller pc har du en administratorkonto.
Og typisk du er den eneste bruger en bærbar computer mindst disse dage.
Så din konto, Malan eller JHarvard eller hvad det er, er det
administrator konto.
Og hvad det betyder er, du har root-adgang til din computer.
Du kan installere noget, du ønsker, slette noget, du ønsker.
>> Og typisk i disse dage, på grund af dateret design beslutninger fra år siden,
den måde de fleste software bliver installeret er som administrator.
Og selv om din Mac eller pc har mindst fået smart nok over
år med de nyeste inkarnationer af Mac OS og Windows til ikke at køre din
brugernavn som standard som de administrator, når du henter noget
nyt program fra internettet og forsøge at installere det, er du sandsynligvis kommer
at blive bedt om dit kodeord.
Men fangsten er på dette punkt, er du bogstaveligt afleverer nøglerne til din
computer til hvad tilfældige program, du lige har downloadet og
gør det muligt at installere hvad det vil.
>> Og som Jonathan hentydede til, indser at det kan sige, at det ønsker at
installere software, som du holder om, Spotify eller iTunes eller hvad
det er du prøver at installere.
Men du er bogstaveligt tillid til forfatteren eller forfattere af softwaren til
kun gøre, hvad programmet er meningen at gøre.
>> Men der er absolut intet stoppe de fleste programmer på de fleste
operativsystemer fra sletning af filer, fra at uploade dem til nogle virksomheds
websted, fra trolling rundt, til kryptering ting.
Og igen, har vi slags indbygget en hel infrastruktur over
årene på tillid.
Og så indse, at du lige har været tillidsfuld tilfældige mennesker og tilfældige
virksomheder for det meste.
>> Og Jonathan hentydet til også, undertiden disse selskaber selv er slags
bevidst ondsindet, okay?
Sony fanget en masse Flack et par år siden for at installere det, der blev kaldt en
rootkit kit på folks computere uden deres viden.
Og kernen i dette var, at når du købte en cd for eksempel, at de
ikke ønsker at være i stand til at kopiere eller rippe musik ud af den cd ville
installere, uden din vidende, et rootkit på din computer.
Rootkit bare betyder software, der kører som administrator, som potentielt
gør slemme ting.
>> Men blandt de ting denne ting gjorde blev det skjulte selv.
Så nogle af jer måske være temmelig kyndige med din computer og kender godt, jeg
kan bare åbne Task Manager eller Activity Monitor og jeg kan se på alle
De arcanely navngivne programmer der kører.
Og hvis noget ser mistænkeligt Jeg vil bare dræbe det eller slette det.
Men det er, hvad rootkit gjorde.
Det væsentlige er sagt, hvis den kører Task Manager ikke viser dig selv.
>> Så softwaren var der.
Og kun hvis du virkelig, virkelig kiggede svært kan du endda finde det.
Og dette blev gjort i navnet af kopibeskyttelse.
Men tænk hvad der kunne blevet gjort andet.
>> Nu i form af at beskytte dig selv.
En masse hjemmesider er vidunderligt elskværdig at de sætter disse
hængelås ikoner på deres hjemmeside, som betyder, at hjemmesiden er sikker.
Dette er fra bankofamerica.com morges.
Så hvad betyder det lille hængelås Der betyder ved siden af knappen Log ind?
>> Absolut intet.
Det betyder nogen ved, hvordan man bruger Photoshop til at lave et billede af en
hængelås-ikonet.
Ligesom helt bogstaveligt, at det er der menes at være en positiv
signalere til brugeren lignende, ooh, sikkert websted.
Jeg skulle have tillid til denne hjemmeside og nu skrive i mit brugernavn og password.
Og det har været konventionel for år, så sent som i morges.
>> Men overveje vaner, dette er at få os ind.
Overvej den implicitte budskab, at alle af disse banker i dette tilfælde har været
sende os i mange år.
Hvis du ser hængelås, fastgør derefter.
Okay?
>> Så hvordan kan du misbruger dette system af tillid, hvis du er den dårlige fyr?
Sæt en hængelås på din hjemmeside, og logisk, har brugerne været
konditioneres år at antage hængelås betyder sikker.
Og det kan faktisk være sikker.
Du har måske en dejlig sikker SSL HTTPS-forbindelse til en
falsk hjemmeside. com.
Og ingen andre i verden kan se at du er ved at udlevere ham eller hende
dit brugernavn og password til din konto.
>> Dette selvom, måske, er en lidt mere betryggende.
Så dette er et skærmbillede af den øverste af min browser i morges
bankofamerica.com.
Og mærke også her har vi have en hængelås ikon.
Hvad betyder det i denne sammenhæng i Chrome mindst?
>> Så dette er nu ved hjælp af SSL.
Så det er faktisk en bedre ting.
Og det faktum, at Chrome gør det grøn menes at henlede vores opmærksomhed
det faktum, at dette er ikke kun via SSL.
Det er en virksomhed, en person ud Der har bekræftet, er faktisk
bankofamerica.com.
Og det betyder, at Bank of America, når de køber deres såkaldte SSL
certifikat, hovedsageligt store tilfældigt noget tilfældige tal, der implementerer
sikkerhed for dem, har de været verificeret af nogle uafhængig tredjemand
parti, der siger, jep.
Dette er faktisk den administrerende direktør for Bank of Amerika forsøger at købe certifikatet.
Chrome vil derfor tillid til, at godkendelsesmyndighed og siger i
grøn, dette er bankofamerica.com.
Og Bank of America bare betaler et par hundrede dollars for at eller nogle få
tusinde i modsætning til en par snese af dollars.
>> Men også her hvor mange af jer har nogensinde opførte sig anderledes, fordi
URL i din browser er grøn i stedet for sort?
Right?
Så et par af os.
Og det er godt at være paranoid.
Men selv da, dem af jer der selv mærke til disse ting, så gør du faktisk
stoppe logge ind en ellers sikker websted, hvis URL er ikke grøn?
Okay, så sandsynligvis ikke, vel?
Mindst de fleste af os, hvis det ikke er grøn, sandsynligvis du bare
at være som, uanset hvad.
Ligesom, jeg ønsker at logge ind på dette website.
Det er derfor, jeg er her.
Jeg har tænkt mig at logge ind alligevel.
>> Som en sidebemærkning er Chrome en smule bedre om dette.
Men der er en masse browsere som Firefox for eksempel, i det mindste for
lidt tid, når denne hængelåsikonet er, kan du faktisk sætte nogen
ikon for din egen.
Lad mig se, hvad den nyeste version af Firefox ser ud.
Så hvis vi går til CS50.net.
>> OK, så de har fået bedre samt.
Hvad de browsere, der anvendes til at gøre, er at lide, her er for eksempel [? SAAS er?]
crest heroppe.
Det er den såkaldte favorit ikon for en hjemmeside.
År siden -
faktisk ikke så længe siden - den lille skjold ville have været ret
her ved siden af URL'en.
Fordi nogle geni besluttet, at det ville bare se temmelig classy at have
Deres grafiske logo til højre ved siden af din webadresse.
Og design klog, der rent faktisk er temmelig overbevisende.
>> Så hvad gjorde skurken begynde at gøre?
De begyndte at ændre deres favorit ikoner eller deres standard ikon for en
hjemmeside for at være ikke en bjergkam men en hængelås, som havde
absolut ingen mening.
Andre end deres favorit ikon blev en hængelås det havde ingen
indikationer af sikkerhed.
>> Så de erfaringer her er et par tror jeg.
Én er, at der faktisk nogle velmenende mekanismer for
undervise os brugere om sikkerheden endnu hvis du ikke var engang klar, hvad grøn
betød, eller hvad endog HTTPS betød.
Men hvis disse mekanismer få os ind den dårlige vane med tillidsfulde websites
når vi ser de positive signaler, de er meget let misbruges som vi så
bare for et øjeblik siden med noget fjollet som dette.
>> Så sessionskapring kommer ind spille, da vi sagde før,
med cookies for eksempel.
Og hvad betyder det egentlig?
Godt med sessionskapring dette er alle om at stjæle nogens cookies.
Så hvis jeg åbner Chrome her, for Eksempelvis og jeg åbner op for Inspector
hernede og jeg går til Netværk Tab -
og vi har gjort det før -
og jeg går til noget som http://facebook.com Enter, en hel
masse ting går over skærmen på grund af alle de billeder og CSS og
JavaScript-filer.
>> Men hvis jeg ser på denne ene her mærke at Facebook faktisk er plantning en
eller flere cookies på min browser lige her.
Så disse er væsentlige hånd frimærker, der repræsenterer mig.
Og nu forhåbentlig min browser vil præsentere dette igen og igen, når
genoptagelse denne hjemmeside.
Men at det kun er sikkert, vi sagde en par uger siden, hvis du bruger SSL.
>> Men selv SSL selv kan være kompromitteret.
Overveje efter hele vejen SSL virker.
Når din browser opretter forbindelse til en ekstern server via https://, lang historie kort,
kryptografi er involveret.
Det er ikke så simpelt som Cæsar eller Visionaire eller endda DES DES fra en
mens tilbage i pset2.
Det er mere sofistikeret end det.
Det hedder offentlig nøgle kryptografi.
Men virkelig store og virkelig random Tallene bruges til at kryptere
oplysninger mellem punkt A, dig, og punkt B, ligesom facebook.com.
>> Men problemet er, hvor mange af os igen nogensinde skrive https:// at starte
vores hjemmeside tilslutning i at sikker tilstand?
Jeg mener, hvor mange af jer selv typen http://facebook.com?
Okay, hvis du gør, vil, hej.
Du behøver ikke at gøre det længere, right?
Browseren vil regne det ud.
>> Men de fleste af os gør faktisk bare skrive facebook.com.
For hvis vi bruger en browser, det browsere har fået smart nok af
2013 til påtage sig, hvis du bruger en browser, du skriver i en adresse, du
sandsynligvis ønsker at få adgang til det ikke via e-mail eller instant message.
Du mener HTTP og Port 80.
Disse konventioner er blevet vedtaget.
>> Men hvordan fungerer omdirigering arbejde?
Nå, mærke til, hvad der sker her.
Hvis jeg går tilbage til Chrome -
og lad os gøre dette i incognito tilstand, så alle mine
cookies er smidt væk.
Og lad mig gå her til, igen, facebook.com.
Og lad os se hvad der sker.
>> Husk på, at den første anmodning var ja bare for facebook.com.
Men hvad var det svar, jeg fik?
Det var ikke en 200 OK.
Det var 300 eller 301, som er en omdirigere fortæller mig at gå til
http://www.facebook.com, der er hvor Facebook vil have mig til at gå.
Men så hvis vi ser på den næste anmodning og vi har set det før,
mærke til, hvad deres anden reaktion er.
Konkret at de vil have mig nu gå til SSL version af Facebook.
>> Så her er en mulighed.
Dette er et vidunderligt nyttig funktion for bare nettet og HTTP.
Hvis slutbrugeren som Facebook vil have mig at bo på den sikre version af deres
hjemmeside, stor.
De vil omdirigere mig for mig selv.
Og så har jeg ikke selv tænke over det.
>> Men hvad nu hvis mellem punkt A og B, mellem dig og Facebook, er der nogle
skurken, er der nogle system administrator på Harvard, der er nysgerrige
for at se, hvem dine venner er.
Eller der er nogle -
år siden, dette bruges til at lyde vanvittigt -
men der er nogle offentlig myndighed som NSA, der er faktisk interesseret
i hvem du stikke på Facebook.
Hvor er muligheden der?
Nå, så længe en person har nok teknisk kyndige, og de har adgang
til din faktiske netværk via Wi-Fi eller nogle fysiske ledning,
hvad kunne de gøre?
>> Tja, hvis de er på samme netværk som dig, og de ved noget om
TCP / IP og IP-adresser og DNS, og hvordan Alt dette virker, hvad nu hvis det
manden i midten, hvad nu hvis det Nationale Security Agency, hvad det
kan være, men hvad nu hvis denne enhed simpelthen reagerer hurtigere end Facebook til at
Deres HTTP-anmodning og siger, Åh, jeg er Facebook.
Gå fremad, og her er HTML for facebook.com.
>> Computere er temmelig darn hurtigt.
Så kunne du skrive et program, der kører på en server som nsa.gov at når det
hører en anmodning fra dig for facebook.com, meget hurtigt bag
scener får den virkelige facebook.com making en perfekt [? esque?] sikker
SSL-forbindelse mellem NSA og mellem Facebook, at få den HTML meget
sikkert til login-siden og derefter NSA-serveren bare reagerer på dig
med en login-side for facebook.com.
>> Nu hvor mange af jer ville selv mærke at du bruger Facebook via HTTP
stadig på det tidspunkt, fordi du har uheld tilsluttet nsa.gov og
ikke Facebook?
De webadresser ikke ændrer sig.
Alt dette sker bag kulisserne.
Men de fleste af os, inklusive mig selv, sandsynligvis ikke ville lægge mærke til
sådan en mindre detalje.
>> Så du måske har en perfekt brugbar forbindelse mellem dig og hvad du
tror er Facebook, men der er en såkaldte manden i midten.
Og dette er en generel betegnelse for mennesket i den midten angreb, hvor du har nogle
enhed mellem dig og punkt B, der er en eller anden måde at manipulere, stjæle eller
se dine data.
Så selv SSL ikke er rabiat, især hvis du har været narret til
ikke tænde for det på grund af, hvordan disse underliggende mekanismer faktisk virker.
>> Så en lektion i dag, så også er, hvis du virkelig ønsker at være paranoid -
og selv her er der trusler -
bør du virkelig begynde at komme ind for vane at skrive i https://www
uanset domænenavn, du faktisk bekymrer sig om.
>> Og som en sidebemærkning alt er der endnu en trussel med
hensyn til kapring af sessionen.
Meget ofte når du første gang besøger en hjemmeside som facebook.com, medmindre
serveren er konfigureret til at sige, at den hånd stempel det sat på dig
i går skal sikre sig, din browser kan meget vel efter
besøger ting som facebook.com google.com, twitter.com, din browser
kunne præsentere denne hånd stempel kun at blive slået ned og sagde nej.
Brug SSL.
>> Men det er for sent på det tidspunkt.
Hvis du allerede har sendt din hånd stempel, din cookie, i det klare med
uden SSL, har du et splitsekund sårbarhed, hvor nogen snuse
din trafik, uanset roommate eller NSA, kan derefter bruge den samme cookie, og
med en smule teknisk kyndige, fremlægge det som hans eller hendes egen.
>> Andet angreb du måske ikke har tænkt over.
Denne ene er virkelig på dig, hvis du skrue dette op skriftligt nogle hjemmeside, at
anden måde bruger SQL.
Så her, for eksempel, er en skærm skudt af Harvards login.
Og dette er et generelt eksempel af noget med en
brugernavn og adgangskode.
Super fælles.
Så lad os antage, at SSL eksisterer og Der er ingen mand i midten eller
noget lignende.
Nu er vi fokuserer på serverens kode, som du måske skrive.
>> Nå, når jeg skriver i et brugernavn og adgangskode, formoder, at PIN-tjeneste
er implementeret i PHP.
Og du har måske noget kode på den pågældende server som denne.
Få brugernavnet fra posten super globalt og få adgangskoden, og derefter
hvis de bruger nogle pset7 ligesom kode er der en søgefunktion
der kan gøre dette.
Vælg stjerne fra brugere, hvor brugernavn lig med og password lig med.
>> Det ser ved første øjekast, helt rimelig.
Dette er syntaktisk gyldig PHP kode.
Logisk er der intet galt med dette.
Formentlig er der nogle flere linjer, faktisk gøre noget med det
resultat, der kommer tilbage fra databasen.
Men dette er sårbar for følgende grund.
>> Bemærk, at som en god borger, Jeg har sat i anførselstegn, single
citater, brugernavnet.
Og jeg sætter i anførselstegn adgangskoden.
Og det er en god ting, fordi de er ikke meningen at være tal.
Typisk de kommer til at være tekst.
Så jeg citerer dem som strenge.
>> Og hvis jeg nu avancere yderligere hvad nu hvis - og jeg har fjernet kuglerne fra
PIN tjeneste midlertidigt -
hvad nu hvis jeg prøver at logge på som Formand [? Scroob?]
men jeg hævder, at mit password er 12345 'OR '1' = '1, og bemærk
hvad jeg ikke har gjort.
Jeg havde ikke lukke det andet ét tilbud.
Fordi jeg er temmelig skarp her som skurken.
Og jeg antager at de er du ikke meget godt med din
PHP og MySQL kode.
Jeg kan gætte, at du ikke tjekker for tilstedeværelsen af citater.
>> Så hvad der lige er sket, er, at når din brugeren har indtastet i denne streng,
den forespørgsel, du er ved at skabe ligner dette.
Og lang historie kort, hvis du og noget sammen, eller du eller noget
sammen denne kommer til at vende tilbage træk fra databasen.
Fordi det altid er tilfælde, at 1 er lig med 1.
>> Og bare fordi du ikke havde forudset at dine brugere, gode eller dårlige, måske
have en apostrof i deres navn, du have skabt en SQL-forespørgsel, der er stadig
gyldige, og vil nu vende tilbage flere resultater end du måske have haft til hensigt.
Og så dette dårlige fyr har nu potentielt logget ind på din server
fordi din database er på vej tilbage træk selv om han eller hun har ingen idé om, hvad
[? Scroob s?] Faktiske password er.
>> Åh, jeg indså en tastefejl her.
Jeg skulle have sagt password lig 12345 ligesom den tidligere
eksempel eller 1 er lig med 1.
Jeg ordner online.
>> Så hvorfor har vi dig ved hjælp af forespørgslen funktion med spørgsmålstegn?
En af de ting forespørgslen funktionen betyder for dig, er det sikrer, at
når du passerer i argumenterne efter kommaer her som dette, at forespørgslen
der er faktisk sendt til database ligner dette.
En masse grimmere at se på, men tilbage skråstreger har været automatisk
indsat netop at undgå at injektion angreb, som jeg viste en
øjeblik siden.
>> Nu er en sjov XKCD at jeg troede, jeg ville trække heroppe der forhåbentlig nu bør være en
lidt mere forståeligt er dette en her.
>> En lille smule?
Måske har vi brug for lidt mere diskussion om det.
Så dette hentyder til en lille dreng opkaldt Bobby, der har en eller anden måde taget
fordel af et websted, der er bare tillid til, at hvad brugeren har indtastet
i er ikke i virkeligheden, SQL-kode, men er i virkeligheden en streng.
>> Nu kan du huske, at drop -
du måske har set det - drop betyder slette en tabel, slette en database.
Så hvis du hovedsageligt hævder, at dit navn er Robert "; droptabl
estudentsomething,]
kan du meget vel narre database ikke kun til at kontrollere, at du er
faktisk Robert, men semikolon også videre at droppe tabellen.
>> Og så SQL-injektion angreb kan faktisk være som truende, da dette
hvor du kan slette nogen data, du kan vælge flere datamængde end
beregnet til, kan du indsætte eller opdatere data.
Og du kan faktisk se det om på hjem øvelse, ikke for skadelig
formål, men bare for instruktions, er hver gang du bliver bedt om at logge
på hjemmesiden, især en slags non meget offentlige, meget populær hjemmeside,
prøve at logge ind som John O'Reilly eller en person med en
apostrof i deres navn.
Eller bogstavelig talt bare skrive apostrof, trykke Enter, og se hvad der sker.
>> Og alt for ofte tragisk, mennesker ikke har sminket deres input og
sørget for, at ting som citater eller semikolon er undsluppet.
Hvilket er grunden til i pset7 vi giver dig denne søgefunktion.
Men ikke under værdsætter præcis hvad det gør for dig.
>> Så med det sagt, nyder at bruge web denne uge.
Og vi vil se dig på mandag.
>> På det næste CD50.
>> [MUSIC]