[MUSIK] DAVID J. MALAN: Okej. Så detta är CS50 och detta är slutet av vecka 10. Så några av er kanske har sett detta redan, som utan cirkuleras av sent är en artikel som jag trodde att jag skulle läsa ett utdrag ur och sedan visa en tre minuters video som målar samma bild. Det var verkligen en rörande berättelse, jag tänkte, detta skärningspunkten mellan verkliga världen med genuint övertygande användning av teknik. Så artikeln hade rätt, "En pojke oversleeps på tåg, använder Google Maps att hitta familjen 25 år senare. "Och första par stycken var, "När Saroo var fem år gammal gick han med sin äldre bror för att snoka efter förändras på ett persontåg i en stad cirka två timmar från sin lilla hemstad. Saroo blev trött och hoppade på en närliggande tåg där han trodde att hans bror, sedan somnade. När han vaknade var han i Calcutta, nästan 900 miles away. Saroo försökte hitta sin väg tillbaka, men han visste inte namnet på hans hemstad. Och som en liten analfabet pojke i en stor stad full av glömda barnen han hade praktiskt taget ingen chans att få hem. Han var ett gatubarn ett tag tills en lokal adoptionbyrå hooked honom med en australisk par som förde honom till bor i Hobart, Tasmanien. Saroo flyttade dit, lärde Engelska, och växte upp. Men han slutade aldrig leta efter sin familj och sin hemstad. Årtionden senare, upptäckte han Google Jorden och följde räls. Och att ge sig själv en föreskriven radie baserat på hur länge han trodde att han var sover och hur snabbt han trodde tåget tänkte, visste han att han hade vuxit upp i ett varmt klimat, visste han att han talade Hindi som ett barn, och han hade fått veta att han såg ut som han var från östra Indien. Slutligen, efter år av skur satellit bilder, han erkänt några landmärken. Och efter chatta med en administratör av en närliggande stad är Facebook sida, insåg han han hade hittat hem. " Så här är då videon berättar som berättelse från hans perspektiv. [VIDEO SPELA] -Det var 26 år sedan och jag var bara om att slå fem. Vi fick till järnvägsstationen och vi bordade ett tåg tillsammans. Min bror sa bara att jag ska bo här och jag ska komma tillbaka. Och jag tänkte bara, ja, du vet, jag kan lika gärna gå i vila och då kommer han bara väcka mig. Och när jag vaknar nästa dag, den Hela vagnen var tom på en skenande tåg, ett spöke tåget med mig jag vet inte var. Jag adopterades ut till Australien till en australisk familj. Och mamma hade inrett mitt rum med karta över Indien, som hon sätta bredvid min säng. Jag vaknade upp varje morgon ser att kartan, och följaktligen, det slags hålls minnen levande. Folk skulle säga, du försöker hitta en nål i en höstack. Saroo, hittar du det aldrig. Jag skulle ha blixtar av de platser som Jag brukade gå, blinkar av min familjs ansikten. Det var bilden av min mamma sitter ner med benen i kors bara titta på henne gråta. Livet är bara så svårt. Det var min skatt. Och jag letade i Google Map och insåg att det finns Google Earth också. I en värld där du kan zooma in jag började att ha alla dessa tankar och vilka möjligheter som Detta kunde göra för mig. Jag sade till mig själv, ja, ni vet, du har all den fotografiska minnen och sevärdheter där du är från och du vet vad staden ser ut. Detta skulle kunna vara ett program som du kan använda för att hitta vägen tillbaka. Jag tänkte, ja, jag ska sätta en prick på Calcutta tågstation i en radie linje som du bör söka kring detta område. Jag kom över dessa järnvägsspåren. Och jag började följa det och jag kom till en järnvägsstation som återspeglade Samma bild som fanns i mina minnen. Allt matchas. Jag tänkte bara, japp. Jag vet vart jag ska. Jag ska bara låta kartan som jag har i mitt huvud att leda mig och ta mig tillbaka till min hemstad. Jag kom till dörren på huset att jag var född och promenerade runt cirka femton meter runt hörnet. Det var tre damer som står utanför intill varandra. Och den mellersta klev fram. Och jag tänkte, detta är din mamma. Hon kom fram, kramade hon mig, och vi var där i ungefär fem minuter. Hon tog tag i min hand och hon tog mig till huset och fick på telefonen och hon ringde min syster och min bror att säga att din bror har precis alla plötsligt dök upp som ett spöke. Och då familjen var återförenas igen. Allt är bra. Jag hjälper min mamma ut. Hon behöver inte vara slet. Hon kan leda resten av sitt liv i fred. Det var en nål i en höstack, men nålen var där. Allt finns där. Allt vi har i världen är en enkel tryckning. Men du måste ha viljan och viljan att vilja det. [END VIDEOAVSPELNING] Så en riktigt söt historia. Och det påminner mig faktiskt om ganska ämne som har fått en hel del uppmärksamhet för sent i The Crimson, mer nationellt i allmänhet. Särskilt som MOOCs tar stadiet för sent. MOOCs är dessa massiva och öppen online-kurser, varav CS50 är en. Och folk pratar om hur, för exempel, humaniora är inte riktigt fånga upp eller är inte alls lika på modet som de var en gång. Och jag skulle vilja uppmuntra er, mycket som Jonathan gjorde på måndagen, för att tänka ungefär som du avslutar 50, och vi vet redan ca 50% av er kommer inte fortsätta att ta en annan dator vetenskap kurs, och det är helt fina och förväntade. Eftersom ett av de övergripande målen av en klass som detta är verkligen att ge er killar med bara en förståelse för hur allt det här fungerar och hur den här världen av tekniken fungerar. Så att när du är tillbaka i din egen världar, oavsett om det är pre-med eller oavsett om det är humaniora eller samhällsvetenskap eller något annat område helt och hållet, att ni tar med några tekniskt kunniga att bordet och hjälpa till att göra smarta beslut när det gäller användningen av och Införandet av teknik in i din värld. Till exempel var jag påmind om sent även om två av grundutbildningen klasserna tog jag för två år sedan, som var sådana enkla användning av teknik men aldrig så övertygande. Första nätterna med professor Tom Kelly Om du har tagit klassen. Det är en klass på klassisk musik på detta skede här där du lär dig lite om musik. Det är faktiskt första nätterna att CS50 lånade idén av spår för dem mindre bekväm i mellan och mer bekväm. På min tid hade de olika spår för barn med absolut ingen musik erfarenhet som mig, och sedan barn som hade utfört eftersom de var fem år gammal. Och den klassen, till exempel, hade bara en hemsida som de flesta andra, men det var en webbplats som får dig att utforska musik på den och spela upp musikaliska klipp från klassen, från webben, och bara använda tekniken på ett mycket smidigt sätt. En annan klass år senare som jag granskas, huvudsakligen under skoltiden, Anthro 1010, Inledning till Arkeologi här. Det var fantastiskt. Och en av de mest övertygande men ändå super självklart, i efterhand, användning av program var att professorerna i den klassen använde Google Earth. Vi satt tvärs över gatan i någon sal. Och du inte kunde resa till exempel, till Mellanöstern för att gräva som en av professorerna hade just kommit tillbaka, men vi kan göra det så gott som flyger runt i Google Earth och tittar på ett fågelperspektiv på gräva plats han hade just återvänt från en vecka sedan. Så jag skulle vilja uppmuntra er, speciellt inom humaniora, att gå tillbaka till dessa avdelningar efter detta klass föra din examensarbeten med dig eller egna idéer, och se precis vad du kan göra för att ingjuta din egna fält i humaniora eller bortom med en liten bit av denna sorts sak som vi har utforskat här i CS50. Så med den bild som målas, tänkte vi skulle försöka tackla två saker idag. Ett, försöka ge dig en känsla av där du kan gå efter 50. Och framför allt, om du väljer att angripa ett webbaserat projekt som är otroligt vanligt, hur man kan gå om att ta bort alla CS50: s stödhjul och gå ut där på din egen och inte behöva förlita sig på en PDF eller en specifikation av en pset? Inte behöva förlita sig på en CS50 apparaten längre. Men kan verkligen dra dig upp med dina bootstraps. Med det sagt, C-baserade final projekt är välkomna. Saker som använder stativet för ett portabelt bibliotek i Grafiken är välkomna. Vi vet bara att det statistiskt mycket människor bita av projekt i PHP och Python och Ruby och MySQL och andra miljöer, så vi ska partiskhet några av våra anmärkningar mot det. Men en snabb tillbakablick. Så vi tog för givet i pset7 den faktum att $ _SESSION existerade. Detta var en super global, en global, associativ array. Och vad låter det du gör? Funktionellt, vad är det har detta ger oss? Yeah? För att spåra användarens ID. Och varför är det bra? För att kunna lagra insidan av denna super globala JHarvard eller [? Scroobs?] eller Malan användar-ID när han eller hon besöker en sajt. Exakt. Så du behöver inte logga in igen och igen. Det skulle vara en riktigt lam world wide web Om varje gång du klickade på en länk på en webbplats som Facebook eller varje gång du klickade på en e-post i Gmail du tvungen att åter autentisera bevisa att det är fortfarande du och inte din rumskamrat som kanske har gått upp till din dator i din frånvaro. Så vi använder session till just ihåg vem du är. Och hur detta genomförs under huven? Hur en webbplats som använder den protokoll som webbläsare och servrar tala, hur fungerar HTTP, som är en statslös protokoll, låt oss säga. Och genom statslösa Jag menar, när du ansluta till en webbplats, hämta några HTMLs, några JavaScript, vissa CSS, din webbläsarens ikon slutar snurra. Du har inte en konstant anslutning till servern typiskt. Det var allt. Det finns ingen stat upprätthålls ständigt. Så hur är SESSION genomförs på ett sådant ett sätt att varje gång du gör besöka en ny sida, minns webbplatsen vem du är? Vad är den bakomliggande genomförande detalj? Ropa den ut. Det är ett ord. Cookies. Okej. Så cookies. Nå, hur används cookies? Vi ska komma ihåg att en cookie är generellt bara en bit av information. Och det är ofta ett stort slumpmässigt nummer, men inte alltid. Och en cookie är planterade på din hårda enhet eller i datorns RAM-minne så att varje gång du besöker samma hemsida, påminner webbläsaren i server, jag användaren 1234567. Jag användaren 1234567. Och så länge som servern har ihågkommen att användaren 1234567 är JHarvard, kommer webbplatsen antar bara att du är den du säger att du är. Och minns att vi presenterar dessa cookies typ av i form av en virtuell handställ. Den skickas i HTTP-headers bara påminna den server som du är vem det tror att du är. Visst, det finns ett hot. Vilka hot inte öppna upp oss för om vi i huvudsak använder en slags klubb eller en nöjespark mekanism för att komma ihåg vilka vi är? Om du kopierar någons kaka och kapa deras session, så att säga, du kan låtsas vara någon annan och hemsida troligtvis bara kommer att tror dig. Så vi ska återkomma till detta. Eftersom den andra temat för idag bortom egenmakt också talar om mycket skrämmande värld vi lever i och hur mycket av det du gör på webben, hur mycket av det du gör även på din mobiltelefoner idag kan vara spårade verkligen av någon mellan du och punkt B. Och Ajax, återkallelse. Vi såg bara en kort stund på detta, även om du har använt det indirekt pset8 eftersom du använder Google Maps och eftersom du är med hjälp av Google Earth. Google Maps och Google Earth inte hämta hela världen till din skrivbord, naturligtvis, den ögonblick du laddar pset8. Det hämtar enbart en kvadrat av världen eller en större kvadrat av jorden. Och sedan varje gång du slags styra utanför intervallet du kanske märker - särskilt om på en långsam anslutning - du kan se några grå för ett ögonblick eller lite luddiga bildspråk som Datorn hämtar fler sådana plattor, mer sådana bilder från världen eller jorden. Och Ajax är generellt tekniken av vilka webbplatser gör det. När du behöver mer av kartan, din webbläsaren ska använda Ajax, vilket är inte i sig ett språk eller teknik, det är bara en teknik. Det är användandet av JavaScript för att gå och hämta Mer information från en server som tillåter få din webbläsare att gå vad är att öst eller vad är till väster om vad är annars just nu visas i den kartan. Så det här är ett ämne som många av er kommer att stöta på antingen direkt eller indirekt via slutliga projekt om du väljer att göra något som är liknande dynamik som drar uppgifter från någon tredje parts webbplats. Så vi har fått en riktigt spännande nästa onsdag framöver. Quiz ena, den information som är på CS50.net redan. Vet att det blir en översyn session denna kommande måndag klockan 05:30. Datum och tid är redan postat på CS50.net i att ca blad. Och låt oss veta att du har några frågor. Pset8 är under tiden redan i dina händer. Och låt mig bara ta upp en FAQ att rädda folk lite stress. För det mesta en hel del av prat vi ser på kontorstid och en massa buggar vi ser rapporterat om Diskutera är faktiskt fel i en elevs kod. Men när du har stött på något som Google Earth plug-in krascha eller inte ens fungerar och du är säker på att det är inte du, det är inte en [? chamad?] fråga, är det inte en bug du introduceras i fördelning kod. Inse bara FYI - detta är slags plan Z - att förra gången vi använde detta problem ställa och vi sprang in liknande frågor, det finns en kodrad i service.js som i huvudsak är detta, som säger, slå byggnader på. Och de arbetar runt förra gången vi gjorde detta, återigen, hörn fall där eleverna kunde bara inte få darn sak att arbeta är att ändra true till false i att en rad kod. Och du hittar det om du söker genom service.js. Jag rekommenderar inte detta eftersom du kommer skapa den mest karga landskapet i Cambridge, Massachusetts. Detta kommer bokstavligen plattar din värld så att allt du ser är undervisningen stipendiater och assistenter Kurs på horisonten och inga byggnader. Men inser av någon anledning Google Earth plug-in verkar fortfarande vara buggy ett år senare, så detta kan vara din misslyckas spara. Så snarare än att tillgripa tårar, resort att stänga byggnader off om du vet det är plug-in som inte är samarbetsvilliga på din Mac eller PC. Men, är det återigen sista utväg om du är säker på att det inte är en bugg. Så Hackathon. Ett par teasers bara att få dig upphetsad. Vi hade en hel RSVPs. Och bara för att måla en bild av vad väntar, tänkte jag ge er några sekunder minns av detta bildspråk från förra året. [MUSIK] DAVID J. MALAN: Vänta, oh. Vi har även våra bokstavliga CS50 skyttlar. [MUSIK] DAVID J. MALAN: Så det är vad som väntar dig i termer av Hackathon. Och detta kommer att vara en möjlighet, att vara tydlig, att inte starta din slutliga projekt utan att fortsätta arbeta på din slutliga projekt tillsammans klasskamrater och personal och massor av mat. Och igen, om du är vaken klockan 5:00 Vi tar dig på vägen till IHOP. Den CS50 mässan, under tiden, är höjdpunkten för hela klassen där du tar med din bärbara och vänner, kanske familjen till ett rum på campus ner på gatan för att ställa ut dina projekt på bärbara datorer, på höga bord så här med massor av mat och vänner och musik i bakgrunden, liksom våra vänner från industrin. Företag som Facebook och Microsoft och Google och Amazon och knippen av andra som så om intresserade av just höra om den verkliga världen eller chattar med folk om verkliga världen praktik eller heltid möjligheter, vet att några av våra vänner från industrin kommer att vara där. Och ett par bilder vi kan måla här är följande. [MUSIK] DAVID J. MALAN: Okej. Så att då är det CS50 mässan. Så låt oss nu gå vidare för att berätta en historia som verkligen kommer att ge dig förhoppningsvis för saker som examensarbeten. Så en av några små saker att utsädet din sinne, för slutliga antingen projekt eller bara mer generellt för projekt som kanske du bestämmer dig för att ta itu med efter kursen, är alla dessa dokumenteras på manual.cs50.net där CS50 manual där vi har massor av tekniker dokumenteras. Och detta är bara en förkortning notation för att säga att det finns i Världens saker som kallas SMS till e-post gateways, vilket är ett finare sätt att säger, det finns servrar i världen som vet hur man konverterar e-post till textmeddelanden. Så om du till din sista projekt du vill att skapa någon form av mobil teman tjänst som gör att du kan varna vänner eller användare till evenemang på campus eller vad som serveras i D Hall den natten eller någon sådan varning funktion, vet att det är enkelt som att skicka ett e-post som med PHPMailer som du kan ha använt för pset7 eller vi såg kortfattat en vecka sedan eller så, att adresser så här. Och faktum är att du kan texten detta antagande din vän har ett obegränsat textning plan och du inte vill att ladda dem $ 0,10. Men om du skickar ett mail till din vän som du vet att Verizon eller AT & T använder Gmail och bara skicka det till deras telefonnummer på oavsett subdomän finns, inser du kommer att skicka ett textmeddelande. Men detta är en av de saker att vara försiktig med. Om du trolla igenom förra årets CS50 videor jag tror det var, en fasansfull, fruktansvärda, fasansfulla bugg jag skrev i koden hamnade skickar cirka 20.000 text meddelanden bor i vår elever i klassen. Och bara för att någon märkte att de fick flera text meddelanden från mig hade jag den resurser för att slå Kontroll C snabbt och stoppa den processen. Kontroll C, ni minns, är din vän i fall av oändlig loop. Så se den kraft vi har bara gett att du hellre ansvarslöst, de flesta sannolikt, baserat på min egen erfarenhet. Men det är på webben och har varit där under en tid. Okej. Så textmarks.com. Så detta är en webbplats. Och det finns klasar av andra där ute samt att vi faktiskt har använt som en klass för år för att kunna ta emot textmeddelanden. Tyvärr, skicka textmeddelanden är enkelt som att skicka e-post som. Mottagning är lite svårare, speciellt Om du vill ha en av de sexiga korta koder som är bara fem eller sex siffror. Så till exempel, för år du har varit kunna skicka ett textmeddelande - och du kan prova det här också - till 41411. Och det är telefonnumret till just denna start. Och om du skickar ett meddelande till 41411 - Jag ska bara skriva upp det här, så 41411 - och sedan skicka dem ett meddelande gillar SBOY för Shuttle Boy. Och sedan skriva in något som Mather quad. Så du skickar det textmeddelande till det telefonnummer. Inom några sekunder bör du få tillbaka ett svar från CS50 Shuttle Boy tjänsten, som är skytteln schemaläggning programvara som vi har haft ut finns på webben under en tid. Och det kommer att svara på dig via SMS. För vad vi har gjort som en klass, som en programmerare, är att skriva programvara, konfigurerade vårt gratis konto med text varumärken att lyssna efter textmeddelanden att SBOY på det numret. Och vad de gör är framåt som text meddelanden till vår PHP-baserad webbplats som HTTP parametrar säga här. Denna användare med detta telefonnummer skickade detta textmeddelande. Gör med det vad du vill. Så vi skrev några program som på mottagning av en sträng som SBOY mather quad, tolka vi det. Vi räkna ut där utrymmena finns mellan ord. Och vi som en klass besluta hur man ska bemöta det. Och om du försöker att nu, till exempel, du bör se, via svar inom en några sekunder, de närmaste skyttlar går från Mather till quad om något. Och det finns andra slutar. Du kan skriva in Boylston eller annan sådan stannar på campus, och det bör erkänna dessa ord. Så parse.com. Detta är en annan tjänst som vi har varit pekar några studenter vid för slutliga projekt som är underbart i att det är gratis för en rimlig användning. Och om jag går till parse.com du ser att detta är ett alternativ till egentligen ha något liknande din egen MySQL-databas. Och ärligt talat, det är bara slags fascinerande. Detta är vad som finns inuti moln även en mulen dag. Så parse.com tillåter dig att göra en massa intressanta saker. Och det finns andra alternativ till detta ute. Till exempel kan du använda dem som din backend databas. Så du behöver inte ha ett webbhotell. Du behöver inte ha en MySQL-databas. Du kan istället använda sin bakdelen. Om du gör ett mobilt projekt för Android eller iOS eller liknande, vet att det finns saker som push-tjänster så du kan pressa varningar till dina vänner eller dina användares startskärmar. Och sedan en massa andra funktioner också. Så om du har intresse, kolla in dessa webbplatser och gillar dem att bara se hur många andra folk " axlar du kan stå på för att göra riktigt cool programvara för din egen. Nu i form av autentisering, en FAQ, är hur du faktiskt garanterar att användarna finns människor på campus, Harvard studenter eller lärare eller personal? Så CS50 har sin egen autentisering Tjänsten kallas CS50 ID. Gå till denna URL och du kan begränsa din hemsida för alla med en Harvard ID, till exempel. Så vet att vi klarar det. Ni borde inte vara i branschen att säga, vad är din Harvard-ID? Vad är din Harvard PIN? Låt mig nu göra något med det. Vi kommer att göra allt detta. Och vad ger vi dig tillbaka är någons namn och e-postadress, men inte något känslig. En app på en mobil enhet, kan det vara gjord för att arbeta på en mobil enhet, men Det är inte riktigt konstruerad för det. Så du kommer att sluta spendera en icke trivial tid att göra så. Så jag skulle avråda denna linje för nu. Detta är verkligen avsedd för webbaserade applikationer. Så webbhotell. Så om du inte har sett på kursens hemsida - och här är där vi ska börja en berättelse - webbhotell handlar om att betala för oftast en tjänst, värd en server som ägs av någon annan på nätet som har en IP-adress, och du sedan lägga din webbplats på det. Och de brukar ge dig e-post konton och databaser och andra sådana funktioner. Vet att om du inte vill faktiskt betala för sådant, gå till denna URL där och CS50 har faktiskt en icke-vinstdrivande konto som du kan använda för att egentligen har inte http://project inuti apparaten för ditt slutprojekt. Om du vill verkligen att det ska vara något liknande, isawyouharvard.com, du kan köpa det domännamnet - även inte just en - och då kan du gå om att vara värd det på en offentlig webbserver som vi kan erbjuda ni igenom här. Och i själva verket om obekant, om du aldrig har varit isawyouharvard.com, en, gå dit. Men två, vet att det var en ung kvinnans namn från Tej Till Toor Too två år sedan, tre år sedan, som var en CS50 alumner som hände en dag eller två innan CS50 mässan skickade ut ett mail till hennes hus e-postlista och voila. Två dagar senare av CS50 mässan, hade hon hundratals användare krypande på varandra på hennes hemsida och säga hur de hade sett henne eller honom på campus. Så det är en av CS50 favorit framgångshistorier från en CS50 slutprojekt. Så hur ska du gå om att sätta en webbplats sådär på internet? Tja, det finns ett fåtal sådana ingredienser här. Så en, måste du köpa ett domännamn. Det finns klasar av platser i världen från vilken du kan köpa ett domännamn. Och till exempel, som vi rekommenderar bara för att det är populärt och det är billigt kallas namecheap.com. Men du kan gå godaddy.com och dussintals andra där ute. Du kan läsa upp på recensioner. Men för det mesta är det inte roll från vilken du köpa ett domännamn. Och de varierar i pris och de varierar i suffix. Suffix som. Com,. Net, . Org,. Io,. TV, de faktiskt varierar i pris. Men om vi ville göra något liknande cats.com vi kan gå till denna webbplats, klicka på Sök. Förmodligen ett tas. Men tydligen, catsagainst.com är tillgänglig. pluscats.com är tillgänglig. Lovecats, catscorner, dampcats.net. Allt detta förhoppningsvis pseudo slumpmässigt genererade. Om du vill cats.pw, $ 1500 bara, vilket är lite galen. Så någon har verkligen ryckt upp alla katten relaterade domännamn här för varierande priser. Som en parentes, låt oss se. Vem har cats.com? Vet att ni har på ditt förfogande tämligen sofistikerade kommandon nu. Som jag kan skriva bokstavligen vem är cats.com? Och på grund av det sätt på internet är strukturerad kan du faktiskt se vem har registrerat detta. Tydligen denna personen är [OHÖRBAR] använda en proxy. Så den som äger cats.com inte vill att världen ska veta vem de är. Så de har registrerat om genom några random Privacy Service. Men ibland faktiskt få verkliga ägare. Och det är att säga, särskilt om du är bedriver någon start och du verkligen vill ha lite domännamn och du är villiga att betala någon annan för det, kan du räkna ut kontakten information på det sättet. Men också intressant är det här. Låt mig rulla upp till denna del. Så detta är det samma utgång. Och detta är bara klibbig. Så tydligen cats.com kan vara ditt för rätt pris. Men vad som är intressant här är att namnservrarna - Detta är totalt missbruk av vad ett namn server är tänkt att vara - ditt namn Servern är inte tänkt att vara thisdomainforsale.com. Om vi ​​väljer faktiskt något liknande - Låt oss välja något lite mer legitim ut, vem är google.com, och rulla upp här. Så här - Vad hände där? Intressant. Bortom vem är - Låt oss hålla det mer lågmäld. Vem är mit.edu? OK. Detta är användbart. Så det här är vad jag hoppades för. Legitim användning av DNS-tjänsten. Namn servrar här indikerar följande. Detta är MIT: s sätt att säga, när någon i världen, var de än är, typ i mit.edu och träffar Enter, din bärbara dator, oavsett Mac eller PC, kommer på något sätt till slut räkna ut att det människor i världen som vet vad de IP-adress är för mit.edu eller någon av de subdomäner på mit.edu eller något av Dessa servrar här - och det faktiskt ser ut som MITs infrastruktur är ganska robust som du förväntar dig. De har flera namn-servrar vilket är bra för redundans. Och faktiskt, de verkar vara globalt distribueras över hela världen. Ett gäng av dem tycks vara i USA, ett par i Asien, en i Europa, två i någon annanstans. Men poängen här är att DNS som Vi har tagit för givet och beskrivs allmänt som en stor Excel-tabell som har IP-adresser och domän Namnen är faktiskt ganska sofistikerad hierarkisk tjänst så att i världen finns det faktiskt ett ändligt antal av servrar som i huvudsak vet var alla. coms är eller alla de. nät är, alla av . Orgs är, och så vidare. Så när du går vidare och köpa en domän namn från en plats som namn Billigt eller Go Daddy eller någon annan hemsida, en av de viktiga steg som du måste göra dig, om du gör detta även för din slutliga projektet, är att berätta registrator från vem du köper domänen namn, vem vet i världen nu webbplatsens IP-adresser, som dina namnservrar är. Så om du använder, till exempel CS50: s webbhotell - vi råkar ha detta konto genom dreamhost.com som är en populära webbhotell företag - de kommer att säga att du ska köpa din domän och berätta för världen att domänens namnserver ns1.dreamhost.com, ns2.dreamhost.com, och ns3.dreamhost.com. Men det är det. Att köpa ett domännamn innebär att ge dem pengar och att få äganderätten till domän, men det är mer som en hyra though. Du får den för ett år och sedan de bill dig för återkommande och resten av ditt liv tills du avbryter domännamnet. Och då kan du berätta för dem som namnservrar är. Men då du är klar med din registrar. Och därifrån kommer du interagerar endast med ditt webbhotell, vilket i CS50: s fall blir DreamHost. Men återigen, kommer mer dokumentation vara ges till dig om du bestämmer dig för att gå den vägen. Så om du gör detta efter kursens slut, helt enkelt googla webbhotell Företaget kommer att vända upp tusentals av optioner. Och jag skulle i allmänhet uppmuntra er att be vänner som kanske har använt en företaget innan om de rekommenderar dem och hade en bra erfarenhet. Eftersom det finns en hel del fluga på natten webbhotell företag, som en kille i sin källare med en server som har en IP-adress. Han har lite extra RAM och hårddisk utrymme och bara säljer web hosting konton trots att det finns inget sätt att server kan hantera hundratals användare eller tusentals användare. Så inser du kommer att få vad du betalar för. För ett tag för min personliga hem sidan - och det var helt acceptabelt eftersom jag hade, vilja, två besökare i månaden - Jag betalar, liksom, $ 2,95 per månad. Och jag är ganska säker på att det var i någons källare. Men återigen, så får man inte nödvändigtvis några garantier för uptime eller skalbarhet. Så återigen, du letar typiskt på något mer än så. Nå, hur är SSL? Så vad är SSL används för? Låt oss nu börja styra i riktningar av säkerhet och saker som kan skada oss. Speciellt när du vågar ut på egen hand. Vad är SSL, eller vad SSL används för? Säkerhet, OK. Så används det för säkerhet. Vad betyder det? Så det står för Secure Sockets Layer. Och det indikeras av en URL som börjar med https://. Många av oss har nog aldrig skrivit https://, men du kommer ofta att din webbläsare dirigeras från HTTP till HTTPS så att allt finns där efter krypterad. FYI, använder SSL krävs normalt att du har en unik IP-adress. Och typiskt att få ett unik IP-adress måste du betala ett webbhotell Företagets några få dollar mer per månad. Så inser att detta är mycket lätt genomfört dessa dagar genom att köpa en IP adress och genom att köpa det som är kallas ett SSL-certifikat. Men inser att det kommer någon extra kostnad. Och, som vi ska försöka skrämma på bara ett bit, det är inte ens nödvändigtvis 100% skyddande av vad det är du försöker skydda. Så för säkerhet, jag trodde jag skulle göra en slags slumpmässig SEGUE här. Som du kanske vet från CS50 föreläsning videos, har vårt produktionsteam varit en fan som jag har att ta riktigt nice fotografi av campus, och antenn fotografi senast. Om du ser någonsin upp och du ser något som flyger med en liten kamera, Det kan faktiskt vara CS50. Och jag tänkte att jag skulle dela minut del av filmen har laget samlas, särskilt som vi ser att vårterminen och nästa höst. Om någon av er har en talang för fotografi, Videografi, skulle vi älskar att få dig involverad bakom kulisserna. Men mer om dessa detaljer i en vecka. [MUSIK] DAVID J. MALAN: Stänger ute finns en minigolfbana på toppen av arenan som vi inte visste om. [MUSIK] DAVID J. MALAN: Du kan se Disposition av drönare där. [MUSIK] DAVID J. MALAN: Det bästa här är titta, joggaren till vänster. [MUSIK] David J. MALAN: Ett annat exempel på vad du kan göra med teknik som är endast tangentiellt, ärligt talat, relaterade till säkerhet. Men jag trodde det skulle vara ett mer roligt sätt att bara säga, säkerhet. Så låt oss se om vi inte kan skrämma er nu med inte bara en bit av ett fåtal hot, men också en underliggande förståelse för vad dessa hot så att framåt du kan bestämma hur och om att försvara dig mot dessa saker och på åtminstone att vara uppmärksam på dem som du fatta beslut om huruvida eller inte skicka som e-post, om du vill logga in den webbplatsen, huruvida använda cyber Café Wi-Fi punkt så att du vet vad hot är faktiskt omkring dig. Jonatan avses något gillar det här på måndag. Han hade ett skott fönsterfilm. Detta är en Mac. Hur många av er har någonsin installerat program på din Mac eller PC? Uppenbarligen alla. Hur många av er har funderat mycket att skriva in ditt lösenord när du blir ombedd? Jag menar, även jag inte, ärligt talat. Så ett par av oss är bra på att vara paranoid. Men fundera på vad du är egentligen gör här. På en typisk Mac eller PC du har ett administratörskonto. Och oftast är du den enda som använder en laptop åtminstone dessa dagar. Så ditt konto, Malan eller JHarvard eller vad det är, är det administratörskonto. Och vad det betyder är att du har root-åtkomst till din dator. Du kan installera vad du vill, ta bort vad du vill. Och typiskt dessa dagar, på grund av daterad design beslut från år sedan, det sätt de flesta program får installeras är som administratör. Och även om din Mac eller PC har minst blivit smart nog över år med de senaste inkarnationer av Mac OS och Windows för att inte köra användarnamn som standard som administratör, när du ladda ner några nytt program från internet och försöka installera det, du kommer antagligen att bli tillfrågad om ditt lösenord. Men kruxet är vid den punkten, du är bokstavligen lämna nycklarna till din dator över till vad slumpmässigt programmet du laddade ner bara och gör det möjligt att installera vad den vill. Och när Jonathan antytts, inser att det skulle kunna säga att den vill installera programvaran som du bryr dig omkring, Spotify eller iTunes eller vad det är du försöker installera. Men du är bokstavligen att lita på författaren eller författarna av programvaran till bara göra vad programmet är tänkt att göra. Men det finns absolut ingenting stoppa de flesta program på de flesta operativsystem från radering av filer, från att ladda upp dem till något företag webbplats, från trolling runt, för kryptering av saker. Och återigen har vi sorts inbyggd en hel infrastruktur över åren på förtroende. Och så inser du att du bara har varit lita random människor och random företag för det mesta. Och Jonatan nämndes också, ibland dessa företag själva är slags medvetet elak, okej? Sony fångade en hel del flack några år sedan för att installera vad som kallades en rootkit kit på folks datorer utan deras vetskap. Och kontentan av detta var att när du köpte en cd till exempel att de inte vill att du ska kunna kopiera eller rippa musiken av, cd skulle installera, utan din vetskap, ett rootkit på din dator. Rootkit bara säga programvara som körs som administratör som potentiellt gör dåliga saker. Men bland de saker som den här saken gjorde var det gömde sig. Så några av er kanske vara ganska kunniga med datorn och vet väl, jag kan bara öppna Aktivitetshanteraren eller Activity Monitor och jag kan titta på alla av de arcanely namngivna program som körs. Och om något ser misstänkt Jag ska bara döda den eller radera den. Men det är vad rootkit gjorde. Det sade i huvudsak, om det körs Task Chef, visa inte dig själv. Så programvaran var där. Och bara om du verkligen, verkligen såg ut hårt kan du även hitta det. Och detta gjordes i namnet av kopieringsskydd. Men tänk vad kunde har gjort annars. Nu när det gäller att skydda dig själv. Många webbplatser är underbart nådig i att de sätter dessa hänglås ikoner på deras hemsida som innebär att webbplatsen är säker. Detta är från bankofamerica.com i morse. Så vad betyder det lilla hänglåsikonen Det betyder bredvid knappen Logga in? Absolut ingenting. Det betyder att någon vet hur man använder Photoshop för att göra en bild av ett hänglås. Liksom bokstavligen, det faktum att det är Det är tänkt att vara en positiv signalera till användaren liknande, ooh, säkra webbplats. Jag skulle lita på denna webbplats och nu skriva in mitt användarnamn och lösenord. Och detta har varit vanligt för år, så sent som i morse. Men anser de vanor som detta är att få oss in. Betrakta det implicita budskapet att alla av dessa banker i detta fall har varit skicka oss i år. Om du ser hänglås, fäst sedan. Okej? Så hur kan du missbrukar systemet av förtroende om du är den onde? Sätt ett hänglås på din webbplats, och logiskt, har användarna varit konditioneras år att anta hänglås betyder säker. Och det kan faktiskt vara säker. Du kanske har en härligt säker SSL HTTPS-anslutning till en falsk webbplats. com. Och ingen annan i världen kan se att du är på väg att lämna honom eller henne ditt användarnamn och lösenord till ditt konto. Detta är dock kanske, är en lite mer lugnande. Så detta är en skärmdump av den övre i min webbläsare i morse vid bankofamerica.com. Och märker också här vi har ett hänglås. Vad betyder det i detta sammanhang i Chrome åtminstone? Så detta är nu med hjälp av SSL. Så det här är faktiskt en bättre sak. Och det faktum att Chrome gör det grönt är tänkt att fästa vår uppmärksamhet på det faktum att detta är inte bara över SSL. Detta är ett företag som någon ut Det har verifierats är faktiskt bankofamerica.com. Och det innebär att Bank of America, när man köper deras sk SSL certifikat, i huvudsak stora slumpmässigt, något slumptal som implementerar trygghet för dem, de har varit verifierats av någon oberoende tredje parti som säger, japp. Detta är faktiskt VD för Bank of Amerika försöker köpa certifikatet. Chrome kommer därför lita på att certifikatutfärdare och säga i grönt, är detta bankofamerica.com. Och Bank of America betalar några hundra dollar för att eller ett fåtal tusen i motsats till en några tiotals dollar. Men även här, hur många av er har någonsin betedde sig annorlunda eftersom URL i din webbläsare är grönt istället för svart? Rätt? Så ett par av oss. Och det är bra att vara paranoid. Men även då, de av er som ännu märker dessa saker, gör du faktiskt sluta logga in på en annars säker hemsida om webbadressen inte är grön? Okej, så antagligen inte, eller hur? Åtminstone de flesta av oss, om det inte är grön, mest troligt att du bara kommer att se ut, vad som helst. Precis, jag vill logga in på denna webbplats. Det är därför jag är här. Jag kommer att logga in ändå. Som en parentes, är Chrome lite bättre om detta. Men det finns en hel del webbläsare som Firefox till exempel, åtminstone för en tid, då det hänglåsikonen är, kan du faktiskt sätta någon ikonen på din egen. Låt mig se vad den senaste versionen av Firefox ser ut. Så om vi går till CS50.net. OK, så de har blivit bättre också. Vilken webbläsare som används för att göra är liknande, Här finns till exempel [? SAAS är?] krön upp här. Det är den så kallade favorit ikon för en webbsida. År sedan - faktiskt inte så länge sedan - det lilla sköld skulle ha varit rätt här bredvid webbadressen. Eftersom vissa geni beslutade att det skulle bara ser ganska elegant att ha din grafisk logotyp höger bredvid din webbadress. Och design klokt, som faktiskt är ganska övertygande. Så vad gjorde bad guy börja göra? De började förändra sin favorit ikoner, eller deras default ikon för en hemsidan för att inte vara ett vapen men ett hänglås, som hade absolut ingen mening. Annat än deras favorit ikon var ett hänglås den hade ingen tecken på säkerhet. Så lektionerna här är ett par som jag tror. En är att det finns faktiskt några välmenande mekanismer för lära oss användare om säkerhet även om du inte ens känner till vad grönt innebar eller vad ens HTTPS menade. Men om dessa mekanismer får oss in i den dåliga vanan att förtroendefulla webbplatser när vi ser dessa positiva signaler, de är mycket lätt missbrukas som vi såg bara en stund sedan med något dumt som detta. Så sessionskapning kommer in spela, som vi sagt tidigare, med kakor till exempel. Och vad innebär det egentligen? Väl med sessionskapning detta är allt om att stjäla någons cookies. Så om jag öppnar Chrome här, för exempel, och jag öppnar upp Inspector här nere och jag går till Network Tab - och vi har gjort det här förut - och jag går till något som http://facebook.com Enter, en hel massa saker går över skärmen på grund av alla de bilder och CSS och JavaScript-filer. Men om jag tittar på detta här märker att Facebook är faktiskt plantera en eller flera cookies på min webbläsare här. Så dessa är i huvudsak handen frimärken som representerar mig. Och nu förhoppningsvis min webbläsare presentera detta igen och igen när återbesöka denna webbplats. Men det bara är säkra, sade vi en par veckor sedan, om du använder SSL. Men även SSL sig kan äventyras. Tänk efter hela vägen SSL. När din webbläsare ansluter till en avlägsen server via https://, lång historia kort, kryptografi är inblandade. Det är inte så enkelt som Caesar eller Visionaire eller ens DES, DES från en medan tillbaka i pset2. Det är mer sofistikerad än så. Det kallas kryptering med öppen nyckel. Men riktigt stora och riktigt random nummer används för att förvränga information mellan punkt A, du och punkt B, som facebook.com. Men problemet är, hur många av oss igen någonsin typ i https:// för att starta vår hemsida anslutning i det säkra läget? Jag menar, hur många av er ens typ http://facebook.com? Okej, om du gör, gillar, hej. Du behöver inte göra det längre, eller hur? Webbläsaren kommer att lista ut det. Men de flesta av oss gör faktiskt skriv bara facebook.com. För om vi använder en webbläsare, det webbläsare har blivit smart nog av 2013 för att uppfylla om du använder en webbläsare, skriver du in en adress, du förmodligen vill komma åt det inte via e-post eller snabbmeddelande. Du menar HTTP och port 80. Dessa konventioner har antagits. Men hur omdirigering arbete? Tja, ser vad som sker här. Om jag går tillbaka till Chrome - och låt oss göra detta i inkognito läge så att alla mina cookies kastas bort. Och låt mig gå här, igen, facebook.com. Och låt oss se vad som händer. Minns att den första ansökan var faktiskt bara för facebook.com. Men vad var det svar som jag fick? Det var inte en 200 OK. Det var 300, eller 301, som är en omdirigera berättar för mig att gå till http://www.facebook.com, som är där Facebook vill att jag ska gå. Men sedan, om vi tittar på nästa begäran, och vi har sett det här förut, märker vad deras andra svaret är. Speciellt att de vill ha mig nu gå till SSL version av Facebook. Så här är en möjlighet. Detta är ett fantastiskt användbar funktion om bara banan och HTTP. Om slutanvändaren som Facebook vill ha mig att stanna på den säkra versionen av deras hemsida, bra. De kommer att styra mig själv. Och så jag behöver inte ens tänka på det. Men vad händer om mellan punkt A och B, mellan dig och Facebook, det finns en del skurk, det finns något system administratör vid Harvard som är nyfikna att se vilka dina vänner är. Eller finns det någon - år sedan, det brukade låta galet - men det finns vissa statliga organ som NSA som är faktiskt intresserade i vem du peta på Facebook. Var är möjligheten där? Tja, så länge någon har tillräckligt tekniskt kunniga och de har tillgång din faktiska nätverk via Wi-Fi eller någon fysisk tråd, vad kan de göra? Tja, om de är på samma nätverk som du och de vet något om TCP / IP och IP-adresser och DNS och hur Allt detta verk, tänk om det Mannen i mitten, tänk om det nationella Security Agency, vad det kan vara, men vad händer om denna enhet bara reagerar snabbare än Facebook för att din HTTP-förfrågan och säger, åh, jag Facebook. Gå framåt, och här är den HTML för facebook.com. Datorer är ganska snabb. Så du kan skriva ett program som körs på en server som nsa.gov att när det hör en begäran från dig för facebook.com, mycket snabbt bakom scener blir den verkliga facebook.com making en perfekt [? esque?] säkra SSL-anslutning mellan NSA och mellan Facebook, få att HTML är mycket säkert för inloggningssidan, och sedan NSA servern svarar bara för dig med en inloggningssida för facebook.com. Nu hur många av er skulle ens märker att du använder Facebook via HTTP fortfarande på den punkten eftersom du har oavsiktligt ansluten till nsa.gov och inte Facebook? Den webbadresser förändras inte. Allt detta görs bakom kulisserna. Men de flesta av oss, däribland jag själv, förmodligen inte skulle märka en sådan liten detalj. Så du kanske har en helt fungerande koppling mellan dig och vad du tycker är Facebook, men det finns en så kallade mannen i mitten. Och detta är en allmän term för människan i mitten attack där du har några enhet mellan dig och punkt B som är på något sätt manipulera, stjäla, eller tittar på dina uppgifter. Så även SSL är inte bombsäkert, speciellt om du har lurats in inte vrida på grund av hur dessa bakomliggande mekanismer fungerar faktiskt. Så en lektion idag då också är om du verkligen vill vara paranoid - och även här finns hot - du borde verkligen börja komma in vanan att skriva i https://www oavsett domännamn du faktiskt bryr sig om. Och som en parentes för det finns ännu ett hot med beaktande sessionskapning. Väldigt ofta när du först besöker en webbplats som facebook.com, såvida server har konfigurerats för att säga att att handstämpel det sätta på dig igår bör skydda sig själv, din webbläsare kan mycket väl, på besökande saker som facebook.com google.com, twitter.com, webbläsaren kan presentera att handstämpel endast ska smällde och sa, nej. Använd SSL. Men det är för sent på den punkten. Om du redan har skickat din hand stämpel, din cookie, i det klara med ingen SSL, har du en bråkdels sekund sårbarhet där någon sniffar din trafik, oavsett rumskompis eller NSA, kan då använda samma kaka, och med lite tekniskt kunniga, presentera den som sin egen. En annan attack du kanske inte har tänkt på. Den här är verkligen på dig om du skruvar upp detta skriftligen någon webbplats som något sätt använder SQL. Så här, till exempel, är en skärm skott av Harvards inloggning. Och detta är ett generellt exempel av något med en användarnamn och lösenord. Super vanligt. Så låt oss anta att SSL existerar och det finns ingen människa i mitten eller något liknande. Nu fokuserar vi på serverns kod som du kanske skriva. Jo, när jag skriver in ett användarnamn och lösenord, antar att PIN-tjänsten implementeras i PHP. Och du kanske har någon kod på den servern som denna. Få användarnamnet från posten super global och få lösenordet, och sedan om de använder några pset7 gillar koden finns det en sökfunktion som skulle kunna göra detta. Välj Star från användare där användarnamn är lika stor som och lösenord är lika stor som. Det ser vid första anblicken, helt rimligt. Detta är syntaktiskt giltigt PHP-kod. Logiskt finns det inget fel med detta. Förmodligen finns det några fler rader som faktiskt göra något med den resultat som kommer tillbaka från databasen. Men detta är sårbar för av följande skäl. Observera att, som en god medborgare, Jag har lagt in citat, singel citationstecken, användarnamnet. Och jag satte i enkla citattecken lösenordet. Och det är en bra sak eftersom de är inte tänkt att vara siffror. Typiskt att de ska vara text. Så jag citerar dem som strängar. Och om jag avancera nu ytterligare tänk om - och jag har tagit bort kulorna från PIN tjänsten tillfälligt - Vad händer om jag försöker logga in som President [? Scroob?] men jag hävdar att mitt lösenord är 12345 'OR '1' = '1, och varsel vad jag inte har gjort. Jag stängde inte den andra enda anbud. Eftersom jag är ganska skarp här som den onde. Och jag antar att de är du inte så bra med din PHP och MySQL kod. Jag gissar att du inte kollar med avseende på närvaro av citat. Så vad hände är att när din användaren har skrivit i den strängen, frågan du ska skapar ser ut så här. Och lång historia kort, om du och något tillsammans eller du eller något ihop detta kommer att återvända en rad från databasen. Eftersom det alltid är fallet att en lika med 1. Och bara för att du inte förutse att användarna, bra eller dåligt, kanske ha en apostrof i namnet du har skapat en SQL-fråga som fortfarande giltig, kommer och återkommer nu fler resultat än du kanske har tänkt. Och så här skurken har nu potentiellt loggat in på din server eftersom databasen återvänder en rad även om han eller hon har ingen aning om vad [? Scroob s?] Faktiska lösenordet är. Åh, insåg jag ett stavfel här. Jag borde ha sagt lösenordet är lika 12345 som den tidigare exempel eller 1 är lika med 1. Jag ska fixa det på nätet. Så varför har vi att du använder frågan funktion med frågetecken? En av de saker sökfunktion betyder för dig är det ser till att när du passerar i argumenten efter kommatecken här så här att frågan som faktiskt har skickats till Databasen ser ut så här. En hel fulare att titta på, men tillbaka snedstreck har automatiskt in för att undvika just det injektion attack som jag visade en stund sedan. Nu en rolig xkcd att jag trodde att jag skulle dra här uppe som förhoppningsvis ska nu finnas en lite mer förståeligt är detta en här. En liten bit? Vi kanske behöver lite mer diskussion om detta. Så här syftar på en liten unge heter Bobby som har på något sätt tagit fördel av en webbplats som är bara lita på att vad användaren har skrivit in är inte, i själva verket, SQL-kod, men är i själva verket en sträng. Nu kanske du minns att drop - du kanske har sett detta - drop innebär radera ett bord, ta bort en databas. Så om du hävdar i huvudsak att ditt namn är Robert "; droptabl estudentsomething,] du kan mycket väl lura databasen inte bara till att kontrollera att du är indeed Robert, men semikolon också fortsätta att släppa bordet. Och så SQL injection attacker kan faktiskt vara lika farliga som detta där du kan ta bort någons uppgifter, Du kan välja fler datas än avsett, kan du infoga eller uppdatera data. Och du kan faktiskt se detta om vid hem motion, inte för skadlig ändamål men bara för instruktions, är helst du uppmanas att logga på webbplatsen, i synnerhet någon form av icke mycket allmän, mycket populär webbplats, prova att logga in som John O'Reilly eller någon med en apostrofen i deras namn. Eller bokstavligen bara skriva apostrof, tryck Enter, och se vad som händer. Och alltför ofta tragiskt nog folk har inte saneras sina insatsvaror och såg till att saker som citat eller semikolon är rymt. Vilket är varför pset7 vi ger du denna sökfunktion. Men inte under uppskatta exakt vad den gör för dig. Så med det sagt, tycker om att använda banan denna vecka. Och vi kommer att se dig på måndag. Vid nästa CD50. [MUSIK]