1 00:00:00,000 --> 00:00:11,214 >> [MUSIK] 2 00:00:11,214 --> 00:00:11,661 >> DAVID J. MALAN: Okej. 3 00:00:11,661 --> 00:00:15,400 Så detta är CS50 och detta är slutet av vecka 10. 4 00:00:15,400 --> 00:00:20,420 Så några av er kanske har sett detta redan, som utan cirkuleras av sent 5 00:00:20,420 --> 00:00:25,800 är en artikel som jag trodde att jag skulle läsa ett utdrag ur och sedan visa en 6 00:00:25,800 --> 00:00:27,800 tre minuters video som målar samma bild. 7 00:00:27,800 --> 00:00:30,950 Det var verkligen en rörande berättelse, jag tänkte, detta skärningspunkten mellan 8 00:00:30,950 --> 00:00:35,210 verkliga världen med genuint övertygande användning av teknik. 9 00:00:35,210 --> 00:00:39,785 >> Så artikeln hade rätt, "En pojke oversleeps på tåg, använder Google Maps 10 00:00:39,785 --> 00:00:44,930 att hitta familjen 25 år senare. "Och första par stycken var, 11 00:00:44,930 --> 00:00:48,820 "När Saroo var fem år gammal gick han med sin äldre bror för att snoka efter 12 00:00:48,820 --> 00:00:51,830 förändras på ett persontåg i en stad cirka två timmar 13 00:00:51,830 --> 00:00:53,510 från sin lilla hemstad. 14 00:00:53,510 --> 00:00:56,790 Saroo blev trött och hoppade på en närliggande tåg där han trodde att hans 15 00:00:56,790 --> 00:00:58,880 bror, sedan somnade. 16 00:00:58,880 --> 00:01:03,360 När han vaknade var han i Calcutta, nästan 900 miles away. 17 00:01:03,360 --> 00:01:05,770 Saroo försökte hitta sin väg tillbaka, men han visste inte 18 00:01:05,770 --> 00:01:07,260 namnet på hans hemstad. 19 00:01:07,260 --> 00:01:11,430 Och som en liten analfabet pojke i en stor stad full av glömda barnen han hade 20 00:01:11,430 --> 00:01:13,520 praktiskt taget ingen chans att få hem. 21 00:01:13,520 --> 00:01:16,760 >> Han var ett gatubarn ett tag tills en lokal adoptionbyrå hooked 22 00:01:16,760 --> 00:01:18,840 honom med en australisk par som förde honom till 23 00:01:18,840 --> 00:01:20,600 bor i Hobart, Tasmanien. 24 00:01:20,600 --> 00:01:23,130 Saroo flyttade dit, lärde Engelska, och växte upp. 25 00:01:23,130 --> 00:01:27,450 Men han slutade aldrig leta efter sin familj och sin hemstad. 26 00:01:27,450 --> 00:01:32,380 >> Årtionden senare, upptäckte han Google Jorden och följde räls. 27 00:01:32,380 --> 00:01:36,140 Och att ge sig själv en föreskriven radie baserat på hur länge han trodde att han var 28 00:01:36,140 --> 00:01:40,020 sover och hur snabbt han trodde tåget tänkte, visste han att han hade vuxit upp 29 00:01:40,020 --> 00:01:43,930 i ett varmt klimat, visste han att han talade Hindi som ett barn, och han hade fått veta 30 00:01:43,930 --> 00:01:46,160 att han såg ut som han var från östra Indien. 31 00:01:46,160 --> 00:01:49,650 >> Slutligen, efter år av skur satellit bilder, han 32 00:01:49,650 --> 00:01:51,340 erkänt några landmärken. 33 00:01:51,340 --> 00:01:54,180 Och efter chatta med en administratör av en närliggande stad är 34 00:01:54,180 --> 00:01:57,740 Facebook sida, insåg han han hade hittat hem. " 35 00:01:57,740 --> 00:02:03,770 >> Så här är då videon berättar som berättelse från hans perspektiv. 36 00:02:03,770 --> 00:02:04,025 >> [VIDEO SPELA] 37 00:02:04,025 --> 00:02:07,480 >> -Det var 26 år sedan och jag var bara om att slå fem. 38 00:02:07,480 --> 00:02:10,539 Vi fick till järnvägsstationen och vi bordade ett tåg tillsammans. 39 00:02:10,539 --> 00:02:13,390 Min bror sa bara att jag ska bo här och jag ska komma tillbaka. 40 00:02:13,390 --> 00:02:16,363 Och jag tänkte bara, ja, du vet, jag kan lika gärna gå i vila och 41 00:02:16,363 --> 00:02:17,950 då kommer han bara väcka mig. 42 00:02:17,950 --> 00:02:21,740 Och när jag vaknar nästa dag, den Hela vagnen var tom på en skenande 43 00:02:21,740 --> 00:02:24,305 tåg, ett spöke tåget med mig jag vet inte var. 44 00:02:24,305 --> 00:02:27,120 45 00:02:27,120 --> 00:02:31,660 >> Jag adopterades ut till Australien till en australisk familj. 46 00:02:31,660 --> 00:02:35,360 Och mamma hade inrett mitt rum med karta över Indien, som hon 47 00:02:35,360 --> 00:02:37,090 sätta bredvid min säng. 48 00:02:37,090 --> 00:02:42,170 Jag vaknade upp varje morgon ser att kartan, och följaktligen, det slags hålls 49 00:02:42,170 --> 00:02:43,740 minnen levande. 50 00:02:43,740 --> 00:02:46,475 >> Folk skulle säga, du försöker hitta en nål i en höstack. 51 00:02:46,475 --> 00:02:49,060 Saroo, hittar du det aldrig. 52 00:02:49,060 --> 00:02:52,510 Jag skulle ha blixtar av de platser som Jag brukade gå, blinkar 53 00:02:52,510 --> 00:02:55,050 av min familjs ansikten. 54 00:02:55,050 --> 00:02:59,200 Det var bilden av min mamma sitter ner med benen i kors 55 00:02:59,200 --> 00:03:00,610 bara titta på henne gråta. 56 00:03:00,610 --> 00:03:03,340 Livet är bara så svårt. 57 00:03:03,340 --> 00:03:06,002 Det var min skatt. 58 00:03:06,002 --> 00:03:09,390 >> Och jag letade i Google Map och insåg att det finns Google Earth också. 59 00:03:09,390 --> 00:03:13,560 I en värld där du kan zooma in jag började att ha alla dessa tankar och 60 00:03:13,560 --> 00:03:16,650 vilka möjligheter som Detta kunde göra för mig. 61 00:03:16,650 --> 00:03:19,520 Jag sade till mig själv, ja, ni vet, du har all den fotografiska 62 00:03:19,520 --> 00:03:22,340 minnen och sevärdheter där du är från och du vet vad 63 00:03:22,340 --> 00:03:23,460 staden ser ut. 64 00:03:23,460 --> 00:03:27,910 Detta skulle kunna vara ett program som du kan använda för att hitta vägen tillbaka. 65 00:03:27,910 --> 00:03:32,750 >> Jag tänkte, ja, jag ska sätta en prick på Calcutta tågstation i en radie 66 00:03:32,750 --> 00:03:36,350 linje som du bör söka kring detta område. 67 00:03:36,350 --> 00:03:38,850 Jag kom över dessa järnvägsspåren. 68 00:03:38,850 --> 00:03:44,490 Och jag började följa det och jag kom till en järnvägsstation som återspeglade 69 00:03:44,490 --> 00:03:48,260 Samma bild som fanns i mina minnen. 70 00:03:48,260 --> 00:03:49,730 >> Allt matchas. 71 00:03:49,730 --> 00:03:50,800 Jag tänkte bara, japp. 72 00:03:50,800 --> 00:03:51,545 Jag vet vart jag ska. 73 00:03:51,545 --> 00:03:55,387 Jag ska bara låta kartan som jag har i mitt huvud att leda mig och ta mig 74 00:03:55,387 --> 00:03:58,230 tillbaka till min hemstad. 75 00:03:58,230 --> 00:04:02,290 >> Jag kom till dörren på huset att jag var född och promenerade runt 76 00:04:02,290 --> 00:04:04,270 cirka femton meter runt hörnet. 77 00:04:04,270 --> 00:04:08,140 Det var tre damer som står utanför intill varandra. 78 00:04:08,140 --> 00:04:10,230 Och den mellersta klev fram. 79 00:04:10,230 --> 00:04:12,910 Och jag tänkte, detta är din mamma. 80 00:04:12,910 --> 00:04:18,590 Hon kom fram, kramade hon mig, och vi var där i ungefär fem minuter. 81 00:04:18,590 --> 00:04:21,670 82 00:04:21,670 --> 00:04:25,787 >> Hon tog tag i min hand och hon tog mig till huset och fick på telefonen och hon 83 00:04:25,787 --> 00:04:31,110 ringde min syster och min bror att säga att din bror har precis alla 84 00:04:31,110 --> 00:04:34,480 plötsligt dök upp som ett spöke. 85 00:04:34,480 --> 00:04:37,590 >> Och då familjen var återförenas igen. 86 00:04:37,590 --> 00:04:38,570 Allt är bra. 87 00:04:38,570 --> 00:04:40,250 Jag hjälper min mamma ut. 88 00:04:40,250 --> 00:04:42,240 Hon behöver inte vara slet. 89 00:04:42,240 --> 00:04:45,040 Hon kan leda resten av sitt liv i fred. 90 00:04:45,040 --> 00:04:48,590 >> Det var en nål i en höstack, men nålen var där. 91 00:04:48,590 --> 00:04:49,530 Allt finns där. 92 00:04:49,530 --> 00:04:53,410 Allt vi har i världen är en enkel tryckning. 93 00:04:53,410 --> 00:04:57,375 Men du måste ha viljan och viljan att vilja det. 94 00:04:57,375 --> 00:05:02,310 95 00:05:02,310 --> 00:05:02,780 >> [END VIDEOAVSPELNING] 96 00:05:02,780 --> 00:05:04,220 >> Så en riktigt söt historia. 97 00:05:04,220 --> 00:05:08,430 Och det påminner mig faktiskt om ganska ämne som har fått en hel del 98 00:05:08,430 --> 00:05:11,200 uppmärksamhet för sent i The Crimson, mer nationellt i allmänhet. 99 00:05:11,200 --> 00:05:13,620 Särskilt som MOOCs tar stadiet för sent. 100 00:05:13,620 --> 00:05:17,370 MOOCs är dessa massiva och öppen online-kurser, varav CS50 är en. 101 00:05:17,370 --> 00:05:20,680 >> Och folk pratar om hur, för exempel, humaniora är inte riktigt 102 00:05:20,680 --> 00:05:23,900 fånga upp eller är inte alls lika på modet som de var en gång. 103 00:05:23,900 --> 00:05:26,680 Och jag skulle vilja uppmuntra er, mycket som Jonathan gjorde på måndagen, för att tänka 104 00:05:26,680 --> 00:05:29,900 ungefär som du avslutar 50, och vi vet redan ca 50% av er kommer inte 105 00:05:29,900 --> 00:05:32,480 fortsätta att ta en annan dator vetenskap kurs, och det är helt 106 00:05:32,480 --> 00:05:33,770 fina och förväntade. 107 00:05:33,770 --> 00:05:36,620 Eftersom ett av de övergripande målen av en klass som detta är verkligen att 108 00:05:36,620 --> 00:05:39,790 ge er killar med bara en förståelse för hur allt det här 109 00:05:39,790 --> 00:05:41,760 fungerar och hur den här världen av tekniken fungerar. 110 00:05:41,760 --> 00:05:45,400 >> Så att när du är tillbaka i din egen världar, oavsett om det är pre-med eller 111 00:05:45,400 --> 00:05:48,270 oavsett om det är humaniora eller samhällsvetenskap eller något annat område 112 00:05:48,270 --> 00:05:51,830 helt och hållet, att ni tar med några tekniskt kunniga att bordet och 113 00:05:51,830 --> 00:05:54,770 hjälpa till att göra smarta beslut när det gäller användningen av och 114 00:05:54,770 --> 00:05:57,530 Införandet av teknik in i din värld. 115 00:05:57,530 --> 00:06:00,410 >> Till exempel var jag påmind om sent även om två av grundutbildningen 116 00:06:00,410 --> 00:06:04,410 klasserna tog jag för två år sedan, som var sådana enkla användning av teknik 117 00:06:04,410 --> 00:06:06,180 men aldrig så övertygande. 118 00:06:06,180 --> 00:06:08,845 Första nätterna med professor Tom Kelly Om du har tagit klassen. 119 00:06:08,845 --> 00:06:11,640 Det är en klass på klassisk musik på detta skede här där du lär dig 120 00:06:11,640 --> 00:06:13,190 lite om musik. 121 00:06:13,190 --> 00:06:17,770 Det är faktiskt första nätterna att CS50 lånade idén av spår för dem 122 00:06:17,770 --> 00:06:20,630 mindre bekväm i mellan och mer bekväm. 123 00:06:20,630 --> 00:06:24,410 >> På min tid hade de olika spår för barn med absolut ingen musik 124 00:06:24,410 --> 00:06:27,300 erfarenhet som mig, och sedan barn som hade utfört eftersom de var 125 00:06:27,300 --> 00:06:28,240 fem år gammal. 126 00:06:28,240 --> 00:06:31,200 Och den klassen, till exempel, hade bara en hemsida som de flesta andra, men det 127 00:06:31,200 --> 00:06:34,210 var en webbplats som får dig att utforska musik på den och spela upp 128 00:06:34,210 --> 00:06:39,120 musikaliska klipp från klassen, från webben, och bara använda tekniken på ett mycket 129 00:06:39,120 --> 00:06:40,210 smidigt sätt. 130 00:06:40,210 --> 00:06:44,460 >> En annan klass år senare som jag granskas, huvudsakligen under skoltiden, 131 00:06:44,460 --> 00:06:47,430 Anthro 1010, Inledning till Arkeologi här. 132 00:06:47,430 --> 00:06:48,190 Det var fantastiskt. 133 00:06:48,190 --> 00:06:52,715 Och en av de mest övertygande men ändå super självklart, i efterhand, användning av 134 00:06:52,715 --> 00:06:56,000 program var att professorerna i den klassen använde Google Earth. 135 00:06:56,000 --> 00:06:58,250 Vi satt tvärs över gatan i någon sal. 136 00:06:58,250 --> 00:07:01,240 Och du inte kunde resa till exempel, till Mellanöstern för att gräva som en 137 00:07:01,240 --> 00:07:04,530 av professorerna hade just kommit tillbaka, men vi kan göra det så gott som 138 00:07:04,530 --> 00:07:07,870 flyger runt i Google Earth och tittar på ett fågelperspektiv på 139 00:07:07,870 --> 00:07:10,360 gräva plats han hade just återvänt från en vecka sedan. 140 00:07:10,360 --> 00:07:12,630 >> Så jag skulle vilja uppmuntra er, speciellt inom humaniora, att gå 141 00:07:12,630 --> 00:07:16,260 tillbaka till dessa avdelningar efter detta klass föra din examensarbeten 142 00:07:16,260 --> 00:07:19,960 med dig eller egna idéer, och se precis vad du kan göra för att ingjuta din 143 00:07:19,960 --> 00:07:23,570 egna fält i humaniora eller bortom med en liten bit av denna sorts 144 00:07:23,570 --> 00:07:26,770 sak som vi har utforskat här i CS50. 145 00:07:26,770 --> 00:07:31,790 >> Så med den bild som målas, tänkte vi skulle försöka tackla två saker idag. 146 00:07:31,790 --> 00:07:35,040 Ett, försöka ge dig en känsla av där du kan gå efter 50. 147 00:07:35,040 --> 00:07:37,950 Och framför allt, om du väljer att angripa ett webbaserat projekt som är 148 00:07:37,950 --> 00:07:42,580 otroligt vanligt, hur man kan gå om att ta bort alla CS50: s 149 00:07:42,580 --> 00:07:45,810 stödhjul och gå ut där på din egen och inte behöva förlita sig på en 150 00:07:45,810 --> 00:07:48,000 PDF eller en specifikation av en pset? 151 00:07:48,000 --> 00:07:50,510 Inte behöva förlita sig på en CS50 apparaten längre. 152 00:07:50,510 --> 00:07:52,780 Men kan verkligen dra dig upp med dina bootstraps. 153 00:07:52,780 --> 00:07:55,790 >> Med det sagt, C-baserade final projekt är välkomna. 154 00:07:55,790 --> 00:07:58,020 Saker som använder stativet för ett portabelt bibliotek i 155 00:07:58,020 --> 00:07:59,510 Grafiken är välkomna. 156 00:07:59,510 --> 00:08:03,240 Vi vet bara att det statistiskt mycket människor bita av projekt i PHP och 157 00:08:03,240 --> 00:08:07,860 Python och Ruby och MySQL och andra miljöer, så vi ska partiskhet några av 158 00:08:07,860 --> 00:08:09,570 våra anmärkningar mot det. 159 00:08:09,570 --> 00:08:10,650 >> Men en snabb tillbakablick. 160 00:08:10,650 --> 00:08:15,940 Så vi tog för givet i pset7 den faktum att $ _SESSION existerade. 161 00:08:15,940 --> 00:08:19,400 Detta var en super global, en global, associativ array. 162 00:08:19,400 --> 00:08:23,040 Och vad låter det du gör? 163 00:08:23,040 --> 00:08:27,130 Funktionellt, vad är det har detta ger oss? 164 00:08:27,130 --> 00:08:28,590 Yeah? 165 00:08:28,590 --> 00:08:30,270 För att spåra användarens ID. 166 00:08:30,270 --> 00:08:31,660 Och varför är det bra? 167 00:08:31,660 --> 00:08:36,059 För att kunna lagra insidan av denna super globala JHarvard eller [? Scroobs?] 168 00:08:36,059 --> 00:08:41,880 eller Malan användar-ID när han eller hon besöker en sajt. 169 00:08:41,880 --> 00:08:42,380 >> Exakt. 170 00:08:42,380 --> 00:08:44,049 Så du behöver inte logga in igen och igen. 171 00:08:44,049 --> 00:08:47,170 Det skulle vara en riktigt lam world wide web Om varje gång du klickade på en länk 172 00:08:47,170 --> 00:08:50,780 på en webbplats som Facebook eller varje gång du klickade på en e-post i Gmail du 173 00:08:50,780 --> 00:08:54,060 tvungen att åter autentisera bevisa att det är fortfarande du och inte din rumskamrat 174 00:08:54,060 --> 00:08:56,700 som kanske har gått upp till din dator i din frånvaro. 175 00:08:56,700 --> 00:08:59,640 >> Så vi använder session till just ihåg vem du är. 176 00:08:59,640 --> 00:09:01,830 Och hur detta genomförs under huven? 177 00:09:01,830 --> 00:09:07,720 Hur en webbplats som använder den protokoll som webbläsare och servrar 178 00:09:07,720 --> 00:09:12,060 tala, hur fungerar HTTP, som är en statslös protokoll, låt oss säga. 179 00:09:12,060 --> 00:09:15,510 >> Och genom statslösa Jag menar, när du ansluta till en webbplats, hämta några 180 00:09:15,510 --> 00:09:19,650 HTMLs, några JavaScript, vissa CSS, din webbläsarens ikon slutar snurra. 181 00:09:19,650 --> 00:09:23,420 Du har inte en konstant anslutning till servern typiskt. 182 00:09:23,420 --> 00:09:24,170 Det var allt. 183 00:09:24,170 --> 00:09:26,290 Det finns ingen stat upprätthålls ständigt. 184 00:09:26,290 --> 00:09:30,510 Så hur är SESSION genomförs på ett sådant ett sätt att varje gång du gör besöka en 185 00:09:30,510 --> 00:09:32,860 ny sida, minns webbplatsen vem du är? 186 00:09:32,860 --> 00:09:36,150 187 00:09:36,150 --> 00:09:38,195 Vad är den bakomliggande genomförande detalj? 188 00:09:38,195 --> 00:09:40,810 189 00:09:40,810 --> 00:09:41,490 Ropa den ut. 190 00:09:41,490 --> 00:09:43,270 Det är ett ord. 191 00:09:43,270 --> 00:09:43,640 >> Cookies. 192 00:09:43,640 --> 00:09:44,190 Okej. 193 00:09:44,190 --> 00:09:44,800 Så cookies. 194 00:09:44,800 --> 00:09:45,900 Nå, hur används cookies? 195 00:09:45,900 --> 00:09:48,870 Vi ska komma ihåg att en cookie är generellt bara en bit av information. 196 00:09:48,870 --> 00:09:51,590 Och det är ofta ett stort slumpmässigt nummer, men inte alltid. 197 00:09:51,590 --> 00:09:55,420 Och en cookie är planterade på din hårda enhet eller i datorns RAM-minne så 198 00:09:55,420 --> 00:09:59,070 att varje gång du besöker samma hemsida, påminner webbläsaren i 199 00:09:59,070 --> 00:10:01,650 server, jag användaren 1234567. 200 00:10:01,650 --> 00:10:03,570 Jag användaren 1234567. 201 00:10:03,570 --> 00:10:07,590 >> Och så länge som servern har ihågkommen att användaren 1234567 är 202 00:10:07,590 --> 00:10:11,300 JHarvard, kommer webbplatsen antar bara att du är den du säger att du är. 203 00:10:11,300 --> 00:10:14,230 Och minns att vi presenterar dessa cookies typ av i form av en 204 00:10:14,230 --> 00:10:15,510 virtuell handställ. 205 00:10:15,510 --> 00:10:20,530 Den skickas i HTTP-headers bara påminna den server som du är vem det 206 00:10:20,530 --> 00:10:21,620 tror att du är. 207 00:10:21,620 --> 00:10:23,320 >> Visst, det finns ett hot. 208 00:10:23,320 --> 00:10:27,530 Vilka hot inte öppna upp oss för om vi i huvudsak använder en slags klubb 209 00:10:27,530 --> 00:10:30,110 eller en nöjespark mekanism för att komma ihåg vilka vi är? 210 00:10:30,110 --> 00:10:32,630 211 00:10:32,630 --> 00:10:36,170 >> Om du kopierar någons kaka och kapa deras session, så att säga, du 212 00:10:36,170 --> 00:10:39,670 kan låtsas vara någon annan och hemsida troligtvis bara kommer att 213 00:10:39,670 --> 00:10:40,150 tror dig. 214 00:10:40,150 --> 00:10:41,030 Så vi ska återkomma till detta. 215 00:10:41,030 --> 00:10:44,240 Eftersom den andra temat för idag bortom egenmakt också talar 216 00:10:44,240 --> 00:10:48,170 om mycket skrämmande värld vi lever i och hur mycket av det du gör på 217 00:10:48,170 --> 00:10:51,480 webben, hur mycket av det du gör även på din mobiltelefoner idag kan vara 218 00:10:51,480 --> 00:10:55,170 spårade verkligen av någon mellan du och punkt B. 219 00:10:55,170 --> 00:10:56,240 >> Och Ajax, återkallelse. 220 00:10:56,240 --> 00:10:58,740 Vi såg bara en kort stund på detta, även om du har använt det 221 00:10:58,740 --> 00:11:02,660 indirekt pset8 eftersom du använder Google Maps och eftersom du är 222 00:11:02,660 --> 00:11:03,830 med hjälp av Google Earth. 223 00:11:03,830 --> 00:11:07,780 Google Maps och Google Earth inte hämta hela världen till din 224 00:11:07,780 --> 00:11:10,490 skrivbord, naturligtvis, den ögonblick du laddar pset8. 225 00:11:10,490 --> 00:11:15,020 Det hämtar enbart en kvadrat av världen eller en större kvadrat av jorden. 226 00:11:15,020 --> 00:11:18,910 Och sedan varje gång du slags styra utanför intervallet du kanske märker - 227 00:11:18,910 --> 00:11:21,790 särskilt om på en långsam anslutning - du kan se några grå för ett ögonblick 228 00:11:21,790 --> 00:11:26,440 eller lite luddiga bildspråk som Datorn hämtar fler sådana plattor, 229 00:11:26,440 --> 00:11:29,190 mer sådana bilder från världen eller jorden. 230 00:11:29,190 --> 00:11:34,620 >> Och Ajax är generellt tekniken av vilka webbplatser gör det. 231 00:11:34,620 --> 00:11:39,250 När du behöver mer av kartan, din webbläsaren ska använda Ajax, vilket är 232 00:11:39,250 --> 00:11:42,240 inte i sig ett språk eller teknik, det är bara en teknik. 233 00:11:42,240 --> 00:11:47,390 Det är användandet av JavaScript för att gå och hämta Mer information från en server som 234 00:11:47,390 --> 00:11:52,320 tillåter få din webbläsare att gå vad är att öst eller vad är till väster om 235 00:11:52,320 --> 00:11:55,110 vad är annars just nu visas i den kartan. 236 00:11:55,110 --> 00:11:58,520 Så det här är ett ämne som många av er kommer att stöta på antingen direkt eller 237 00:11:58,520 --> 00:12:01,180 indirekt via slutliga projekt om du väljer att göra något som är 238 00:12:01,180 --> 00:12:05,020 liknande dynamik som drar uppgifter från någon tredje parts webbplats. 239 00:12:05,020 --> 00:12:07,390 >> Så vi har fått en riktigt spännande nästa onsdag framöver. 240 00:12:07,390 --> 00:12:12,280 Quiz ena, den information som är på CS50.net redan. 241 00:12:12,280 --> 00:12:17,530 Vet att det blir en översyn session denna kommande måndag klockan 05:30. 242 00:12:17,530 --> 00:12:21,010 Datum och tid är redan postat på CS50.net i att ca blad. 243 00:12:21,010 --> 00:12:22,940 Och låt oss veta att du har några frågor. 244 00:12:22,940 --> 00:12:25,230 Pset8 är under tiden redan i dina händer. 245 00:12:25,230 --> 00:12:29,210 >> Och låt mig bara ta upp en FAQ att rädda folk lite stress. 246 00:12:29,210 --> 00:12:32,530 För det mesta en hel del av prat vi ser på kontorstid och en massa 247 00:12:32,530 --> 00:12:36,950 buggar vi ser rapporterat om Diskutera är faktiskt fel i en elevs kod. 248 00:12:36,950 --> 00:12:41,360 Men när du har stött på något som Google Earth plug-in krascha 249 00:12:41,360 --> 00:12:44,310 eller inte ens fungerar och du är säker på att det är inte du, det är inte en 250 00:12:44,310 --> 00:12:48,530 [? chamad?] fråga, är det inte en bug du introduceras i 251 00:12:48,530 --> 00:12:49,820 fördelning kod. 252 00:12:49,820 --> 00:12:51,250 >> Inse bara FYI - 253 00:12:51,250 --> 00:12:53,130 detta är slags plan Z - 254 00:12:53,130 --> 00:12:57,100 att förra gången vi använde detta problem ställa och vi sprang in liknande 255 00:12:57,100 --> 00:13:01,520 frågor, det finns en kodrad i service.js som i huvudsak är detta, 256 00:13:01,520 --> 00:13:03,580 som säger, slå byggnader på. 257 00:13:03,580 --> 00:13:07,100 Och de arbetar runt förra gången vi gjorde detta, återigen, hörn fall där 258 00:13:07,100 --> 00:13:11,660 eleverna kunde bara inte få darn sak att arbeta är att ändra true till false 259 00:13:11,660 --> 00:13:12,940 i att en rad kod. 260 00:13:12,940 --> 00:13:15,520 Och du hittar det om du söker genom service.js. 261 00:13:15,520 --> 00:13:19,990 >> Jag rekommenderar inte detta eftersom du kommer skapa den mest karga landskapet 262 00:13:19,990 --> 00:13:21,720 i Cambridge, Massachusetts. 263 00:13:21,720 --> 00:13:24,930 Detta kommer bokstavligen plattar din värld så att allt du ser är undervisningen 264 00:13:24,930 --> 00:13:28,610 stipendiater och assistenter Kurs på horisonten och inga byggnader. 265 00:13:28,610 --> 00:13:31,980 Men inser av någon anledning Google Earth plug-in verkar fortfarande vara 266 00:13:31,980 --> 00:13:35,290 buggy ett år senare, så detta kan vara din misslyckas spara. 267 00:13:35,290 --> 00:13:38,915 Så snarare än att tillgripa tårar, resort att stänga byggnader off om du vet 268 00:13:38,915 --> 00:13:41,980 det är plug-in som inte är samarbetsvilliga på din Mac eller PC. 269 00:13:41,980 --> 00:13:46,060 Men, är det återigen sista utväg om du är säker på att det inte är en bugg. 270 00:13:46,060 --> 00:13:46,890 >> Så Hackathon. 271 00:13:46,890 --> 00:13:48,950 Ett par teasers bara att få dig upphetsad. 272 00:13:48,950 --> 00:13:50,640 Vi hade en hel RSVPs. 273 00:13:50,640 --> 00:13:54,230 Och bara för att måla en bild av vad väntar, tänkte jag ge er några 274 00:13:54,230 --> 00:13:56,858 sekunder minns av detta bildspråk från förra året. 275 00:13:56,858 --> 00:14:00,850 >> [MUSIK] 276 00:14:00,850 --> 00:14:02,240 >> DAVID J. MALAN: Vänta, oh. 277 00:14:02,240 --> 00:14:05,410 Vi har även våra bokstavliga CS50 skyttlar. 278 00:14:05,410 --> 00:14:17,920 >> [MUSIK] 279 00:14:17,920 --> 00:14:20,620 >> DAVID J. MALAN: Så det är vad som väntar dig i termer av Hackathon. 280 00:14:20,620 --> 00:14:24,180 Och detta kommer att vara en möjlighet, att vara tydlig, att inte starta din slutliga 281 00:14:24,180 --> 00:14:27,730 projekt utan att fortsätta arbeta på din slutliga projekt tillsammans 282 00:14:27,730 --> 00:14:30,210 klasskamrater och personal och massor av mat. 283 00:14:30,210 --> 00:14:34,340 Och igen, om du är vaken klockan 5:00 Vi tar dig på vägen till IHOP. 284 00:14:34,340 --> 00:14:37,075 >> Den CS50 mässan, under tiden, är höjdpunkten för hela klassen där 285 00:14:37,075 --> 00:14:41,160 du tar med din bärbara och vänner, kanske familjen till ett rum på campus 286 00:14:41,160 --> 00:14:44,530 ner på gatan för att ställa ut dina projekt på bärbara datorer, på höga bord 287 00:14:44,530 --> 00:14:47,570 så här med massor av mat och vänner och musik i bakgrunden, 288 00:14:47,570 --> 00:14:49,250 liksom våra vänner från industrin. 289 00:14:49,250 --> 00:14:52,760 Företag som Facebook och Microsoft och Google och Amazon och knippen av 290 00:14:52,760 --> 00:14:55,750 andra som så om intresserade av just höra om den verkliga världen eller 291 00:14:55,750 --> 00:14:59,570 chattar med folk om verkliga världen praktik eller heltid möjligheter, 292 00:14:59,570 --> 00:15:01,950 vet att några av våra vänner från industrin kommer att vara där. 293 00:15:01,950 --> 00:15:04,970 Och ett par bilder vi kan måla här är följande. 294 00:15:04,970 --> 00:15:24,400 >> [MUSIK] 295 00:15:24,400 --> 00:15:24,920 >> DAVID J. MALAN: Okej. 296 00:15:24,920 --> 00:15:27,060 Så att då är det CS50 mässan. 297 00:15:27,060 --> 00:15:31,780 Så låt oss nu gå vidare för att berätta en historia som verkligen kommer att ge dig förhoppningsvis 298 00:15:31,780 --> 00:15:33,230 för saker som examensarbeten. 299 00:15:33,230 --> 00:15:36,940 Så en av några små saker att utsädet din sinne, för slutliga antingen projekt 300 00:15:36,940 --> 00:15:40,470 eller bara mer generellt för projekt som kanske du bestämmer dig för att ta itu med efter 301 00:15:40,470 --> 00:15:45,720 kursen, är alla dessa dokumenteras på manual.cs50.net där CS50 302 00:15:45,720 --> 00:15:48,010 manual där vi har massor av tekniker dokumenteras. 303 00:15:48,010 --> 00:15:51,080 >> Och detta är bara en förkortning notation för att säga att det finns i 304 00:15:51,080 --> 00:15:55,190 Världens saker som kallas SMS till e-post gateways, vilket är ett finare sätt att 305 00:15:55,190 --> 00:15:58,180 säger, det finns servrar i världen som vet hur man konverterar e-post till 306 00:15:58,180 --> 00:15:59,230 textmeddelanden. 307 00:15:59,230 --> 00:16:02,450 Så om du till din sista projekt du vill att skapa någon form av mobil teman 308 00:16:02,450 --> 00:16:06,650 tjänst som gör att du kan varna vänner eller användare till evenemang på campus 309 00:16:06,650 --> 00:16:10,290 eller vad som serveras i D Hall den natten eller någon sådan varning funktion, 310 00:16:10,290 --> 00:16:15,150 vet att det är enkelt som att skicka ett e-post som med PHPMailer som du 311 00:16:15,150 --> 00:16:18,735 kan ha använt för pset7 eller vi såg kortfattat en vecka sedan eller så, att 312 00:16:18,735 --> 00:16:20,440 adresser så här. 313 00:16:20,440 --> 00:16:26,040 >> Och faktum är att du kan texten detta antagande din vän har ett obegränsat textning 314 00:16:26,040 --> 00:16:28,310 plan och du inte vill att ladda dem $ 0,10. 315 00:16:28,310 --> 00:16:31,920 Men om du skickar ett mail till din vän som du vet att Verizon eller 316 00:16:31,920 --> 00:16:35,870 AT & T använder Gmail och bara skicka det till deras telefonnummer på oavsett 317 00:16:35,870 --> 00:16:38,980 subdomän finns, inser du kommer att skicka ett textmeddelande. 318 00:16:38,980 --> 00:16:41,570 >> Men detta är en av de saker att vara försiktig med. 319 00:16:41,570 --> 00:16:47,430 Om du trolla igenom förra årets CS50 videor jag tror det var, en fasansfull, 320 00:16:47,430 --> 00:16:51,660 fruktansvärda, fasansfulla bugg jag skrev i koden hamnade skickar cirka 20.000 text 321 00:16:51,660 --> 00:16:55,410 meddelanden bor i vår elever i klassen. 322 00:16:55,410 --> 00:16:57,970 Och bara för att någon märkte att de fick flera text 323 00:16:57,970 --> 00:17:01,860 meddelanden från mig hade jag den resurser för att slå Kontroll C snabbt 324 00:17:01,860 --> 00:17:03,210 och stoppa den processen. 325 00:17:03,210 --> 00:17:06,200 Kontroll C, ni minns, är din vän i fall av oändlig loop. 326 00:17:06,200 --> 00:17:10,900 Så se den kraft vi har bara gett att du hellre ansvarslöst, de flesta 327 00:17:10,900 --> 00:17:12,950 sannolikt, baserat på min egen erfarenhet. 328 00:17:12,950 --> 00:17:15,400 Men det är på webben och har varit där under en tid. 329 00:17:15,400 --> 00:17:15,810 >> Okej. 330 00:17:15,810 --> 00:17:17,064 Så textmarks.com. 331 00:17:17,064 --> 00:17:18,040 Så detta är en webbplats. 332 00:17:18,040 --> 00:17:20,829 Och det finns klasar av andra där ute samt att vi faktiskt har använt 333 00:17:20,829 --> 00:17:24,050 som en klass för år för att kunna ta emot textmeddelanden. 334 00:17:24,050 --> 00:17:27,869 Tyvärr, skicka textmeddelanden är enkelt som att skicka e-post som. 335 00:17:27,869 --> 00:17:30,730 Mottagning är lite svårare, speciellt Om du vill ha en av 336 00:17:30,730 --> 00:17:34,610 de sexiga korta koder som är bara fem eller sex siffror. 337 00:17:34,610 --> 00:17:37,720 >> Så till exempel, för år du har varit kunna skicka ett textmeddelande - och du 338 00:17:37,720 --> 00:17:39,200 kan prova det här också - 339 00:17:39,200 --> 00:17:41,900 till 41411. 340 00:17:41,900 --> 00:17:44,300 Och det är telefonnumret till just denna start. 341 00:17:44,300 --> 00:17:48,130 Och om du skickar ett meddelande till 41411 - 342 00:17:48,130 --> 00:17:51,190 Jag ska bara skriva upp det här, så 41411 - 343 00:17:51,190 --> 00:17:54,290 och sedan skicka dem ett meddelande gillar SBOY för Shuttle Boy. 344 00:17:54,290 --> 00:17:56,370 Och sedan skriva in något som Mather quad. 345 00:17:56,370 --> 00:17:59,360 Så du skickar det textmeddelande till det telefonnummer. 346 00:17:59,360 --> 00:18:02,630 Inom några sekunder bör du få tillbaka ett svar från CS50 Shuttle 347 00:18:02,630 --> 00:18:06,210 Boy tjänsten, som är skytteln schemaläggning programvara som vi har haft ut 348 00:18:06,210 --> 00:18:07,290 finns på webben under en tid. 349 00:18:07,290 --> 00:18:09,450 Och det kommer att svara på dig via SMS. 350 00:18:09,450 --> 00:18:13,410 >> För vad vi har gjort som en klass, som en programmerare, är att skriva programvara, 351 00:18:13,410 --> 00:18:18,760 konfigurerade vårt gratis konto med text varumärken att lyssna efter textmeddelanden 352 00:18:18,760 --> 00:18:20,770 att SBOY på det numret. 353 00:18:20,770 --> 00:18:25,210 Och vad de gör är framåt som text meddelanden till vår PHP-baserad webbplats som 354 00:18:25,210 --> 00:18:27,420 HTTP parametrar säga här. 355 00:18:27,420 --> 00:18:30,380 Denna användare med detta telefonnummer skickade detta textmeddelande. 356 00:18:30,380 --> 00:18:31,850 Gör med det vad du vill. 357 00:18:31,850 --> 00:18:35,180 >> Så vi skrev några program som på mottagning av en sträng som SBOY mather 358 00:18:35,180 --> 00:18:38,420 quad, tolka vi det. 359 00:18:38,420 --> 00:18:41,210 Vi räkna ut där utrymmena finns mellan ord. 360 00:18:41,210 --> 00:18:44,220 Och vi som en klass besluta hur man ska bemöta det. 361 00:18:44,220 --> 00:18:47,335 Och om du försöker att nu, till exempel, du bör se, via svar inom en 362 00:18:47,335 --> 00:18:51,470 några sekunder, de närmaste skyttlar går från Mather till quad om något. 363 00:18:51,470 --> 00:18:52,260 Och det finns andra slutar. 364 00:18:52,260 --> 00:18:56,060 Du kan skriva in Boylston eller annan sådan stannar på campus, och det bör 365 00:18:56,060 --> 00:18:57,760 erkänna dessa ord. 366 00:18:57,760 --> 00:18:58,590 >> Så parse.com. 367 00:18:58,590 --> 00:19:01,630 Detta är en annan tjänst som vi har varit pekar några studenter vid för 368 00:19:01,630 --> 00:19:04,390 slutliga projekt som är underbart i att det är gratis för en 369 00:19:04,390 --> 00:19:05,660 rimlig användning. 370 00:19:05,660 --> 00:19:08,820 Och om jag går till parse.com du ser att detta är ett alternativ till 371 00:19:08,820 --> 00:19:13,230 egentligen ha något liknande din egen MySQL-databas. 372 00:19:13,230 --> 00:19:14,490 Och ärligt talat, det är bara slags fascinerande. 373 00:19:14,490 --> 00:19:17,450 Detta är vad som finns inuti moln även en mulen dag. 374 00:19:17,450 --> 00:19:21,580 >> Så parse.com tillåter dig att göra en massa intressanta saker. 375 00:19:21,580 --> 00:19:23,610 Och det finns andra alternativ till detta ute. 376 00:19:23,610 --> 00:19:26,870 Till exempel kan du använda dem som din backend databas. 377 00:19:26,870 --> 00:19:28,980 Så du behöver inte ha ett webbhotell. 378 00:19:28,980 --> 00:19:31,180 Du behöver inte ha en MySQL-databas. 379 00:19:31,180 --> 00:19:32,850 Du kan istället använda sin bakdelen. 380 00:19:32,850 --> 00:19:36,350 >> Om du gör ett mobilt projekt för Android eller iOS eller liknande, vet att 381 00:19:36,350 --> 00:19:39,776 det finns saker som push-tjänster så du kan pressa varningar till dina vänner 382 00:19:39,776 --> 00:19:41,390 eller dina användares startskärmar. 383 00:19:41,390 --> 00:19:43,600 Och sedan en massa andra funktioner också. 384 00:19:43,600 --> 00:19:47,200 >> Så om du har intresse, kolla in dessa webbplatser och gillar dem 385 00:19:47,200 --> 00:19:50,720 att bara se hur många andra folk " axlar du kan stå på för att göra 386 00:19:50,720 --> 00:19:53,350 riktigt cool programvara för din egen. 387 00:19:53,350 --> 00:19:56,690 >> Nu i form av autentisering, en FAQ, är hur du faktiskt garanterar 388 00:19:56,690 --> 00:20:01,220 att användarna finns människor på campus, Harvard studenter eller lärare eller personal? 389 00:20:01,220 --> 00:20:05,350 Så CS50 har sin egen autentisering Tjänsten kallas CS50 ID. 390 00:20:05,350 --> 00:20:09,940 Gå till denna URL och du kan begränsa din hemsida för alla med en Harvard 391 00:20:09,940 --> 00:20:11,340 ID, till exempel. 392 00:20:11,340 --> 00:20:12,550 Så vet att vi klarar det. 393 00:20:12,550 --> 00:20:15,280 Ni borde inte vara i branschen att säga, vad är din Harvard-ID? 394 00:20:15,280 --> 00:20:16,160 Vad är din Harvard PIN? 395 00:20:16,160 --> 00:20:17,550 Låt mig nu göra något med det. 396 00:20:17,550 --> 00:20:18,740 Vi kommer att göra allt detta. 397 00:20:18,740 --> 00:20:21,710 Och vad ger vi dig tillbaka är någons namn och e-postadress, men 398 00:20:21,710 --> 00:20:23,010 inte något känslig. 399 00:20:23,010 --> 00:20:26,240 400 00:20:26,240 --> 00:20:30,380 >> En app på en mobil enhet, kan det vara gjord för att arbeta på en mobil enhet, men 401 00:20:30,380 --> 00:20:32,630 Det är inte riktigt konstruerad för det. 402 00:20:32,630 --> 00:20:35,640 Så du kommer att sluta spendera en icke trivial tid att göra så. 403 00:20:35,640 --> 00:20:38,040 Så jag skulle avråda denna linje för nu. 404 00:20:38,040 --> 00:20:41,570 Detta är verkligen avsedd för webbaserade applikationer. 405 00:20:41,570 --> 00:20:42,650 >> Så webbhotell. 406 00:20:42,650 --> 00:20:44,450 Så om du inte har sett på kursens hemsida - 407 00:20:44,450 --> 00:20:46,610 och här är där vi ska börja en berättelse - 408 00:20:46,610 --> 00:20:50,900 webbhotell handlar om att betala för oftast en tjänst, värd en server som ägs 409 00:20:50,900 --> 00:20:54,800 av någon annan på nätet som har en IP-adress, och du sedan lägga din 410 00:20:54,800 --> 00:20:55,880 webbplats på det. 411 00:20:55,880 --> 00:20:58,620 Och de brukar ge dig e-post konton och databaser 412 00:20:58,620 --> 00:21:00,160 och andra sådana funktioner. 413 00:21:00,160 --> 00:21:02,930 >> Vet att om du inte vill faktiskt betala för sådant, gå till denna URL 414 00:21:02,930 --> 00:21:06,280 där och CS50 har faktiskt en icke-vinstdrivande konto som du kan använda för att 415 00:21:06,280 --> 00:21:11,490 egentligen har inte http://project inuti apparaten 416 00:21:11,490 --> 00:21:12,470 för ditt slutprojekt. 417 00:21:12,470 --> 00:21:16,465 Om du vill verkligen att det ska vara något liknande, isawyouharvard.com, 418 00:21:16,465 --> 00:21:19,730 du kan köpa det domännamnet - även inte just en - och 419 00:21:19,730 --> 00:21:24,070 då kan du gå om att vara värd det på en offentlig webbserver som vi kan erbjuda 420 00:21:24,070 --> 00:21:25,170 ni igenom här. 421 00:21:25,170 --> 00:21:27,240 >> Och i själva verket om obekant, om du aldrig har varit 422 00:21:27,240 --> 00:21:30,590 isawyouharvard.com, en, gå dit. 423 00:21:30,590 --> 00:21:37,310 Men två, vet att det var en ung kvinnans namn från Tej Till Toor Too två 424 00:21:37,310 --> 00:21:41,550 år sedan, tre år sedan, som var en CS50 alumner som hände en dag eller två 425 00:21:41,550 --> 00:21:46,280 innan CS50 mässan skickade ut ett mail till hennes hus e-postlista och voila. 426 00:21:46,280 --> 00:21:49,770 Två dagar senare av CS50 mässan, hade hon hundratals användare krypande på 427 00:21:49,770 --> 00:21:53,240 varandra på hennes hemsida och säga hur de hade sett 428 00:21:53,240 --> 00:21:55,250 henne eller honom på campus. 429 00:21:55,250 --> 00:21:57,600 Så det är en av CS50 favorit framgångshistorier från 430 00:21:57,600 --> 00:21:59,650 en CS50 slutprojekt. 431 00:21:59,650 --> 00:22:04,090 >> Så hur ska du gå om att sätta en webbplats sådär på internet? 432 00:22:04,090 --> 00:22:07,140 Tja, det finns ett fåtal sådana ingredienser här. 433 00:22:07,140 --> 00:22:09,310 Så en, måste du köpa ett domännamn. 434 00:22:09,310 --> 00:22:12,440 Det finns klasar av platser i världen från vilken du kan 435 00:22:12,440 --> 00:22:13,940 köpa ett domännamn. 436 00:22:13,940 --> 00:22:16,660 Och till exempel, som vi rekommenderar bara för att det är populärt 437 00:22:16,660 --> 00:22:18,855 och det är billigt kallas namecheap.com. 438 00:22:18,855 --> 00:22:22,860 Men du kan gå godaddy.com och dussintals andra där ute. 439 00:22:22,860 --> 00:22:24,420 Du kan läsa upp på recensioner. 440 00:22:24,420 --> 00:22:26,250 >> Men för det mesta är det inte roll från vilken du 441 00:22:26,250 --> 00:22:27,720 köpa ett domännamn. 442 00:22:27,720 --> 00:22:30,780 Och de varierar i pris och de varierar i suffix. 443 00:22:30,780 --> 00:22:37,140 Suffix som. Com,. Net, . Org,. Io,. TV, de 444 00:22:37,140 --> 00:22:38,650 faktiskt varierar i pris. 445 00:22:38,650 --> 00:22:43,630 Men om vi ville göra något liknande cats.com vi kan gå till denna webbplats, 446 00:22:43,630 --> 00:22:44,280 klicka på Sök. 447 00:22:44,280 --> 00:22:46,370 Förmodligen ett tas. 448 00:22:46,370 --> 00:22:50,170 Men tydligen, catsagainst.com är tillgänglig. 449 00:22:50,170 --> 00:22:52,100 pluscats.com är tillgänglig. 450 00:22:52,100 --> 00:22:53,780 Lovecats, catscorner, dampcats.net. 451 00:22:53,780 --> 00:22:56,320 452 00:22:56,320 --> 00:22:59,135 Allt detta förhoppningsvis pseudo slumpmässigt genererade. 453 00:22:59,135 --> 00:23:04,670 Om du vill cats.pw, $ 1500 bara, vilket är lite galen. 454 00:23:04,670 --> 00:23:08,100 Så någon har verkligen ryckt upp alla katten relaterade domännamn här för 455 00:23:08,100 --> 00:23:09,840 varierande priser. 456 00:23:09,840 --> 00:23:12,360 >> Som en parentes, låt oss se. 457 00:23:12,360 --> 00:23:13,710 Vem har cats.com? 458 00:23:13,710 --> 00:23:16,290 Vet att ni har på ditt förfogande tämligen 459 00:23:16,290 --> 00:23:17,540 sofistikerade kommandon nu. 460 00:23:17,540 --> 00:23:20,592 Som jag kan skriva bokstavligen vem är cats.com? 461 00:23:20,592 --> 00:23:23,730 Och på grund av det sätt på internet är strukturerad kan du faktiskt se vem 462 00:23:23,730 --> 00:23:25,440 har registrerat detta. 463 00:23:25,440 --> 00:23:30,240 Tydligen denna personen är [OHÖRBAR] använda en proxy. 464 00:23:30,240 --> 00:23:33,900 Så den som äger cats.com inte vill att världen ska veta vem de är. 465 00:23:33,900 --> 00:23:36,610 Så de har registrerat om genom några random Privacy Service. 466 00:23:36,610 --> 00:23:39,100 Men ibland faktiskt få verkliga ägare. 467 00:23:39,100 --> 00:23:41,420 >> Och det är att säga, särskilt om du är bedriver någon start och du 468 00:23:41,420 --> 00:23:44,640 verkligen vill ha lite domännamn och du är villiga att betala någon annan för 469 00:23:44,640 --> 00:23:48,050 det, kan du räkna ut kontakten information på det sättet. 470 00:23:48,050 --> 00:23:49,940 >> Men också intressant är det här. 471 00:23:49,940 --> 00:23:53,380 Låt mig rulla upp till denna del. 472 00:23:53,380 --> 00:23:55,330 Så detta är det samma utgång. 473 00:23:55,330 --> 00:23:56,990 Och detta är bara klibbig. 474 00:23:56,990 --> 00:24:00,740 Så tydligen cats.com kan vara ditt för rätt pris. 475 00:24:00,740 --> 00:24:03,170 Men vad som är intressant här är att namnservrarna - 476 00:24:03,170 --> 00:24:06,040 Detta är totalt missbruk av vad ett namn server är tänkt att vara - ditt namn 477 00:24:06,040 --> 00:24:08,876 Servern är inte tänkt att vara thisdomainforsale.com. 478 00:24:08,876 --> 00:24:11,050 Om vi ​​väljer faktiskt något liknande - 479 00:24:11,050 --> 00:24:15,181 Låt oss välja något lite mer legitim ut, vem är google.com, 480 00:24:15,181 --> 00:24:17,030 och rulla upp här. 481 00:24:17,030 --> 00:24:18,280 Så här - 482 00:24:18,280 --> 00:24:20,600 483 00:24:20,600 --> 00:24:21,740 Vad hände där? 484 00:24:21,740 --> 00:24:22,480 Intressant. 485 00:24:22,480 --> 00:24:25,290 Bortom vem är - 486 00:24:25,290 --> 00:24:26,610 Låt oss hålla det mer lågmäld. 487 00:24:26,610 --> 00:24:28,370 >> Vem är mit.edu? 488 00:24:28,370 --> 00:24:28,810 OK. 489 00:24:28,810 --> 00:24:29,900 Detta är användbart. 490 00:24:29,900 --> 00:24:31,400 Så det här är vad jag hoppades för. 491 00:24:31,400 --> 00:24:33,930 Legitim användning av DNS-tjänsten. 492 00:24:33,930 --> 00:24:36,750 Namn servrar här indikerar följande. 493 00:24:36,750 --> 00:24:40,880 Detta är MIT: s sätt att säga, när någon i världen, var de än 494 00:24:40,880 --> 00:24:46,950 är, typ i mit.edu och träffar Enter, din bärbara dator, oavsett Mac eller PC, kommer 495 00:24:46,950 --> 00:24:51,830 på något sätt till slut räkna ut att det människor i världen som vet vad de 496 00:24:51,830 --> 00:24:58,130 IP-adress är för mit.edu eller någon av de subdomäner på mit.edu eller något av 497 00:24:58,130 --> 00:25:01,660 Dessa servrar här - och det faktiskt ser ut som MITs infrastruktur är 498 00:25:01,660 --> 00:25:03,370 ganska robust som du förväntar dig. 499 00:25:03,370 --> 00:25:07,050 De har flera namn-servrar vilket är bra för redundans. 500 00:25:07,050 --> 00:25:09,840 Och faktiskt, de verkar vara globalt distribueras över hela världen. 501 00:25:09,840 --> 00:25:13,250 Ett gäng av dem tycks vara i USA, ett par i Asien, en i Europa, två 502 00:25:13,250 --> 00:25:14,540 i någon annanstans. 503 00:25:14,540 --> 00:25:18,000 >> Men poängen här är att DNS som Vi har tagit för givet och 504 00:25:18,000 --> 00:25:21,990 beskrivs allmänt som en stor Excel-tabell som har IP-adresser och domän 505 00:25:21,990 --> 00:25:25,890 Namnen är faktiskt ganska sofistikerad hierarkisk tjänst så att i 506 00:25:25,890 --> 00:25:29,170 världen finns det faktiskt ett ändligt antal av servrar som i huvudsak vet var 507 00:25:29,170 --> 00:25:32,880 alla. coms är eller alla de. nät är, alla av 508 00:25:32,880 --> 00:25:34,650 . Orgs är, och så vidare. 509 00:25:34,650 --> 00:25:37,820 >> Så när du går vidare och köpa en domän namn från en plats som namn Billigt eller 510 00:25:37,820 --> 00:25:41,450 Go Daddy eller någon annan hemsida, en av de viktiga steg som du måste göra 511 00:25:41,450 --> 00:25:45,180 dig, om du gör detta även för din slutliga projektet, är att berätta registrator 512 00:25:45,180 --> 00:25:49,020 från vem du köper domänen namn, vem vet i världen nu 513 00:25:49,020 --> 00:25:52,310 webbplatsens IP-adresser, som dina namnservrar är. 514 00:25:52,310 --> 00:25:55,750 >> Så om du använder, till exempel CS50: s webbhotell - vi råkar ha 515 00:25:55,750 --> 00:25:57,760 detta konto genom dreamhost.com som är en 516 00:25:57,760 --> 00:25:59,560 populära webbhotell företag - 517 00:25:59,560 --> 00:26:03,530 de kommer att säga att du ska köpa din domän och berätta för världen att 518 00:26:03,530 --> 00:26:09,410 domänens namnserver ns1.dreamhost.com, ns2.dreamhost.com, 519 00:26:09,410 --> 00:26:11,470 och ns3.dreamhost.com. 520 00:26:11,470 --> 00:26:12,600 >> Men det är det. 521 00:26:12,600 --> 00:26:15,480 Att köpa ett domännamn innebär att ge dem pengar och att få äganderätten till 522 00:26:15,480 --> 00:26:17,190 domän, men det är mer som en hyra though. 523 00:26:17,190 --> 00:26:20,060 Du får den för ett år och sedan de bill dig för återkommande och resten av 524 00:26:20,060 --> 00:26:22,130 ditt liv tills du avbryter domännamnet. 525 00:26:22,130 --> 00:26:24,510 Och då kan du berätta för dem som namnservrar är. 526 00:26:24,510 --> 00:26:26,190 Men då du är klar med din registrar. 527 00:26:26,190 --> 00:26:30,130 Och därifrån kommer du interagerar endast med ditt webbhotell, vilket 528 00:26:30,130 --> 00:26:32,030 i CS50: s fall blir DreamHost. 529 00:26:32,030 --> 00:26:36,080 Men återigen, kommer mer dokumentation vara ges till dig om du bestämmer dig för att gå 530 00:26:36,080 --> 00:26:37,170 den vägen. 531 00:26:37,170 --> 00:26:40,750 >> Så om du gör detta efter kursens slut, helt enkelt googla webbhotell 532 00:26:40,750 --> 00:26:42,830 Företaget kommer att vända upp tusentals av optioner. 533 00:26:42,830 --> 00:26:45,720 Och jag skulle i allmänhet uppmuntra er att be vänner som kanske har använt en 534 00:26:45,720 --> 00:26:49,350 företaget innan om de rekommenderar dem och hade en bra erfarenhet. 535 00:26:49,350 --> 00:26:52,680 >> Eftersom det finns en hel del fluga på natten webbhotell företag, som en kille i 536 00:26:52,680 --> 00:26:55,220 sin källare med en server som har en IP-adress. 537 00:26:55,220 --> 00:26:58,980 Han har lite extra RAM och hårddisk utrymme och bara säljer web hosting 538 00:26:58,980 --> 00:27:02,380 konton trots att det finns inget sätt att server kan hantera hundratals 539 00:27:02,380 --> 00:27:04,050 användare eller tusentals användare. 540 00:27:04,050 --> 00:27:06,260 Så inser du kommer att få vad du betalar för. 541 00:27:06,260 --> 00:27:09,510 >> För ett tag för min personliga hem sidan - och det var helt acceptabelt 542 00:27:09,510 --> 00:27:11,830 eftersom jag hade, vilja, två besökare i månaden - 543 00:27:11,830 --> 00:27:14,990 Jag betalar, liksom, $ 2,95 per månad. 544 00:27:14,990 --> 00:27:17,230 Och jag är ganska säker på att det var i någons källare. 545 00:27:17,230 --> 00:27:20,800 Men återigen, så får man inte nödvändigtvis några garantier för uptime eller 546 00:27:20,800 --> 00:27:21,840 skalbarhet. 547 00:27:21,840 --> 00:27:24,560 Så återigen, du letar typiskt på något mer än så. 548 00:27:24,560 --> 00:27:26,220 >> Nå, hur är SSL? 549 00:27:26,220 --> 00:27:27,690 Så vad är SSL används för? 550 00:27:27,690 --> 00:27:30,320 Låt oss nu börja styra i riktningar av säkerhet och saker som 551 00:27:30,320 --> 00:27:32,330 kan skada oss. 552 00:27:32,330 --> 00:27:36,890 Speciellt när du vågar ut på egen hand. 553 00:27:36,890 --> 00:27:41,650 >> Vad är SSL, eller vad SSL används för? 554 00:27:41,650 --> 00:27:42,660 Säkerhet, OK. 555 00:27:42,660 --> 00:27:44,000 Så används det för säkerhet. 556 00:27:44,000 --> 00:27:44,640 Vad betyder det? 557 00:27:44,640 --> 00:27:47,170 Så det står för Secure Sockets Layer. 558 00:27:47,170 --> 00:27:52,330 Och det indikeras av en URL som börjar med https://. 559 00:27:52,330 --> 00:27:58,410 Många av oss har nog aldrig skrivit https://, men du kommer ofta att 560 00:27:58,410 --> 00:28:03,000 din webbläsare dirigeras från HTTP till HTTPS så att allt finns där 561 00:28:03,000 --> 00:28:04,260 efter krypterad. 562 00:28:04,260 --> 00:28:10,810 >> FYI, använder SSL krävs normalt att du har en unik IP-adress. 563 00:28:10,810 --> 00:28:13,940 Och typiskt att få ett unik IP-adress måste du betala ett webbhotell 564 00:28:13,940 --> 00:28:15,850 Företagets några få dollar mer per månad. 565 00:28:15,850 --> 00:28:19,850 Så inser att detta är mycket lätt genomfört dessa dagar genom att köpa en IP 566 00:28:19,850 --> 00:28:22,930 adress och genom att köpa det som är kallas ett SSL-certifikat. 567 00:28:22,930 --> 00:28:26,520 Men inser att det kommer någon extra kostnad. 568 00:28:26,520 --> 00:28:30,880 Och, som vi ska försöka skrämma på bara ett bit, det är inte ens nödvändigtvis 100% 569 00:28:30,880 --> 00:28:34,040 skyddande av vad det är du försöker skydda. 570 00:28:34,040 --> 00:28:38,620 >> Så för säkerhet, jag trodde jag skulle göra en slags slumpmässig SEGUE här. 571 00:28:38,620 --> 00:28:42,820 Som du kanske vet från CS50 föreläsning videos, har vårt produktionsteam varit en 572 00:28:42,820 --> 00:28:46,770 fan som jag har att ta riktigt nice fotografi av campus, och antenn 573 00:28:46,770 --> 00:28:48,370 fotografi senast. 574 00:28:48,370 --> 00:28:51,450 Om du ser någonsin upp och du ser något som flyger med en liten kamera, 575 00:28:51,450 --> 00:28:53,410 Det kan faktiskt vara CS50. 576 00:28:53,410 --> 00:28:55,830 Och jag tänkte att jag skulle dela minut del av filmen har laget 577 00:28:55,830 --> 00:28:59,450 samlas, särskilt som vi ser att vårterminen och nästa höst. 578 00:28:59,450 --> 00:29:03,320 Om någon av er har en talang för fotografi, Videografi, skulle vi 579 00:29:03,320 --> 00:29:05,570 älskar att få dig involverad bakom kulisserna. 580 00:29:05,570 --> 00:29:07,595 Men mer om dessa detaljer i en vecka. 581 00:29:07,595 --> 00:29:18,560 >> [MUSIK] 582 00:29:18,560 --> 00:29:20,750 >> DAVID J. MALAN: Stänger ute finns en minigolfbana på toppen av 583 00:29:20,750 --> 00:29:22,754 arenan som vi inte visste om. 584 00:29:22,754 --> 00:30:06,150 >> [MUSIK] 585 00:30:06,150 --> 00:30:08,440 >> DAVID J. MALAN: Du kan se Disposition av drönare där. 586 00:30:08,440 --> 00:30:24,160 >> [MUSIK] 587 00:30:24,160 --> 00:30:26,280 >> DAVID J. MALAN: Det bästa här är titta, joggaren till vänster. 588 00:30:26,280 --> 00:30:52,900 >> [MUSIK] 589 00:30:52,900 --> 00:30:56,920 >> David J. MALAN: Ett annat exempel på vad du kan göra med teknik som är 590 00:30:56,920 --> 00:30:58,900 endast tangentiellt, ärligt talat, relaterade till säkerhet. 591 00:30:58,900 --> 00:31:01,710 Men jag trodde det skulle vara ett mer roligt sätt att bara säga, säkerhet. 592 00:31:01,710 --> 00:31:07,780 Så låt oss se om vi inte kan skrämma er nu med inte bara en bit av ett fåtal 593 00:31:07,780 --> 00:31:10,590 hot, men också en underliggande förståelse för vad dessa hot 594 00:31:10,590 --> 00:31:13,830 så att framåt du kan bestämma hur och om att försvara 595 00:31:13,830 --> 00:31:17,290 dig mot dessa saker och på åtminstone att vara uppmärksam på dem som du 596 00:31:17,290 --> 00:31:20,530 fatta beslut om huruvida eller inte skicka som e-post, om du vill logga 597 00:31:20,530 --> 00:31:24,920 in den webbplatsen, huruvida använda cyber Café Wi-Fi 598 00:31:24,920 --> 00:31:28,210 punkt så att du vet vad hot är faktiskt omkring dig. 599 00:31:28,210 --> 00:31:30,990 >> Jonatan avses något gillar det här på måndag. 600 00:31:30,990 --> 00:31:32,220 Han hade ett skott fönsterfilm. 601 00:31:32,220 --> 00:31:33,630 Detta är en Mac. 602 00:31:33,630 --> 00:31:36,850 Hur många av er har någonsin installerat program på din Mac eller PC? 603 00:31:36,850 --> 00:31:38,420 Uppenbarligen alla. 604 00:31:38,420 --> 00:31:41,590 Hur många av er har funderat mycket att skriva in ditt lösenord 605 00:31:41,590 --> 00:31:43,030 när du blir ombedd? 606 00:31:43,030 --> 00:31:44,740 Jag menar, även jag inte, ärligt talat. 607 00:31:44,740 --> 00:31:48,730 Så ett par av oss är bra på att vara paranoid. 608 00:31:48,730 --> 00:31:50,490 Men fundera på vad du är egentligen gör här. 609 00:31:50,490 --> 00:31:53,280 >> På en typisk Mac eller PC du har ett administratörskonto. 610 00:31:53,280 --> 00:31:56,450 Och oftast är du den enda som använder en laptop åtminstone dessa dagar. 611 00:31:56,450 --> 00:31:59,780 Så ditt konto, Malan eller JHarvard eller vad det är, är det 612 00:31:59,780 --> 00:32:00,830 administratörskonto. 613 00:32:00,830 --> 00:32:03,530 Och vad det betyder är att du har root-åtkomst till din dator. 614 00:32:03,530 --> 00:32:06,180 Du kan installera vad du vill, ta bort vad du vill. 615 00:32:06,180 --> 00:32:10,800 >> Och typiskt dessa dagar, på grund av daterad design beslut från år sedan, 616 00:32:10,800 --> 00:32:14,560 det sätt de flesta program får installeras är som administratör. 617 00:32:14,560 --> 00:32:18,180 Och även om din Mac eller PC har minst blivit smart nog över 618 00:32:18,180 --> 00:32:22,010 år med de senaste inkarnationer av Mac OS och Windows för att inte köra 619 00:32:22,010 --> 00:32:26,130 användarnamn som standard som administratör, när du ladda ner några 620 00:32:26,130 --> 00:32:29,160 nytt program från internet och försöka installera det, du kommer antagligen 621 00:32:29,160 --> 00:32:30,880 att bli tillfrågad om ditt lösenord. 622 00:32:30,880 --> 00:32:34,790 Men kruxet är vid den punkten, du är bokstavligen lämna nycklarna till din 623 00:32:34,790 --> 00:32:38,620 dator över till vad slumpmässigt programmet du laddade ner bara och 624 00:32:38,620 --> 00:32:41,590 gör det möjligt att installera vad den vill. 625 00:32:41,590 --> 00:32:45,050 >> Och när Jonathan antytts, inser att det skulle kunna säga att den vill 626 00:32:45,050 --> 00:32:49,350 installera programvaran som du bryr dig omkring, Spotify eller iTunes eller vad 627 00:32:49,350 --> 00:32:50,900 det är du försöker installera. 628 00:32:50,900 --> 00:32:54,710 Men du är bokstavligen att lita på författaren eller författarna av programvaran till 629 00:32:54,710 --> 00:32:57,570 bara göra vad programmet är tänkt att göra. 630 00:32:57,570 --> 00:33:02,320 >> Men det finns absolut ingenting stoppa de flesta program på de flesta 631 00:33:02,320 --> 00:33:06,910 operativsystem från radering av filer, från att ladda upp dem till något företag 632 00:33:06,910 --> 00:33:10,040 webbplats, från trolling runt, för kryptering av saker. 633 00:33:10,040 --> 00:33:12,970 Och återigen har vi sorts inbyggd en hel infrastruktur över 634 00:33:12,970 --> 00:33:14,930 åren på förtroende. 635 00:33:14,930 --> 00:33:18,690 Och så inser du att du bara har varit lita random människor och random 636 00:33:18,690 --> 00:33:20,050 företag för det mesta. 637 00:33:20,050 --> 00:33:24,860 >> Och Jonatan nämndes också, ibland dessa företag själva är slags 638 00:33:24,860 --> 00:33:26,410 medvetet elak, okej? 639 00:33:26,410 --> 00:33:30,200 Sony fångade en hel del flack några år sedan för att installera vad som kallades en 640 00:33:30,200 --> 00:33:33,220 rootkit kit på folks datorer utan deras vetskap. 641 00:33:33,220 --> 00:33:36,570 Och kontentan av detta var att när du köpte en cd till exempel att de 642 00:33:36,570 --> 00:33:40,050 inte vill att du ska kunna kopiera eller rippa musiken av, cd skulle 643 00:33:40,050 --> 00:33:42,600 installera, utan din vetskap, ett rootkit på din dator. 644 00:33:42,600 --> 00:33:46,020 Rootkit bara säga programvara som körs som administratör som potentiellt 645 00:33:46,020 --> 00:33:47,260 gör dåliga saker. 646 00:33:47,260 --> 00:33:50,780 >> Men bland de saker som den här saken gjorde var det gömde sig. 647 00:33:50,780 --> 00:33:53,660 Så några av er kanske vara ganska kunniga med datorn och vet väl, jag 648 00:33:53,660 --> 00:33:57,310 kan bara öppna Aktivitetshanteraren eller Activity Monitor och jag kan titta på alla 649 00:33:57,310 --> 00:33:59,150 av de arcanely namngivna program som körs. 650 00:33:59,150 --> 00:34:01,760 Och om något ser misstänkt Jag ska bara döda den eller radera den. 651 00:34:01,760 --> 00:34:02,980 Men det är vad rootkit gjorde. 652 00:34:02,980 --> 00:34:07,070 Det sade i huvudsak, om det körs Task Chef, visa inte dig själv. 653 00:34:07,070 --> 00:34:08,500 >> Så programvaran var där. 654 00:34:08,500 --> 00:34:12,710 Och bara om du verkligen, verkligen såg ut hårt kan du även hitta det. 655 00:34:12,710 --> 00:34:15,670 Och detta gjordes i namnet av kopieringsskydd. 656 00:34:15,670 --> 00:34:18,230 Men tänk vad kunde har gjort annars. 657 00:34:18,230 --> 00:34:19,699 >> Nu när det gäller att skydda dig själv. 658 00:34:19,699 --> 00:34:22,190 Många webbplatser är underbart nådig i att de sätter dessa 659 00:34:22,190 --> 00:34:26,480 hänglås ikoner på deras hemsida som innebär att webbplatsen är säker. 660 00:34:26,480 --> 00:34:28,870 Detta är från bankofamerica.com i morse. 661 00:34:28,870 --> 00:34:32,239 Så vad betyder det lilla hänglåsikonen Det betyder bredvid knappen Logga in? 662 00:34:32,239 --> 00:34:35,699 663 00:34:35,699 --> 00:34:36,790 >> Absolut ingenting. 664 00:34:36,790 --> 00:34:39,560 Det betyder att någon vet hur man använder Photoshop för att göra en bild av ett 665 00:34:39,560 --> 00:34:40,590 hänglås. 666 00:34:40,590 --> 00:34:44,449 Liksom bokstavligen, det faktum att det är Det är tänkt att vara en positiv 667 00:34:44,449 --> 00:34:46,880 signalera till användaren liknande, ooh, säkra webbplats. 668 00:34:46,880 --> 00:34:50,449 Jag skulle lita på denna webbplats och nu skriva in mitt användarnamn och lösenord. 669 00:34:50,449 --> 00:34:53,870 Och detta har varit vanligt för år, så sent som i morse. 670 00:34:53,870 --> 00:34:56,949 >> Men anser de vanor som detta är att få oss in. 671 00:34:56,949 --> 00:35:00,600 Betrakta det implicita budskapet att alla av dessa banker i detta fall har varit 672 00:35:00,600 --> 00:35:01,830 skicka oss i år. 673 00:35:01,830 --> 00:35:05,160 Om du ser hänglås, fäst sedan. 674 00:35:05,160 --> 00:35:05,340 Okej? 675 00:35:05,340 --> 00:35:10,520 >> Så hur kan du missbrukar systemet av förtroende om du är den onde? 676 00:35:10,520 --> 00:35:14,100 Sätt ett hänglås på din webbplats, och logiskt, har användarna varit 677 00:35:14,100 --> 00:35:17,260 konditioneras år att anta hänglås betyder säker. 678 00:35:17,260 --> 00:35:19,310 Och det kan faktiskt vara säker. 679 00:35:19,310 --> 00:35:24,810 Du kanske har en härligt säker SSL HTTPS-anslutning till en 680 00:35:24,810 --> 00:35:26,452 falsk webbplats. com. 681 00:35:26,452 --> 00:35:30,150 Och ingen annan i världen kan se att du är på väg att lämna honom eller henne 682 00:35:30,150 --> 00:35:32,790 ditt användarnamn och lösenord till ditt konto. 683 00:35:32,790 --> 00:35:35,110 >> Detta är dock kanske, är en lite mer lugnande. 684 00:35:35,110 --> 00:35:38,600 Så detta är en skärmdump av den övre i min webbläsare i morse vid 685 00:35:38,600 --> 00:35:39,910 bankofamerica.com. 686 00:35:39,910 --> 00:35:43,270 Och märker också här vi har ett hänglås. 687 00:35:43,270 --> 00:35:48,040 Vad betyder det i detta sammanhang i Chrome åtminstone? 688 00:35:48,040 --> 00:35:49,520 >> Så detta är nu med hjälp av SSL. 689 00:35:49,520 --> 00:35:51,220 Så det här är faktiskt en bättre sak. 690 00:35:51,220 --> 00:35:54,250 Och det faktum att Chrome gör det grönt är tänkt att fästa vår uppmärksamhet 691 00:35:54,250 --> 00:35:56,750 på det faktum att detta är inte bara över SSL. 692 00:35:56,750 --> 00:36:01,400 Detta är ett företag som någon ut Det har verifierats är faktiskt 693 00:36:01,400 --> 00:36:02,520 bankofamerica.com. 694 00:36:02,520 --> 00:36:05,970 Och det innebär att Bank of America, när man köper deras sk SSL 695 00:36:05,970 --> 00:36:09,680 certifikat, i huvudsak stora slumpmässigt, något slumptal som implementerar 696 00:36:09,680 --> 00:36:14,710 trygghet för dem, de har varit verifierats av någon oberoende tredje 697 00:36:14,710 --> 00:36:15,570 parti som säger, japp. 698 00:36:15,570 --> 00:36:19,240 Detta är faktiskt VD för Bank of Amerika försöker köpa certifikatet. 699 00:36:19,240 --> 00:36:23,290 Chrome kommer därför lita på att certifikatutfärdare och säga i 700 00:36:23,290 --> 00:36:25,265 grönt, är detta bankofamerica.com. 701 00:36:25,265 --> 00:36:27,997 Och Bank of America betalar några hundra dollar för att eller ett fåtal 702 00:36:27,997 --> 00:36:30,800 tusen i motsats till en några tiotals dollar. 703 00:36:30,800 --> 00:36:34,940 >> Men även här, hur många av er har någonsin betedde sig annorlunda eftersom 704 00:36:34,940 --> 00:36:38,576 URL i din webbläsare är grönt istället för svart? 705 00:36:38,576 --> 00:36:39,900 Rätt? 706 00:36:39,900 --> 00:36:40,600 Så ett par av oss. 707 00:36:40,600 --> 00:36:42,115 Och det är bra att vara paranoid. 708 00:36:42,115 --> 00:36:45,910 Men även då, de av er som ännu märker dessa saker, gör du faktiskt 709 00:36:45,910 --> 00:36:50,720 sluta logga in på en annars säker hemsida om webbadressen inte är grön? 710 00:36:50,720 --> 00:36:53,380 Okej, så antagligen inte, eller hur? 711 00:36:53,380 --> 00:36:56,740 Åtminstone de flesta av oss, om det inte är grön, mest troligt att du bara kommer 712 00:36:56,740 --> 00:36:57,440 att se ut, vad som helst. 713 00:36:57,440 --> 00:36:58,950 Precis, jag vill logga in på denna webbplats. 714 00:36:58,950 --> 00:37:00,200 Det är därför jag är här. 715 00:37:00,200 --> 00:37:02,390 Jag kommer att logga in ändå. 716 00:37:02,390 --> 00:37:04,500 >> Som en parentes, är Chrome lite bättre om detta. 717 00:37:04,500 --> 00:37:07,990 Men det finns en hel del webbläsare som Firefox till exempel, åtminstone för 718 00:37:07,990 --> 00:37:12,190 en tid, då det hänglåsikonen är, kan du faktiskt sätta någon 719 00:37:12,190 --> 00:37:13,250 ikonen på din egen. 720 00:37:13,250 --> 00:37:17,480 Låt mig se vad den senaste versionen av Firefox ser ut. 721 00:37:17,480 --> 00:37:20,040 Så om vi går till CS50.net. 722 00:37:20,040 --> 00:37:21,580 >> OK, så de har blivit bättre också. 723 00:37:21,580 --> 00:37:24,970 Vilken webbläsare som används för att göra är liknande, Här finns till exempel [? SAAS är?] 724 00:37:24,970 --> 00:37:25,790 krön upp här. 725 00:37:25,790 --> 00:37:29,240 Det är den så kallade favorit ikon för en webbsida. 726 00:37:29,240 --> 00:37:30,190 År sedan - 727 00:37:30,190 --> 00:37:34,720 faktiskt inte så länge sedan - det lilla sköld skulle ha varit rätt 728 00:37:34,720 --> 00:37:36,560 här bredvid webbadressen. 729 00:37:36,560 --> 00:37:40,300 Eftersom vissa geni beslutade att det skulle bara ser ganska elegant att ha 730 00:37:40,300 --> 00:37:43,150 din grafisk logotyp höger bredvid din webbadress. 731 00:37:43,150 --> 00:37:45,310 Och design klokt, som faktiskt är ganska övertygande. 732 00:37:45,310 --> 00:37:47,240 >> Så vad gjorde bad guy börja göra? 733 00:37:47,240 --> 00:37:50,500 De började förändra sin favorit ikoner, eller deras default ikon för en 734 00:37:50,500 --> 00:37:55,250 hemsidan för att inte vara ett vapen men ett hänglås, som hade 735 00:37:55,250 --> 00:37:56,600 absolut ingen mening. 736 00:37:56,600 --> 00:37:59,760 Annat än deras favorit ikon var ett hänglås den hade ingen 737 00:37:59,760 --> 00:38:01,250 tecken på säkerhet. 738 00:38:01,250 --> 00:38:04,040 >> Så lektionerna här är ett par som jag tror. 739 00:38:04,040 --> 00:38:07,820 En är att det finns faktiskt några välmenande mekanismer för 740 00:38:07,820 --> 00:38:12,850 lära oss användare om säkerhet även om du inte ens känner till vad grönt 741 00:38:12,850 --> 00:38:15,110 innebar eller vad ens HTTPS menade. 742 00:38:15,110 --> 00:38:19,130 Men om dessa mekanismer får oss in i den dåliga vanan att förtroendefulla webbplatser 743 00:38:19,130 --> 00:38:23,390 när vi ser dessa positiva signaler, de är mycket lätt missbrukas som vi såg 744 00:38:23,390 --> 00:38:26,480 bara en stund sedan med något dumt som detta. 745 00:38:26,480 --> 00:38:29,100 >> Så sessionskapning kommer in spela, som vi sagt tidigare, 746 00:38:29,100 --> 00:38:30,510 med kakor till exempel. 747 00:38:30,510 --> 00:38:32,130 Och vad innebär det egentligen? 748 00:38:32,130 --> 00:38:35,930 Väl med sessionskapning detta är allt om att stjäla någons cookies. 749 00:38:35,930 --> 00:38:39,860 Så om jag öppnar Chrome här, för exempel, och jag öppnar upp Inspector 750 00:38:39,860 --> 00:38:41,550 här nere och jag går till Network Tab - 751 00:38:41,550 --> 00:38:42,830 och vi har gjort det här förut - 752 00:38:42,830 --> 00:38:48,900 och jag går till något som http://facebook.com Enter, en hel 753 00:38:48,900 --> 00:38:52,280 massa saker går över skärmen på grund av alla de bilder och CSS och 754 00:38:52,280 --> 00:38:53,490 JavaScript-filer. 755 00:38:53,490 --> 00:38:59,420 >> Men om jag tittar på detta här märker att Facebook är faktiskt plantera en 756 00:38:59,420 --> 00:39:02,310 eller flera cookies på min webbläsare här. 757 00:39:02,310 --> 00:39:05,610 Så dessa är i huvudsak handen frimärken som representerar mig. 758 00:39:05,610 --> 00:39:08,580 Och nu förhoppningsvis min webbläsare presentera detta igen och igen när 759 00:39:08,580 --> 00:39:10,560 återbesöka denna webbplats. 760 00:39:10,560 --> 00:39:15,810 Men det bara är säkra, sade vi en par veckor sedan, om du använder SSL. 761 00:39:15,810 --> 00:39:18,860 >> Men även SSL sig kan äventyras. 762 00:39:18,860 --> 00:39:21,800 Tänk efter hela vägen SSL. 763 00:39:21,800 --> 00:39:28,860 När din webbläsare ansluter till en avlägsen server via https://, lång historia kort, 764 00:39:28,860 --> 00:39:30,110 kryptografi är inblandade. 765 00:39:30,110 --> 00:39:34,750 Det är inte så enkelt som Caesar eller Visionaire eller ens DES, DES från en 766 00:39:34,750 --> 00:39:36,110 medan tillbaka i pset2. 767 00:39:36,110 --> 00:39:37,410 Det är mer sofistikerad än så. 768 00:39:37,410 --> 00:39:39,110 Det kallas kryptering med öppen nyckel. 769 00:39:39,110 --> 00:39:42,845 Men riktigt stora och riktigt random nummer används för att förvränga 770 00:39:42,845 --> 00:39:47,125 information mellan punkt A, du och punkt B, som facebook.com. 771 00:39:47,125 --> 00:39:52,570 >> Men problemet är, hur många av oss igen någonsin typ i https:// för att starta 772 00:39:52,570 --> 00:39:55,790 vår hemsida anslutning i det säkra läget? 773 00:39:55,790 --> 00:40:00,900 Jag menar, hur många av er ens typ http://facebook.com? 774 00:40:00,900 --> 00:40:02,290 Okej, om du gör, gillar, hej. 775 00:40:02,290 --> 00:40:03,510 Du behöver inte göra det längre, eller hur? 776 00:40:03,510 --> 00:40:05,190 Webbläsaren kommer att lista ut det. 777 00:40:05,190 --> 00:40:08,070 >> Men de flesta av oss gör faktiskt skriv bara facebook.com. 778 00:40:08,070 --> 00:40:10,960 För om vi använder en webbläsare, det webbläsare har blivit smart nog av 779 00:40:10,960 --> 00:40:14,920 2013 för att uppfylla om du använder en webbläsare, skriver du in en adress, du 780 00:40:14,920 --> 00:40:18,550 förmodligen vill komma åt det inte via e-post eller snabbmeddelande. 781 00:40:18,550 --> 00:40:21,250 Du menar HTTP och port 80. 782 00:40:21,250 --> 00:40:22,970 Dessa konventioner har antagits. 783 00:40:22,970 --> 00:40:24,830 >> Men hur omdirigering arbete? 784 00:40:24,830 --> 00:40:26,170 Tja, ser vad som sker här. 785 00:40:26,170 --> 00:40:27,590 Om jag går tillbaka till Chrome - 786 00:40:27,590 --> 00:40:31,920 och låt oss göra detta i inkognito läge så att alla mina 787 00:40:31,920 --> 00:40:33,620 cookies kastas bort. 788 00:40:33,620 --> 00:40:38,130 Och låt mig gå här, igen, facebook.com. 789 00:40:38,130 --> 00:40:39,490 Och låt oss se vad som händer. 790 00:40:39,490 --> 00:40:43,372 >> Minns att den första ansökan var faktiskt bara för facebook.com. 791 00:40:43,372 --> 00:40:46,580 Men vad var det svar som jag fick? 792 00:40:46,580 --> 00:40:48,520 Det var inte en 200 OK. 793 00:40:48,520 --> 00:40:53,550 Det var 300, eller 301, som är en omdirigera berättar för mig att gå till 794 00:40:53,550 --> 00:40:59,050 http://www.facebook.com, som är där Facebook vill att jag ska gå. 795 00:40:59,050 --> 00:41:01,900 Men sedan, om vi tittar på nästa begäran, och vi har sett det här förut, 796 00:41:01,900 --> 00:41:04,370 märker vad deras andra svaret är. 797 00:41:04,370 --> 00:41:10,280 Speciellt att de vill ha mig nu gå till SSL version av Facebook. 798 00:41:10,280 --> 00:41:11,800 >> Så här är en möjlighet. 799 00:41:11,800 --> 00:41:15,440 Detta är ett fantastiskt användbar funktion om bara banan och HTTP. 800 00:41:15,440 --> 00:41:19,570 Om slutanvändaren som Facebook vill ha mig att stanna på den säkra versionen av deras 801 00:41:19,570 --> 00:41:20,850 hemsida, bra. 802 00:41:20,850 --> 00:41:23,130 De kommer att styra mig själv. 803 00:41:23,130 --> 00:41:25,250 Och så jag behöver inte ens tänka på det. 804 00:41:25,250 --> 00:41:29,200 >> Men vad händer om mellan punkt A och B, mellan dig och Facebook, det finns en del 805 00:41:29,200 --> 00:41:32,220 skurk, det finns något system administratör vid Harvard som är nyfikna 806 00:41:32,220 --> 00:41:34,240 att se vilka dina vänner är. 807 00:41:34,240 --> 00:41:36,760 Eller finns det någon - 808 00:41:36,760 --> 00:41:38,340 år sedan, det brukade låta galet - 809 00:41:38,340 --> 00:41:41,950 men det finns vissa statliga organ som NSA som är faktiskt intresserade 810 00:41:41,950 --> 00:41:44,390 i vem du peta på Facebook. 811 00:41:44,390 --> 00:41:45,910 Var är möjligheten där? 812 00:41:45,910 --> 00:41:49,305 Tja, så länge någon har tillräckligt tekniskt kunniga och de har tillgång 813 00:41:49,305 --> 00:41:53,350 din faktiska nätverk via Wi-Fi eller någon fysisk tråd, 814 00:41:53,350 --> 00:41:54,570 vad kan de göra? 815 00:41:54,570 --> 00:41:57,520 >> Tja, om de är på samma nätverk som du och de vet något om 816 00:41:57,520 --> 00:42:02,050 TCP / IP och IP-adresser och DNS och hur Allt detta verk, tänk om det 817 00:42:02,050 --> 00:42:05,970 Mannen i mitten, tänk om det nationella Security Agency, vad det 818 00:42:05,970 --> 00:42:11,480 kan vara, men vad händer om denna enhet bara reagerar snabbare än Facebook för att 819 00:42:11,480 --> 00:42:15,820 din HTTP-förfrågan och säger, åh, jag Facebook. 820 00:42:15,820 --> 00:42:19,300 Gå framåt, och här är den HTML för facebook.com. 821 00:42:19,300 --> 00:42:20,720 >> Datorer är ganska snabb. 822 00:42:20,720 --> 00:42:25,990 Så du kan skriva ett program som körs på en server som nsa.gov att när det 823 00:42:25,990 --> 00:42:29,790 hör en begäran från dig för facebook.com, mycket snabbt bakom 824 00:42:29,790 --> 00:42:34,000 scener blir den verkliga facebook.com making en perfekt [? esque?] säkra 825 00:42:34,000 --> 00:42:38,290 SSL-anslutning mellan NSA och mellan Facebook, få att HTML är mycket 826 00:42:38,290 --> 00:42:42,670 säkert för inloggningssidan, och sedan NSA servern svarar bara för dig 827 00:42:42,670 --> 00:42:44,942 med en inloggningssida för facebook.com. 828 00:42:44,942 --> 00:42:49,120 >> Nu hur många av er skulle ens märker att du använder Facebook via HTTP 829 00:42:49,120 --> 00:42:53,375 fortfarande på den punkten eftersom du har oavsiktligt ansluten till nsa.gov och 830 00:42:53,375 --> 00:42:53,870 inte Facebook? 831 00:42:53,870 --> 00:42:54,980 Den webbadresser förändras inte. 832 00:42:54,980 --> 00:42:57,040 Allt detta görs bakom kulisserna. 833 00:42:57,040 --> 00:42:59,470 Men de flesta av oss, däribland jag själv, förmodligen inte skulle märka 834 00:42:59,470 --> 00:43:00,800 en sådan liten detalj. 835 00:43:00,800 --> 00:43:05,510 >> Så du kanske har en helt fungerande koppling mellan dig och vad du 836 00:43:05,510 --> 00:43:08,660 tycker är Facebook, men det finns en så kallade mannen i mitten. 837 00:43:08,660 --> 00:43:12,480 Och detta är en allmän term för människan i mitten attack där du har några 838 00:43:12,480 --> 00:43:17,670 enhet mellan dig och punkt B som är på något sätt manipulera, stjäla, eller 839 00:43:17,670 --> 00:43:18,960 tittar på dina uppgifter. 840 00:43:18,960 --> 00:43:22,750 Så även SSL är inte bombsäkert, speciellt om du har lurats in 841 00:43:22,750 --> 00:43:26,790 inte vrida på grund av hur dessa bakomliggande mekanismer fungerar faktiskt. 842 00:43:26,790 --> 00:43:30,670 >> Så en lektion idag då också är om du verkligen vill vara paranoid - 843 00:43:30,670 --> 00:43:32,110 och även här finns hot - 844 00:43:32,110 --> 00:43:37,112 du borde verkligen börja komma in vanan att skriva i https://www 845 00:43:37,112 --> 00:43:39,850 oavsett domännamn du faktiskt bryr sig om. 846 00:43:39,850 --> 00:43:41,820 >> Och som en parentes för det finns ännu ett hot med 847 00:43:41,820 --> 00:43:43,410 beaktande sessionskapning. 848 00:43:43,410 --> 00:43:47,440 Väldigt ofta när du först besöker en webbplats som facebook.com, såvida 849 00:43:47,440 --> 00:43:51,050 server har konfigurerats för att säga att att handstämpel det sätta på dig 850 00:43:51,050 --> 00:43:56,140 igår bör skydda sig själv, din webbläsare kan mycket väl, på 851 00:43:56,140 --> 00:44:00,620 besökande saker som facebook.com google.com, twitter.com, webbläsaren 852 00:44:00,620 --> 00:44:04,280 kan presentera att handstämpel endast ska smällde och sa, nej. 853 00:44:04,280 --> 00:44:05,660 Använd SSL. 854 00:44:05,660 --> 00:44:07,030 >> Men det är för sent på den punkten. 855 00:44:07,030 --> 00:44:10,940 Om du redan har skickat din hand stämpel, din cookie, i det klara med 856 00:44:10,940 --> 00:44:15,180 ingen SSL, har du en bråkdels sekund sårbarhet där någon sniffar 857 00:44:15,180 --> 00:44:19,530 din trafik, oavsett rumskompis eller NSA, kan då använda samma kaka, och 858 00:44:19,530 --> 00:44:23,860 med lite tekniskt kunniga, presentera den som sin egen. 859 00:44:23,860 --> 00:44:25,930 >> En annan attack du kanske inte har tänkt på. 860 00:44:25,930 --> 00:44:30,120 Den här är verkligen på dig om du skruvar upp detta skriftligen någon webbplats som 861 00:44:30,120 --> 00:44:31,580 något sätt använder SQL. 862 00:44:31,580 --> 00:44:34,610 Så här, till exempel, är en skärm skott av Harvards inloggning. 863 00:44:34,610 --> 00:44:36,380 Och detta är ett generellt exempel av något med en 864 00:44:36,380 --> 00:44:37,480 användarnamn och lösenord. 865 00:44:37,480 --> 00:44:38,440 Super vanligt. 866 00:44:38,440 --> 00:44:41,310 Så låt oss anta att SSL existerar och det finns ingen människa i mitten eller 867 00:44:41,310 --> 00:44:41,920 något liknande. 868 00:44:41,920 --> 00:44:45,660 Nu fokuserar vi på serverns kod som du kanske skriva. 869 00:44:45,660 --> 00:44:49,830 >> Jo, när jag skriver in ett användarnamn och lösenord, antar att PIN-tjänsten 870 00:44:49,830 --> 00:44:51,740 implementeras i PHP. 871 00:44:51,740 --> 00:44:53,990 Och du kanske har någon kod på den servern som denna. 872 00:44:53,990 --> 00:44:57,740 Få användarnamnet från posten super global och få lösenordet, och sedan 873 00:44:57,740 --> 00:45:01,130 om de använder några pset7 gillar koden finns det en sökfunktion 874 00:45:01,130 --> 00:45:01,820 som skulle kunna göra detta. 875 00:45:01,820 --> 00:45:06,320 Välj Star från användare där användarnamn är lika stor som och lösenord är lika stor som. 876 00:45:06,320 --> 00:45:08,120 >> Det ser vid första anblicken, helt rimligt. 877 00:45:08,120 --> 00:45:11,090 Detta är syntaktiskt giltigt PHP-kod. 878 00:45:11,090 --> 00:45:13,160 Logiskt finns det inget fel med detta. 879 00:45:13,160 --> 00:45:15,710 Förmodligen finns det några fler rader som faktiskt göra något med den 880 00:45:15,710 --> 00:45:18,150 resultat som kommer tillbaka från databasen. 881 00:45:18,150 --> 00:45:20,580 Men detta är sårbar för av följande skäl. 882 00:45:20,580 --> 00:45:23,760 >> Observera att, som en god medborgare, Jag har lagt in citat, singel 883 00:45:23,760 --> 00:45:25,380 citationstecken, användarnamnet. 884 00:45:25,380 --> 00:45:26,980 Och jag satte i enkla citattecken lösenordet. 885 00:45:26,980 --> 00:45:28,830 Och det är en bra sak eftersom de är inte tänkt att vara siffror. 886 00:45:28,830 --> 00:45:30,660 Typiskt att de ska vara text. 887 00:45:30,660 --> 00:45:32,290 Så jag citerar dem som strängar. 888 00:45:32,290 --> 00:45:37,470 >> Och om jag avancera nu ytterligare tänk om - och jag har tagit bort kulorna från 889 00:45:37,470 --> 00:45:38,870 PIN tjänsten tillfälligt - 890 00:45:38,870 --> 00:45:41,650 Vad händer om jag försöker logga in som President [? Scroob?] 891 00:45:41,650 --> 00:45:52,540 men jag hävdar att mitt lösenord är 12345 'OR '1' = '1, och varsel 892 00:45:52,540 --> 00:45:53,830 vad jag inte har gjort. 893 00:45:53,830 --> 00:45:56,140 Jag stängde inte den andra enda anbud. 894 00:45:56,140 --> 00:45:58,500 Eftersom jag är ganska skarp här som den onde. 895 00:45:58,500 --> 00:46:01,870 Och jag antar att de är du inte så bra med din 896 00:46:01,870 --> 00:46:03,450 PHP och MySQL kod. 897 00:46:03,450 --> 00:46:06,740 Jag gissar att du inte kollar med avseende på närvaro av citat. 898 00:46:06,740 --> 00:46:11,190 >> Så vad hände är att när din användaren har skrivit i den strängen, 899 00:46:11,190 --> 00:46:15,060 frågan du ska skapar ser ut så här. 900 00:46:15,060 --> 00:46:18,180 Och lång historia kort, om du och något tillsammans eller du eller något 901 00:46:18,180 --> 00:46:21,740 ihop detta kommer att återvända en rad från databasen. 902 00:46:21,740 --> 00:46:26,570 Eftersom det alltid är fallet att en lika med 1. 903 00:46:26,570 --> 00:46:30,400 >> Och bara för att du inte förutse att användarna, bra eller dåligt, kanske 904 00:46:30,400 --> 00:46:35,340 ha en apostrof i namnet du har skapat en SQL-fråga som fortfarande 905 00:46:35,340 --> 00:46:39,040 giltig, kommer och återkommer nu fler resultat än du kanske har tänkt. 906 00:46:39,040 --> 00:46:42,340 Och så här skurken har nu potentiellt loggat in på din server 907 00:46:42,340 --> 00:46:47,060 eftersom databasen återvänder en rad även om han eller hon har ingen aning om vad 908 00:46:47,060 --> 00:46:49,410 [? Scroob s?] Faktiska lösenordet är. 909 00:46:49,410 --> 00:46:50,640 >> Åh, insåg jag ett stavfel här. 910 00:46:50,640 --> 00:46:53,260 Jag borde ha sagt lösenordet är lika 12345 som den tidigare 911 00:46:53,260 --> 00:46:54,990 exempel eller 1 är lika med 1. 912 00:46:54,990 --> 00:46:56,400 Jag ska fixa det på nätet. 913 00:46:56,400 --> 00:46:59,960 >> Så varför har vi att du använder frågan funktion med frågetecken? 914 00:46:59,960 --> 00:47:04,000 En av de saker sökfunktion betyder för dig är det ser till att 915 00:47:04,000 --> 00:47:07,660 när du passerar i argumenten efter kommatecken här så här att frågan 916 00:47:07,660 --> 00:47:10,330 som faktiskt har skickats till Databasen ser ut så här. 917 00:47:10,330 --> 00:47:13,830 En hel fulare att titta på, men tillbaka snedstreck har automatiskt 918 00:47:13,830 --> 00:47:19,030 in för att undvika just det injektion attack som jag visade en 919 00:47:19,030 --> 00:47:20,270 stund sedan. 920 00:47:20,270 --> 00:47:24,930 >> Nu en rolig xkcd att jag trodde att jag skulle dra här uppe som förhoppningsvis ska nu finnas en 921 00:47:24,930 --> 00:47:28,546 lite mer förståeligt är detta en här. 922 00:47:28,546 --> 00:47:39,460 923 00:47:39,460 --> 00:47:40,265 >> En liten bit? 924 00:47:40,265 --> 00:47:42,370 Vi kanske behöver lite mer diskussion om detta. 925 00:47:42,370 --> 00:47:47,810 Så här syftar på en liten unge heter Bobby som har på något sätt tagit 926 00:47:47,810 --> 00:47:52,250 fördel av en webbplats som är bara lita på att vad användaren har skrivit 927 00:47:52,250 --> 00:47:55,100 in är inte, i själva verket, SQL-kod, men är i själva verket en sträng. 928 00:47:55,100 --> 00:47:56,830 >> Nu kanske du minns att drop - 929 00:47:56,830 --> 00:48:00,190 du kanske har sett detta - drop innebär radera ett bord, ta bort en databas. 930 00:48:00,190 --> 00:48:02,235 Så om du hävdar i huvudsak att ditt namn är Robert "; droptabl 931 00:48:02,235 --> 00:48:03,485 estudentsomething,] 932 00:48:03,485 --> 00:48:06,340 933 00:48:06,340 --> 00:48:09,370 du kan mycket väl lura databasen inte bara till att kontrollera att du är 934 00:48:09,370 --> 00:48:13,530 indeed Robert, men semikolon också fortsätta att släppa bordet. 935 00:48:13,530 --> 00:48:17,560 >> Och så SQL injection attacker kan faktiskt vara lika farliga som detta 936 00:48:17,560 --> 00:48:20,740 där du kan ta bort någons uppgifter, Du kan välja fler datas än 937 00:48:20,740 --> 00:48:23,440 avsett, kan du infoga eller uppdatera data. 938 00:48:23,440 --> 00:48:26,520 Och du kan faktiskt se detta om vid hem motion, inte för skadlig 939 00:48:26,520 --> 00:48:29,730 ändamål men bara för instruktions, är helst du uppmanas att logga 940 00:48:29,730 --> 00:48:35,180 på webbplatsen, i synnerhet någon form av icke mycket allmän, mycket populär webbplats, 941 00:48:35,180 --> 00:48:38,630 prova att logga in som John O'Reilly eller någon med en 942 00:48:38,630 --> 00:48:39,740 apostrofen i deras namn. 943 00:48:39,740 --> 00:48:42,990 Eller bokstavligen bara skriva apostrof, tryck Enter, och se vad som händer. 944 00:48:42,990 --> 00:48:47,990 >> Och alltför ofta tragiskt nog folk har inte saneras sina insatsvaror och 945 00:48:47,990 --> 00:48:51,690 såg till att saker som citat eller semikolon är rymt. 946 00:48:51,690 --> 00:48:54,430 Vilket är varför pset7 vi ger du denna sökfunktion. 947 00:48:54,430 --> 00:48:59,510 Men inte under uppskatta exakt vad den gör för dig. 948 00:48:59,510 --> 00:49:01,800 >> Så med det sagt, tycker om att använda banan denna vecka. 949 00:49:01,800 --> 00:49:04,660 Och vi kommer att se dig på måndag. 950 00:49:04,660 --> 00:49:06,180 >> Vid nästa CD50. 951 00:49:06,180 --> 00:49:18,614 >> [MUSIK]