David J. MALAN: Ito ang CS50, at ito ang simula ng linggo 10. Maaari mong isipin na ang ipinapakita namin sa screen ng 3D printer, na ay device na ito na tumatagal spools ng plastic at pagkatapos ay extrudes ito sa pamamagitan ng heating ito up at natutunaw ito upang pagkatapos ay maaari naming bumuo ng hukbo ng Chang ni elepante, halimbawa. Kaya sa Leverett House, bagaman, kamakailan lamang, ako ay nakikipag-chat gamit ang isa sa iyong mga kaklase at kaibigan ng Chang ni nagngangalang Michelle, na aktwal na interned sa ang iba pang mga kumpanyang ito nakaraang taon na May iba't ibang mga diskarte para sa aktwal paglikha ng three-dimensional na mga bagay, ganito ang maliit na maliit na elephant dito. Sa partikular, ang paraan na ito gumagana ay ito ay isang halimbawa ng isang bagay tinatawag na stereolithography, kung saan mayroong ito basin ng dagta o likido, at pagkatapos ng laser naaabot na likido, at dahan-dahan, ang aparato lift at lift at lift ang bagay na naka pag-print, tulad ng isang elepante, bilang na likido naging matatag. At ang mga resulta, talagang, ay isang bagay na mas matatag kaysa sa ilang ng ang plastic pamudmod ilan sa inyo Maaaring nagkaroon. At kung ano Chang Pinapayuhan ginawa para sa amin dito ay May ginawang isang oras-pagdaan ng panahon gamit ang mga litrato sa loob ng isang oras o higit pa, Marahil, upang makabuo ng ito tao dito. Gagawin ang isang tao kung sino ang hindi makabuo ng bago i ay pindutin ang Start sa video na ito? Hayaan akong pumunta sa, kung paano tungkol doon. Halika sa up. Lahat ng karapatan. At ikaw? Lucas: Lucas Aking pangalan ni [hindi marinig]. David J. MALAN: Hi, Luke. Masaya akong makilala kayo. Lucas: Masaya akong makilala kayo. Madla: Siya'y tumatakbo para sa UC. David J. MALAN: Alam ko, naming sinusubukang hindi upang i-promote. Ang lahat ng mga karapatan, kaya Lucas, ang lahat ng kailangan mo lang gawin dito sa CS50 ay pindutin ang space bar upang i-print ang elephant. [VIDEO pag-playback] - [Machine WHIRRING] - [Pag-crash] - [Boom] - [Pag-crash] [END VIDEO pag-playback] David J. MALAN: Kaya na ay eksaktong kung ano ito ay tulad ng sa 3D-print. At narito ang iyong elephant. Salamat sa volunteering. Lahat ng karapatan. Kaya muli, alinsunod sa mga pagtutukoy para sa ang pangwakas na proyekto, ang hardware na magagamit mo guys ay, para sa ilang mga dahilan, iyong proyekto ay may ilang mga panulukan ng software at hardware, Napag-alaman na ang mga ito ay mga mapagkukunan ngayon. Nais kong gumawa ng isang sandali upang pindutin ang sa isang artikulo ng Crimson na dumating out late huling gabi, na kung saan ay sa ipahayag na ito kapwa dito, si David Johnson, na naging mga senior preceptor para sa EC 10 para sa pa ng ilang oras, ay umaalis sa Harvard sa katapusan ng akademikong taon. At ako Nais ka lamang sa maglaan ng ilang sandali, totoo lang, pasalamatan si David sa harap ng CS50. Siya ay naging isang tagapagturo ng uri sa amin sa paglipas ng mga taon. At sa tingin ko tulad namin, CS50, mayroon sa halip na lumaki hanggang sa EC 10 in dito, dahil ang mga ito bago mismo sa amin. At siya at ang buong koponan sa EC 10 ay naging kamangha-mangha mapagbigay-loob, tapat, bilang pagkaladkad namin sa lahat ng aming kagamitan bawat linggo, at taon na ang nakakaraan, na ibinigay ng isang mahusay na deal ng abugado bilang namin hindi karaniwan bilang sa kung paano sila magpatakbo EC 10. Kaya aming mga salamat at paghanga sa David Johnson. [Palakpakan] Ngayon, unrelatedly, kaya sa dulo nga malapit. Kami dito sa linggo 10. At mayroon na lamang namin lamang ilang pormal na linggo dito sa klase pakaliwa, na sinusundan sa pamamagitan ng isang pares ng mga kaganapan. Kaya upang mabigyan ka ng ideya ng kung ano ang sa abot-tanaw, narito ang aming ngayon. Ito Miyerkules, pagpapabalik, kami ay may isang bisita panayam sa pamamagitan ng none maliban sa Microsoft sariling Steve Ballmer. Kung hindi mo pa nawala sa cs50.harvard.edu/register, gawin ito, dahil ang espasyo ay limitado. At ang mga ito ay pagsuri ID sa pintuan araw na ito. Kung kayo ay hindi dito noong nakaraang linggo, naisip ko na gusto ko mang-ulol sa iyo ng isang iba't ibang mga hitsura sa Steve at ang kaguluhan na Naghihintay kami sa Miyerkules. [VIDEO pag-playback] -Passion. -We're Magiging hardcore-- hardcore. -Innovator. Sinabi -Bill, hindi mo na makakuha dito. Kami ay pagpunta sa ilagay ang isang computer sa bawat desk at sa bawat tahanan, na naging ang motto para sa kumpanya. Sumusumpa ako, imbento ito Bill gabing iyon sa talagang ninyo ako ang ilan sa mga pananaw ng kung bakit ang dapat kong sabihin ninyo ang oo. Hindi ko tumingin pabalik, talaga ito, pagkatapos na iyon. -Fresh Out sa kolehiyo, siya Sumali sa isang taong walang karanasan sa pag-startup at nakatulong ito lumago sa isa sa America pinakamatagumpay na mga negosyo kailanman. Ang buhay ng negosyo at aralin natutunan sa kahabaan ng paraan hayaan siyang bumalik sa kanyang pagkabata simbuyo ng damdamin at pag-ibig. At ang mga karanasan na inihanda siya para sa kanyang susunod na hamon sa buhay. -Nothing Ay nakakakuha sa aming way-- boom! Panatilihin darating na hardcore! Pumunta Clippers! -This Ay Steve Ballmer, "Sa Aking Sariling Words." [END VIDEO pag-playback] David J. MALAN: --this Miyerkules sa CS50. Magtungo muli sa URL na ito dito. Tulad ng para sa kung ano ang iba ay sa abot-tanaw, susunod na linggo, hindi magbigay ng panayam sa Lunes. Ngunit ay sumusunod namin na sa pamamagitan ng pagsusulit ng isa sa Miyerkules. Pumunta sa homepage ng CS50 para sa mga detalye sa mga tao, lugar, at oras para sa lahat ng mga iba't-ibang proctoring logistik at mga katulad nito, pati na rin ang tungkol sa pagsusuri session na nalalapit. At pagkatapos ay, sa wakas, sa Lunes, ang araw bago ang linggo ng Thanksgiving pahinga, Napagtanto ito ay ang aming huling panayam. Kami ay maghatid ng cake at isang mahusay na deal ng kaguluhan, inaasahan namin. Ngayon, isang pares ng mga iba pang mga update. Tandaan na ang katayuan ulat, na kung saan ay talagang lamang nilalayong maging isang kaswal na pakikipag-ugnayan sa iyong tf sa buong kapurihan sabihin lamang gaano kalayo kasama ang iyong huling proyekto ay sa iyo, o hindi bababa sa bilang isang katinuan suriin na dapat mong ay papalapit na ituro agad pagkatapos. Pagkatapos ay sumusunod sa Hackathon na iyon. Napagtanto ang Hackathon ay hindi isang pagkakataon upang simulan ang iyong huling proyekto, ngunit nilalayong maging isang pagkakataon upang maging sa gitna ng o patungo sa sa dulo ng iyong huling proyekto, sa pagpapatupad dahil ang ilang mga araw, na sinusundan ng CS50 patas. Ngayon, produksyon CS50 ni koponan, ilang taon na ang nakakaraan, magkasama ng isang teaser para sa CS50 patas na namin naisip naming ipakita sa iyo ngayon, dahil sila ay mahirap pa sa trabaho sa isang prequel para iyon, isang bagong video na aming pagtibayin ngayon sa. Ngunit narito kung ano ang naghihintay sa iyo para sa CS50 patas sa taong ito. [VIDEO pag-playback] - [Cell phone ring] [Musika "TEMA MULA Mission: imposible"] [END VIDEO pag-playback] David J. MALAN: Kaya na ay eksaktong kung paano isara namin ang panghuling mga pagsusumite ng proyekto. Ang ilang mga ngayon teasers-- kung gusto mo bang sumali sa Nick dito para sa tanghalian, gaya ng dati, ito Biyernes, magtungo sa URL na ito dito. Dagdag pa rito, kung gusto mong sumali Nick o ito Nick o ito Allison o anumang mga miyembro ng koponan CS50 ni, Napag-alaman ko na, sa ilang sandali pagkatapos ng pagtatapos ng termino, CS50 ay naka-recruiting para sa koponan ng susunod na taon, para sa Cas, TFs, designer, producer, mananaliksik, at iba pang mga posisyon na dito nagpapatakbo CS50 pareho sa harap ng at sa likod ng mga eksena. Kaya kung ito ay maaaring maging ng interes sa iyo, magtungo sa URL na ito dito. At mga mag-aaral mas kumportable, mas kumportable, at sa isang lugar sa sa pagitan ng mga magkahawig ang lahat maligayang pagdating at hinihikayat na mag-aplay. Kaya ito ay perpekto tiyempo na, walang biro, ito umaga, kapag ako woke up, Mayroon akong ito dito spam sa aking inbox. Ito talaga slipped sa pamamagitan ng filter ng spam ng Gmail kahit papaano at napunta sa aking aktwal na mga inbox. At sinasabi nito, "Mahal na mailbox gumagamit, ikaw ay kasalukuyang -upgrade sa 4 gigabytes ng espasyo. Mangyaring mag-log in sa iyong account upang patunayan ang E-espasyo. " At pagkatapos ay may ito maganda asul nakakaakit link doon upang mag-click sa para sa mga guro at kawani, na pagkatapos ay humantong sa akin sa isang kamangha-mangha lehitimong page, na tinanong sa akin upang mabigyan sila ng aking pangalan at email address at, siyempre, password upang patunayan sino ako at iba pa. Ngunit siyempre, bilang ay palaging ang kaso, dumating ka sa landing page na ito, at siyempre, mayroong hindi bababa sa isang typo, na tila na maging ang kuko sa ang kabaong ng anuman sa mga scam. At makikita naming i-post, marahil, ang ilang mga iba pang mga link sa mga ganitong uri ng mga screen shot sa hinaharap. Ngunit sana, karamihan ng mga tao sa ang kuwartong ito ay hindi clicked-- o kahit na na-click mo tulad ng mga link bilang na ito, Hindi mo na nawala na sa ngayon bilang sa punan ang mga form at iba pa. Sa katunayan, ito ay OK kung mayroon ka. Susubukan naming ayusin na ngayon, dahil, sa katunayan, ang pag-uusap ngayon ay tungkol sa seguridad. At sa katunayan, ang isa sa mga mga layunin ng CS50 ay hindi kaya magkano ang magturo sa iyo CE o PHP o JavaScript o SQL o alinman sa mga nakatagong Mga detalye ng pagpapatupad. Ngunit ito ay upang magbigay ng kapangyarihan sa iyo bilang tao upang gumawa lamang ng mas matalinong mga pagpapasya tulad ng may kaugnayan sa teknolohiya pababa sa daan upang ang, kung ikaw ay ng inhinyero o humanist o scientist o anumang iba pang mga tungkulin, ikaw ay paggawa ng matalinong mga pagpapasya tungkol sa iyong sarili sa paggamit ng computing, o kung ikaw ay nasa isang paggawa ng desisyon na posisyon, sa pulitika, sa partikular, nagsasagawa ka ng mas, magkano ang mas mahusay na pagpapasya sa isang maraming tao ngayon naging. At gagawin namin ito sa pamamagitan ng paraan ng ilang halimbawa. Una, ako ay sa halip magulat kamakailan-lamang na tumuklas ng mga sumusunod. Kaya password, siyempre, ay kung ano ang karamihan sa amin gamitin upang protektahan ang aming mga data-- email, chat, at lahat ng uri ng mga mapagkukunan tulad na. At sa pamamagitan lamang ng isang awkward-- hindi magpakita ng kamay, ngunit napahiya hitsura ng kahihiyan, kung gaano karaming ng mong gamitin ang parehong password ng maraming iba't ibang mga website? Oh, OK, kaya namin gawin ang mga kamay. OK, kaya ng maraming mong gawin. Sinuman na gumagana ito, lamang kung bakit? At ano? Oo? Madla: Ito ay madali matandaan, dahil hindi mo kailangang tandaan [hindi marinig]. David J. MALAN: Oo, madaling tandaan. Ito ay isang perpektong makatwirang, nakapangangatwiran pag-uugali, kahit na sa panganib naglalagay ka ng sarili sa sa mga kasong ito lamang isa o higit pa sa mga website na iyon ay mahina sa pag-hack o sa hindi secure o ang iyong password lamang kaya nagsulsi guessable, kahit sino ay maaaring malaman ito. Hindi lamang ay isang account nakompromiso, ngunit sa teorya, ang anumang mga account na mayroon ka sa internet. Kaya alam ko maaaring sabihin ako ngayon, hindi gamitin ang parehong password sa lahat ng lugar, ngunit iyon ay isang mas madaling sinabi kaysa sa tapos na. Ngunit may mga pamamaraan para nagpapagaan na partikular na alalahanin. Ngayon, ako itong mangyari, halimbawa, upang gumamit ng isang program na tinatawag na 1Password. Ang isa pang popular na isa ay tinatawag na LastPass. At isang bungkos ng paggamit kawani CS50 isa o higit pa sa mga uri ng mga tool. At mahaba kuwento maikli, isa takeaway para sa araw ay dapat, oo, maaaring mayroon ka ang parehong password sa lahat ng lugar, ngunit ito ay mas madali upang hindi na gawin iyon. Halimbawa, mga araw na ito, alam ko siguro isa sa aking mga dose-dosenang o daan-daan ng mga password. Lahat ng aking iba pang mga password ay palsipikado-random na binuo ng isa sa mga programang ito dito. At sa maikling sabi, at maging bagaman ang karamihan sa mga programang ito malamang na may bit ng isang halaga, Gusto mong i-install ng isang program na tulad nito, Gusto mo pagkatapos ay i-iimbak ang lahat ng iyong mga username at mga password sa loob ng programang ito sa ang iyong sariling Mac o PC o watnat, at pagkatapos ay magiging naka-encrypt sa iyong computer kung ano ang sana ay isang lalo na ang haba ng password. Kaya ba akong magkaroon ng isang buong bungkos ng mga password para sa mga indibidwal na website, at pagkatapos ay mayroon akong isang tunay na ang haba ng password na ako gamitin upang i-unlock ang lahat ng mga iba pang mga password. At kung ano ang magaling tungkol sa software na tulad nito ay na, kapag bumisita ka sa isang website na na nagtatanong para sa iyong username at password, mga araw na ito, hindi ko type sa ang aking username at password, dahil, muli, hindi ko alam kung ano ang karamihan sa aking mga password. Sa halip ko pindutin ng keyboard shortcut, ang resulta ng kung saan ay upang ma-trigger ang software na ito sa -prompt sa akin para sa aking master password. Pagkatapos i-type ko na isang malaking password sa, at pagkatapos ay ang browser awtomatikong punan sa kung ano ang aking password. Kaya tunay, kung magdadala sa iyo walang iba layo mula ngayon sa mga tuntunin ng mga password, ang mga ito ay software na nagkakahalaga ng -download o pamumuhunan sa gayon na maaari mong hindi bababa sa bakasyon na partikular na ugali. At kung ikaw ay ang uri na gamit ang Post-Ito mga tala o ang like-- at logro ay hindi bababa sa isa sa iyo is-- na ugali, masyadong, magkasiya ito upang sabihin, ay dapat na nasira. Ngayon, nangyari ko upang matuklasan, bilang isang resulta ng paggamit ng software, ang mga sumusunod. Ako ay pag-order ng isang nakakain pakikipag-ayos, ang basket ng prutas, kamakailan. At pindutin ang aking mga espesyal na keyboard shortcut upang mag-log in sa website. At nag-trigger ng software ng pop-up na sinabi, sigurado ka ba Gusto mo sa akin upang awtomatikong isumite ang username at password? Dahil ang koneksyon ay hindi secure. Ang koneksyon ay hindi gamit ang HTTPS, para sa mga secure, gamit na protocol na kilala bilang SSL, Secure Sockets Layer. At sa katunayan, kung tiningnan mo ang kaliwang itaas ng website na ito, ito lamang ay www.ediblearrangements.com, walang HTTPS, na kung saan ay hindi kaya magandang. Ngayon, ako ay curious-- siguro ito ay isang bug lamang sa ang software. Tiyak, ang ilang mga website tulad ng ito na ng maraming amin ng ay hindi bababa sa paggamit ng pag-encrypt o HTTPS na URL upang mag-log ka sa. Kaya Nakatanggap ako ng maliit na kataka-taka na ito umaga. At Nakatanggap ako ang aking mga kasanayan sa CS50, Ako ay nagbukas ng Chrome Inspektor. Hindi ito kahit magkano ng husay. Ay pindutin ito lamang ang karapatan na keyboard shortcut upang buksan ito up. At narito ang isang malaking window ng Inspektor ng Chrome. Ngunit kung ano ang talagang isang maliit na trahedya at katawa-tawa ay ang dalawang mga linya dito. Hanggang sa itaas, mapapansin ang URL sa kung saan ang aking username at password ay naisumite na. Hayaan akong mag-zoom in. Ito ay ito dito. At lahat ng iyon ay uri ng kawili-wili, maliban sa mga bagay sa lahat ng mga paraan sa sa kaliwa, na nagsisimula sa http: //. At kaya pagkatapos, OK, siguro lang nila ng pagpapadala aking username, na Hindi tulad ng isang malaking deal. Siguro ang aking password ay makakakuha na ipinadala sa ibang pagkakataon. Iyon ay magiging uri ng isang kagiliw-giliw na desisyon disenyo. Ngunit nope. Kung pagkatapos ay tingnan ang kahilingan kargamento, ang username at password Sent-- ko at ako mocked mga up para sa slide-- ay aktwal na ipinadala sa malinaw. Kaya kang pumunta sa partikular na website at -order ng isang nakakain-aayos na tulad nito, at sa katunayan, tila, para sa lahat ng ito oras ko ang pag-order mula sa kanila, ang iyong username at password Pupunta sa kabuuan sa malinaw. Kaya totoo lang, ito ay ganap na hindi katanggap-tanggap. At ito ay kaya walang halaga upang maiwasan ang mga bagay tulad nito bilang designer ng isang website at bilang programmer ng isang website. Ngunit ang takeaway dito para sa sa amin bilang mga user ng mga website ay upang Pinahahalagahan lamang na ang lahat itong tumatagal ay para sa isang torpe disenyo desisyon, walang patawad desisyon disenyo, nang sa gayon ngayon, kung alam mo ang aking password ay "Pulang-pula" sa na ito website, ikaw ay malamang na Nalaman lamang sa isang buong bungkos ng iba pang mga website na mayroon akong ngayon. At mayroong hindi magkano ng isang depensa laban na maliban sa kung ano ang ginawa Chang na ito umaga. Pumunta siya sa nakakain arrangement, na Matatagpuan sa kalye sa Cambridge, at pisikal na binili ito para sa amin. Iyon ay mas ligtas kaysa sa gamit ang website sa kasong ito. Ngunit ang detalye upang abangan ang para sa ay talagang kung ano ang sa browser up tuktok doon. Ngunit kahit na maaaring maging isang maliit na mapanlinlang. Kaya isa pang kawili-wiling Halimbawa at paraan ng pagtatanggol laban sa this-- at aktwal na, sabihin na first-- ang paraan ng pagtatanggol laban ito ay isang diskarteng na seguridad tao gagawin tumawag sa dalawang-factor na pagpapatotoo. May nakakaalam ba kung ano ang solusyon sa mga problema tulad ng ibig sabihin nito? Ano ang dalawang-factor na pagpapatotoo? O maglagay ng isa pang paraan, sa kung paano marami sa inyo ang gumagamit nito? OK, kaya ang ilang mga mahiya tao. Ngunit oo. Nakita ko ang iyong kamay pumunta up. Ano ang dalawang-factor na pagpapatotoo? Madla: talaga, bukod pa sa pag-type sa iyong password, mayroon ka ring pangalawang [hindi marinig] ipinadala sa pamamagitan ng text message sa iyong telepono sa [hindi marinig]. David J. MALAN: Eksaktong. Bilang karagdagan sa ilang mga pangunahing paraan ng pagpapatunay, tulad ng isang password, hihilingin sa iyo para sa isang pangalawang kadahilanan, na karaniwang isang bagay na mayroon ka pisikal na sa iyo, kahit na ito Maaaring maging ibang bagay nang sama-sama. At bagay na karaniwan sa isang cellphone mga araw na ito na kung saan makakakuha Nagpadala ng isang pansamantalang text message na nagsasabing "Iyong pansamantalang pass code ay 12345." Kaya bukod sa aking password "pulang-pula," ko rin may mag-type sa kahit anong ang website ay texted sa akin. O kaya kung mayroon kang na ito na may isang investment account sa bangko o, minsan mayroon kang mga maliit na dongles na aktwal na magkaroon ng isang palsipikado-random numero ng generator built in sa kanila, ngunit pareho ang aparato at ang bangko malaman kung ano ang iyong paunang mga pinag-apuhan ay kaya na alam nila, kahit na ang maliit na code sa iyong maliit na key tanggalin marches maaga bawat minuto o dalawang, pagbabago ng halaga, kaya ginagawa na pagbabago halaga sa server ng bangko gayon ay maaari silang katulad patotohanan ka, hindi lang sa iyong password, ngunit may na pansamantalang code. Ngayon, maaari mo talagang gawin ito sa Google. At lantaran, ito ay isang magandang ugali upang makakuha ng sa, lalo na kung gumagamit ka ng Gmail sa lahat ng oras sa isang browser. Kung pumunta ka sa URL na ito dito, na sa ang mga slide na online para sa araw, at pagkatapos ay mag-click sa 2-Step na Pag-verify, parehong aktwal na bagay doon. Ipo-prompt ka upang magbigay ng ito ang numero ng iyong cell phone. At pagkatapos, anumang oras na mag-log in Gmail, makikita mo na hindi lamang tinanong para sa iyong password, ngunit din para sa isang maliit na code na maipo ipinadala sa iyong telepono Pansamantalang. At kaya hangga't pinagana mo ang mga cookies, at hangga't hindi mo tahasang mag-log out, makakakita ka lamang magkaroon ng upang gawin iyon nang isang beses sa sandali, tulad ng kapag umupo ka pababa sa isang bagong computer. At ng bentahe, dito, ay, kung umupo sa ilang mga internet cafe estilo computer o lamang ng isang computer na kaibigan, kahit na kung kaibigan na maliciously o hindi ay may ilang mga keyboard magtotroso -install sa kanyang computer, tulad na ang lahat ng bagay sa iyo uri ay naka-log, hindi bababa sa na pangalawang salik, na pansamantalang code, ay ephemeral. Kaya siya o kung sinuman ang nakompromiso ang computer Hindi maaaring mag-log in ka sa dakong huli, kahit na lahat ng iba pa ay mahina o kahit na unencrypted nang sama-sama. May ito sa Facebook, masyadong, sa URL na iyon dito, kung saan maaari kang mag-click sa pag-login-apruba. Kaya, dito, kung hindi mo gusto gusto ng mga kaibigan upang sundutin ang mga tao, hindi mo nais na ma-poking sa Facebook o pag-post ng mga update ng katayuan para sa iyo, dalawang-factor na pagpapatotoo dito ay malamang na isang magandang bagay. At pagkatapos ay may ito iba pang mga diskarte nang sama-sama, pag-audit lamang, na kahit na isang mabuting bagay para sa amin mga tao, kung ang dalawang-factor na nagpapatunay nakakainis, na kung saan, tinatanggap na, maaari ito, o ito ay hindi lamang Available sa ilang mga website, Nagnais pagsubaybay sa kung at kapag naka-log in sa site, kung ang mga ito -daan sa iyo, ay isang mahusay na diskarte, masyadong. Kaya Binibigyan ka rin ng Facebook na ito Nagtatampok ang mga notification sa pag-login, kung saan anumang oras Facebook napagtanto, Hm, si David ay -log in mula sa ilang mga computer o telepono na hindi namin nakita bago mula sa isang IP address na mukhang pamilyar, ang mga ito ay hindi bababa sa iyo ng e-mail sa anumang e-mail address mayroon ka sa file, na sinasabi, ay ang hitsura ng mga kahina-hinalang? Kung gayon, baguhin ang iyong password agad-agad. At kaya, masyadong, pag-uugali lamang sa pag-audit kahit na matapos na iyong napuntahan nakompromiso, maaari nang hindi bababa sa paliitin ang window sa panahon ng kung saan ikaw ay mahina. Ang lahat ng mga karapatan, anumang mga katanungan sa mga bagay na kaya ngayon? Ngayon ay araw upang makakuha ng lahat ng nakumpirma o tanggihan ang iyong paranoya. Na karamihan ay nakumpirma, nakalulungkot. Oo? Madla: [hindi marinig] telepono, ano kung ang iyong mga break sa telepono, at pagkatapos ito ay palaging mahirap na verify-- David J. MALAN: Tama. Madla: O kung ikaw ay nasa ibang bansa, at sila ay hindi ipaalam sa iyo -log in dahil [hindi marinig]. David J. MALAN: Oo naman. At kaya ito ay ang mga karagdagang mga gastos na kang makaipon ng. Mayroong palaging ang temang ito ng isang kalakalan-off, pagkatapos ang lahat. At pagkatapos ay, kung mawala mo ang iyong telepono, kung ito Pinaghihiwa, kung ikaw ay nasa ibang bansa, o mo lamang ay walang signal, tulad ng isang 3G o signal LTE, Hindi ka maaari talagang magagawang patotohanan. Kaya muli, ang dalawang mga kalakalan-off. At kung minsan, maaari itong lumikha ng isang maraming trabaho para sa iyo bilang isang resulta. Ngunit ito ay talagang dumedepende, pagkatapos, sa kung ano ang inaasahan presyo sa iyo ay isang bagay ng pagkatao nakompromiso nang sama-sama. Kaya ang SSL, pagkatapos, ay sa diskarteng ito na Sa pangkalahatan ay namin ang lahat ng mang-ahas o ipinapalagay ay doon, kahit na na iyon malinaw na hindi ito ang kaso. At maaari mo pa ring iligaw mga tao, kahit na, kahit na ito. Kaya narito ang isang halimbawa ng isang bangko. Ito ay Bank of America. Mayroong isang buong bungkos ng mga sa Harvard Square at higit pa. At mapansin na, sa pinakatuktok ng screen, mayroong isang, sa katunayan, ang HTTPS. At kahit na berde at naka-highlight para sa amin upang isaad na ito ay talagang isang lehitimong secure na website, o kaya na namin na sinanay upang maniwala. Ngayon, bukod sa na, bagaman, mapansin na, kung ang mag-zoom in kami, mayroong bagay na ito dito, kung saan sinenyasan kang mag-log in. Ano ang ibig sabihin ng karapatang ito padlock doon, sa tabi ng aking username prompt? Ito ay medyo pangkaraniwan sa mga website, masyadong. Ano ang ibig sabihin nito na padlock? Mukhang ka tulad ng alam mo. Madla: Hindi ito ang ibig sabihin ng kahit ano. David J. MALAN: Ito ay hindi nangangahulugan na kahit ano. Nangangahulugan ito na Bank of America ay alam kung paano magsulat ng HTML gamit ang mga tag ng larawan, i-right? Ito ay tunay na walang ibig sabihin, dahil kahit na namin, gamit ang unang araw ng aming hitsura sa HTML, maaari Code up ng isang pahina na may isang pulang background at isang imahe, tulad ng isang GIF o watnat, na ang mangyayari sa hitsura ng isang padlock. At pa, ito ay sobrang karaniwan sa mga website, dahil kami ay sinanay upang ipalagay iyon, oh, kandado ay nangangahulugang secure, kapag lang ito talaga ang ibig sabihin alam mo na HTML. Halimbawa, pabalik sa araw, maaari ko na ilagay lang ito sa aking website, nagke-claim ito ay ligtas, at hinihingi, epektibo, para sa mga username at password ng mga tao. Kaya naghahanap sa URL ay hindi bababa sa isang mas mahusay na bakas, dahil na-built in sa Chrome o kahit anong browser na iyong ginagamit. Ngunit kahit na pagkatapos, paminsan-minsan mga bagay na maaari magkamali. At sa katunayan, hindi mo maaari laging tingnan ang HTTPS, pabayaan mag-isa sa berde. Magkaroon ng anuman na ba Nakita ng isang screen na tulad nito? Maaaring mayroon kang, talaga, mas maaga sa Oktubre, kapag nakalimutan ko bang magbayad para sa aming mga SSL certificate, pati na ang tawag dito, at humahanap kami tulad ng na ito para sa isang oras o dalawang. Kaya malamang na nakita mo ang mga bagay tulad nito, na may isang strike-through, tulad ng isang pulang linya, sa pamamagitan ng ang protocol sa URL o ilang mga uri ng screen na hindi bababa sa admonishing mo para sa pagsubok upang higit pang magpatuloy. At dito ng Google ay nag-iimbita sa iyo upang bumalik sa kaligtasan. Ngayon, sa kasong ito, ito lamang nilalayong na ang SSL certificate na ginagamit namin, ang malaki, mathematically kapaki-pakinabang na mga numero na nauugnay sa server CS50 ni, ay hindi na wasto. At sa katunayan, maaari naming gayahin ito, bilang maaari mo sa iyong laptop. Kung pumunta ako sa Chrome dito, at sabihin pumunta sa facebook.com, at mukhang ito ay ligtas. Ngunit ipaalam sa akin sige at ngayon mag-click sa padlock dito. At hayaan mo akong pumunta sa ang koneksyon, Impormasyon sa Certificate. At sa katunayan, kung ano ikaw makikita dito ay isang bungkos ng mga detalye ng mas mababang antas ng tungkol sa na facebook.com ay tunay na. Mukhang na nagbayad sila ng pera dito isang kumpanya na tinatawag na siguro DigiCert Mataas Assurance na ipinangako upang sabihin sa nalalabing bahagi ng mundo na, kung sakaling nakita ng isang browser isang certificate-- maaari mong isipin ng literal na ito bilang isang sertipiko na kamukha na ng keso bagay sa itaas left-- pagkatapos ay facebook.com na sinasabi nila ang mga ito, dahil ang lahat oras na ito, kapag bumisita ka sa isang website, tulad ng cs50.harvard.edu o facebook.com o gmail.com na gamitin ang HTTPS Mga URL, sa likod ng mga eksena, mayroong ganitong uri ng transaksyon Awtomatikong nangyayari para sa iyo, kung saan facebook.com, sa kasong ito, Ipinapadala sa iyong browser nito tinatawag na SSL certificate, o sa halip, mga pampublikong key, at pagkatapos ay sa iyong browser ay gumagamit na pampublikong key sa kasunod na magpadala ng mga naka-encrypt na ng trapiko sa at mula dito. Ngunit mayroong ito buong hierarchy sa mundo ng mga kumpanya na nagbabayad ka ng pera sa kung sino ang habilin pagkatapos ay tumestigo, sa isang digital na kahulugan, na ikaw talaga facebook.com o ang iyong server ay sa katunayan cs50.harvard.edu. At built in browser, tulad ng Chrome at IE at Firefox, ay isang listahan ng lahat ng mga tinatawag na mga awtoridad ng certificate na awtorisado ng Microsoft at Google at Mozilla upang kumpirmahin o tanggihan na facebook.com ay na sinasabi nito ito ay. Ngunit ang catch ay na -e-expire ang mga bagay ko. Sa katunayan, mukhang Facebook ni tulad ng ito mag-expire ang susunod na Oktubre, sa 2015. Kaya maaari talaga namin gayahin ito kung ako pumunta sa aking Mac sa aking Kagustuhan ng System, at pumunta ako sa Petsa at Oras, at Pumunta ako sa Petsa at Oras dito, at i-unlock ko ito here-- Sa kabutihang palad, hindi namin ibinubunyag ang isang password na ito time-- at ngayon ko pumunta pababa upang i-uncheck na ito. At ni actually-- ipaalam oops, na Hindi tulad ng kawili-wiling bilang paggawa nito. Kami ay literal sa hinaharap ngayon, na nangangahulugan na ito ay kung ano ang 2020 ay tulad ng. Kung ngayon i-reload ko ang page-- gawin natin ito sa Ingognito ipaalam mode-- kung i-reload ko ang mga pahina, doon pumunta namin. Kaya ngayon, Iniisip ng aking computer ito ay 2020, ngunit ang aking browser alam na ang certificate na ito mula sa Facebook-e-expire, siyempre, sa 2015. Kaya ito ay nagbibigay sa akin ang pulang mensahe. Ngayon, kabutihang palad, mga browser tulad ng Chrome mayroon talagang ginawa ito medyo mahirap magpatuloy gayunman. Sila nga ako gusto upang bumalik sa kaligtasan. Kung nag-click ako dito sa Advance ito, pagpunta sa sabihin sa akin ang ilang higit pang mga detalye. At kung talagang nais ko magpatuloy, makikita nila hayaan sa akin pumunta sa facebook.com, na, muli, hindi ligtas, kung saang punto Kukunin ko makita ang homepage ng Facebook, tulad nito. Ngunit pagkatapos ay iba pang mga bagay mukhang pagsira. Ano ang malamang breaking sa puntong ito? Madla: JavaScript. David J. MALAN: Tulad ng JavaScripts at / o CSS mga file ay katulad Nakakaranas ng mga error na iyon. Kaya ito ay lamang ng isang masamang sitwasyon sa pangkalahatan. Ngunit ang punto dito ay ang hindi bababa sa Facebook ay talagang paganahin ang SSL para sa kanilang mga server, tulad ng maraming mga website, gawin, ngunit hindi kinakailangan ang lahat. Ngunit iyon ay hindi nag-iisa ang takeaway dito. Ino-out na kahit na SSL Na-nagpakita upang maging hindi secure na sa ilang mga paraan. Kaya ako uri ng hinting na ang SSL, mabuti. Hanapin ang mga URL ng HTTPS, at buhay ay mabuti, dahil ang lahat ng iyong HTTP na trapiko at ang mga header at nilalaman ay naka-encrypt. Walang sinuman ang maaaring harangin ito sa gitna, maliban para sa isang tinatawag na tao sa gitna. Ito ay isang pangkalahatang diskarte sa mundo ng seguridad kilala bilang isang tao-in-the-middle-atake. Ipagpalagay na ikaw ay maliit na ito laptop sa paglipas dito sa kaliwa, at ipagpalagay na sinusubukan mong bisitahin ang isang server doon sa kanan, tulad ng facebook.com. Ngunit ipagpalagay na, sa sa pagitan mo at ng Facebook, ay isang buong bungkos ng iba pang mga server at kagamitan, tulad ng switch at router, DNS server, DHCP server, wala sa kung saan namin makokontrol. Maaaring ma-kinokontrol ng Starbucks o Harvard o Comcast o mga katulad. Well, ipagpalagay na ang isang tao maliciously, sa iyong network, sa pagitan mo at ng Facebook, ay magagawang sabihin sa iyo na iyon, alam mo kung ano, ang IP address ng Facebook ay hindi kung ano ang sa tingin mo ito ay. Ito ay IP na ito sa halip. At sa gayon ang iyong browser ay tricked sa paghiling ng trapiko mula sa isa pang computer na sama-sama. Well, ipagpalagay na computer na iyon lamang ay tumitingin sa lahat ng trapiko humihiling ka mula sa Facebook at ang lahat ng mga pahina ng web na humihiling ka mula sa Facebook. At anumang oras nakikita ito sa iyong trapiko isang URL na nagsisimula sa HTTPS, ito dynamic na, sa lumipad, muli nito ng HTTP. At anumang oras nakikita ito ng isang lokasyon header, tutuldok lokasyon, tulad ng ginagamit namin upang i-redirect user, mga, masyadong, maaaring mapalitan sa pamamagitan ng tao na ito sa sa gitna mula sa HTTPS upang HTTP. Kaya kahit na maaari ang iyong sarili Tingin mo sa tunay na Facebook, ito ay hindi na mahirap para sa isang kalaban sa pisikal na pag-access sa iyong network upang lamang bumalik pahina sa iyo na hitsura ng Gmail, na hitsura ng Facebook, at sa katunayan ang URL magkapareho, dahil sila nagpapanggap na magkaroon ng parehong pangalan ng host dahil sa ilang mga pagsasamantala ng DNS o ilang iba pang mga sistema tulad na. At ang mga resulta, pagkatapos, ay na namin ang mga tao maaari lamang Napag-alaman na, OK, ito ay mukhang Gmail o hindi bababa sa mas lumang bersyon, bilang ay slide na ito mula sa isang mas lumang presentasyon. Ngunit mukhang this-- http://www.google.com. Kaya, dito, sa katotohanan ay ang kung paano marami sa inyo, kapag pumunta ka sa Facebook o Gmail o anumang website at alam mo na ang isang maliit na bagay tungkol sa SSL, kung paano marami sa inyo ang pisikal na -type ang https: // at pagkatapos ay ang website pangalanan, ang Enter. Karamihan sa atin i-type lang, tulad ng, CS50, pindutin ang Enter, o F-A para sa Facebook at pindutin ang Enter, at hayaang ito ang auto-complete. Ngunit sa likod ng mga eksena, kung pinapanood mo ang iyong HTTP na trapiko, doon ay marahil ang maramihang ng mga header ng lokasyon na pagpapadala sa iyo mula sa Facebook sa www.facebook.com sa https://www.facebook.com. Kaya na ang isa o higit pang mga transaksyon HTTP kung saan ang iyong impormasyon ay lubos na ipinadala sa malinaw, walang pag-encrypt kung ano pa man. Ngayon, na hindi maaaring maging tulad ng isang malaking harapin kung ang lahat na sinusubukan mong gawin ay ma-access ang homepage, hindi ka pagpapadala ng iyong mga username at password. Ngunit ano ito sa ilalim ng hood, lalo na para sa PHP-based na mga website na rin ibinabalik-balik kapag bisitahin mo ang ilang mga webpage kung na ginagamit ng iyong website, sabihin nating, PHP at ipinapatupad ng pag-andar tulad ng pset7? Ano ay ibinabalik-balik sa iyong mga header ng HTTP na ibinigay sa iyo access sa kaakit-akit kapaki-pakinabang na sobrang global sa PHP? Madla: Cookies. David J. MALAN: Cookies, partikular ang PHP sess ID ng cookie. Kaya isipin, kung tayo pupunta, sabihin nating, cs50.harvard.edu muli, ni buksan up ngunit oras na ito, sabihin ang Tab na Network, at ngayon, hanggang dito, sabihin literal pumunta lamang sa http://cs50.harvard.edu at pagkatapos ay pindutin ang Enter. At pagkatapos ay tingnan ang screen down na dito. Pansinin na sa katunayan namin nakuha bumalik ng 301 inilipat permanente na mensahe, na nangangahulugan na ang mayroong isang header ng lokasyon dito, na kung saan ay nagre-redirect na ngayon ako sa HTTPS. Ngunit ang catch ay na, kung nagkaroon na ako isang cookie naselyohang sa aking kamay halos, bilang na tinalakay namin ang bago, at Ko ang isang uri ng hindi alam ng tao bisitahin lamang ang hindi secure na bersyon, at ang aking browser tumatagal ito sa sarili nito upang ipakita na kamay stamp para sa ang unang kahilingan, na kung saan ay sa pamamagitan ng HTTP, anumang tao sa gitna, ang anumang mga kalaban sa gitna, Maaari theoretically makita lamang mga HTTP header, lamang tulad ng kaming naghahanap sa mga ito dito. Ito ay lamang ng isang beses ikaw ay pakikipag-usap sa isang HTTPS URL na mismo kamay stamp makakuha ng naka-encrypt, a la Caesar o Vigenere, ngunit may isang may interes algorithm nang sama-sama. Kaya, dito, kahit na mga website gamitin ang HTTPS, namin mga tao ay na-air condition na, salamat i-auto-complete at iba pang mga diskarte, upang hindi kahit na isipin ang tungkol sa ang mga potensyal na implikasyon. Ngayon, may mga paraan sa paligid na ito. Halimbawa, maraming mga website maaaring i-configure nang sa gayon, sa sandaling mayroon kang kamay na ito stamp, maaari mong sabihin sa browser, ito kamay stamp lamang para sa mga koneksyon ng SSL. Hindi dapat ipakita ang browser ito sa akin maliban kung ito ay sa pamamagitan ng SSL. Ngunit maraming mga website huwag mang-istorbo sa mga iyon. At maraming mga website sa malas huwag kahit na mag-abala na may SSL sa lahat. Kaya para sa higit sa na, mayroong talaga higit pang mga dumi sa pagtatanghal na ito na ang isang kapwa ibinigay sa isang tinatawag na itim sumbrero conference ng dalawang taon na ang nakakaraan, kung saan mayroong kahit iba pang mga nakahahamak na mga trick tao ang gagamitin. Maaari mong isipin na ito kuru-kuro ng isang favicon, na ay tulad ng isang maliit na logo na madalas sa window ng browser. Well, kung ano ang naging karaniwan sa masamang guys ay upang gumawa ng fab icon na mukhang ano? Madla: [hindi marinig]. David J. MALAN: Sabihin muli? Madla: Ang mga website. David J. MALAN: Hindi isang website. Kaya favicon, maliit na maliit na icon. Ano ang magiging pinaka nakahahamak na, mapagmanipulang bagay maaari mong gawin ang iyong website Inaasahan default na icon tulad? Madla: Isang berdeng lock. David J. MALAN: Ano iyon? Madla: Ang isang maliit na berdeng lock. David J. MALAN: Tulad ng isang kulay berdeng lock, eksakto. Kaya maaari kang magkaroon ng ito Aesthetic ng isang maliit na berde na padlock, hinting sa buong mundo, oh, kami ay -secure, kailan, muli, ang lahat ng nangangahulugan ito ay na-alam sa iyo ng ilang mga HTML. Kaya hijack ng session ay tumutukoy sa eksaktong iyon. Kung mayroon kang isang tao kung sino ang uri ng sniffing ang airwaves sa kuwartong ito dito o may pisikal na access sa isang network at maaaring makita ang iyong mga cookies, siya o maaari niyang kunin na ID ng cookie PHP sess. At pagkatapos ay, kung sila ay sapat na mahusay na malaman kung paano ipadala sa cookie na bilang kanilang mga sarili kamay stamp lamang sa pamamagitan ng pagkopya ng halagang iyon at pagpapadala ng mga header ng HTTP, ang isang tao ay maaaring masyadong madaling -log in sa alinman sa mga Facebook mga account o Gmail account o Twitter account na dito, bukas sa kuwarto, kung hindi ka gumagamit ng SSL at kung ang website ay Hindi gumagamit ng SSL tama. Kaya sa paglipat sa isa pa ipaalam. Kaya isa pang tunay na kuwento. At ito lamang sinira sa balita ng isa o dalawang linggo ang nakalipas. Na-paggawa ng Verizon isang napaka-masamang bagay, at bilang masasabi pinakamahusay na mga tao, dahil hindi bababa sa 2012, kung saan, kapag ina-access mo ang mga website sa pamamagitan ng Verizon cellphone, kahit anong tagagawa ito ay, naging sila presumptuously, bilang ang kuwento napupunta, injecting sa lahat ng iyong mga HTTP trapiko sa kanilang sariling mga HTTP header. At na hitsura ng header tulad ng this-- X-UIDH. UID ay tulad ng isang natatanging pantukoy o user ID. At X lamang ang ibig sabihin nito ay isang custom na header na hindi karaniwan. Ngunit ano ang ibig sabihin nito ay na, kung hilahin ko up, halimbawa, anumang website sa aking here-- telepono at ako ang aking ginagamit Verizon bilang aking carrier-- kahit na ang aking browser maaari hindi nagpapadala ito ng HTTP header, Verizon, sa lalong madaling bilang signal naabot ang kanilang cellphone tower sa isang lugar, ay para sa ilang oras injecting ito header sa lahat ng aming mga HTTP trapiko. Bakit nila gawin ito? Siguro para sa mga kadahilanang pagsubaybay, para sa mga kadahilanang advertising. Ngunit ang moronic desisyon disenyo dito ay isang HTTP header, bilang alam mo guys mula sa pset6, ay natanggap sa pamamagitan ng anumang web server na humihiling ka ng trapiko ng. Kaya lahat ng oras na ito, kung na-ng pagbisita Facebook o Gmail o anumang website na hindi gumagamit ng SSL ang lahat ng mga time-- at aktwal na, ang mga dalawang kabutihang palad ngayon do-- ngunit ang iba pang mga website na Hindi gumagamit ng SSL sa lahat ng oras, Verizon ay may mahalagang Na-planting, papuwersa, ng kamay stamp sa lahat ng aming mga kamay na kahit na hindi namin makita, ngunit sa halip, ang katapusan website gawin. At kaya hindi ito ay na mahirap para sa sinuman sa internet pagpapatakbo ng isang web server sa Napag-alaman, ooh, ito ay David, o, ooh, ito ay Davin, kahit kami ay mahigpit tungkol sa pag-clear ang aming mga cookies, dahil hindi ito na nagmumula sa amin. Ito ay nagmumula sa carrier. Gawin nila ang isang lookup sa iyong numero ng telepono at pagkatapos ay sabihin, oh, ito ay si David. Hayaan akong mag-iniksyon ng isang natatanging identifier kaya na maaari sa aming mga advertiser o sinuman subaybayan ang mga ito. Kaya ito ay talagang lubhang, napaka, napaka masamang at Kahindik-hindik. At Gusto ko hinihikayat ka upang tingnan, halimbawa, sa URL na ito, na dapat kong itatwa Talaga ko sinubukang ito ang umaga. Nagsulat ako ng isang maliit na script, ilagay ito sa URL na ito, binisita ito sa aking sariling Verizon cellphone pagkatapos na i-Wi-Fi-off. Kaya kailangan mong i-Wi-Fi-off sa gayon ay gumagamit ka ng 3G o LTE o mga katulad. At pagkatapos ay, kung bumisita ka URL na ito, ang lahat ng mga script na ito ginagawa para sa iyo guys, kung na nais mong i-play, ay ito spits kung ano ang HTTP header ang iyong telepono ay pagpapadala ng sa aming mga server. At ako talaga, sa pagkamakatarungan, ginawa Hindi mo nakikita ang umaga na ito, na Ginagawang ako sa tingin alinman sa mga lokal na cellphone tower ako ay nakakonekta sa o watnat ay hindi ito ginagawa, o na sila back off ng paggawa nito pansamantalang. Ngunit para sa higit pang impormasyon, upang magtungo sa URL na ito dito. At ngayon sa this-- ito comic maaaring magkaroon ng kahulugan. Walang? OK. Lahat ng karapatan. Na namatay. Lahat ng karapatan. Kaya ipaalam sa tumagal ng isang pagtingin sa ilang mga higit pa pag-atake, kung lamang upang taasan ang kamalayan ng at pagkatapos ay nag-aalok ng ilang posibleng solusyon sa gayon ay handa mo ang lahat ng higit pang mga nasa sa isip. Ang isang ito usapan natin ang tungkol sa iba pang araw, ngunit hindi magbigay ng pangalan dito. Ito ay isang cross-site kahilingan palsipikasyon, na ay isang labis magarbong paraan ng pagsabi linlangin ka ng isang user sa pag-click sa isang URL na tulad nito, na trick sa kanila sa ilang mga pag-uugali na hindi nila binalak. Sa kasong ito, mukhang ito na sinusubukang upang linlangin sa akin sa pagbebenta ng aking pagbabahagi ng Google. At ito ay magtagumpay kung Ko, ang programmer ng pset7, hindi tapos ano? O sa halip, mas pangkalahatang paraan, sa kung ano ang kaso am mahina ako sa isang atake kung may isang taong trick ng isa pang user sa pag-click ng URL tulad nito? Oo? Madla: Hindi mo makilala sa pagitan ng GET at POST. David J. MALAN: Mahusay. Kung hindi namin makilala sa pagitan ng GET at POST, at sa katunayan, kung pinapayagan namin GET para sa pagbebenta ng mga bagay, kami ay nag-aanyaya sa ganitong uri ng pag-atake. Ngunit pa rin namin pagaanin ito medyo. At nagkomento ako, sa palagay ko, noong nakaraang linggo na Amazon ng hindi bababa sa Sinusubukan upang pagaanin ito sa isang diskarte na Kahanga-prangka. Ano ang gagawin isang smart bagay gawin maging sa iyong server, sa halip na lamang nang walang taros pagbebenta ng anumang simbolo ng uri ng user sa? Madla: Pagkumpirma ng uri? David J. MALAN: Isang screen pagkumpirma, bagay na may kasamang pakikipag-ugnayan ng tao kaya ako ay mapipilitang gumawa ng tawag paghatol, kahit na naively ko na-click isang link na mukhang ganito at humantong sa akin sa screen ng cell, sa hindi bababa sa nagtanong sa akin upang kumpirmahin o tanggihan. Ngunit hindi isang hindi karaniwang mga pag-atake, lalo na sa gayon tinatawag na phishing o tulad ng spam pag-atake. Ngayon, ang isang ito ay higit pa sa isang maliit na mahiwaga. Ito ay isang cross-site na pag-script atake. At nangyari ito kung ang iyong website ay hindi gumagamit ng ang katumbas ng htmlspecialchars. At tumatagal ng pag-input ng user at lamang nang walang taros injecting ito sa isang web page, tulad ng sa print o echo, with-- again-- ang pagtawag ng isang bagay tulad ng htmlspecialchars. Kaya ipagpalagay na ang website sa tanong ay vulnerable.com. At ipagpalagay na tinanggap ito isang parameter na tinatawag na q. Tumingin sa kung ano ang maaaring mangyari kung ako talaga, isang masamang tao, -type o linlangin ang gumagamit sa pagbisita sa isang URL na ganito ang hitsura this-- q = bukas script tag, sarado script tag. At muli, ako sa pag-aakala na vulnerable.com ay hindi pagpunta sa i-mapanganib character tulad ng bukas na bracket sa mga entity sa HTML, ang ampersand, L-T, semicolon bagay na maaaring mo pa nakikita dati. Ngunit ano ang script o JavaScript na code Sinusubukan ko upang linlangin ang isang gumagamit sa e-execute? Well, document.location ay tumutukoy sa kasalukuyang address ng aking browser. Kaya kung gagawin ko document.location =, ito ay nagbibigay-daan sa akin upang i-redirect ang user sa JavaScript sa isa pang website. Ito ay tulad ng ating pag-andar na PHP -redirect, ngunit nagawa sa JavaScript. Saan ako sinusubukang ipadala ang user? Well, sa malas, badguy.com/log.php, na kung saan ay ilang script, tila, ang masamang tao ay sumulat, na tumatagal isang parameter na tinatawag na cookie. At paunawa, ano ang gagawin ko lumilitaw na concatenating papunta sa dulo ng na katumbas ng pag-sign? Well, isang bagay na sabi document.cookie. Hindi pa kami usapan tungkol dito. Ngunit ito ay lumiliko out, sa JavaScript, tulad ng sa PHP, Maaari mong ma-access ang lahat ng mga cookies na ang iyong browser ay aktwal na paggamit. Kaya ang epekto ng isang ito linya ng code, kung ang isang user ay tricked sa pag-click sa link na ito at ng website vulnerable.com hindi makatakas ito sa htmlspecialchars, ay na mayroon ka epektibo lamang -upload sa log.php lahat ng iyong mga cookies. At na hindi laging na problema, maliban kung ang isa sa mga cookies ay ang iyong session ID, ang iyong tinatawag na kamay stamp, na Nangangahulugan badguy.com maaaring gumawa ng kanyang sariling Mga kahilingan ng HTTP, ang pagpapadala ng parehong kamay stamp, na parehong header cookie, at mag-log in sa anumang website ay ang iyong pagbisita, na sa kasong ito ay vulnerable.com. Ito ay isang cross-site na pag-script pag-atake sa kamalayan na uri ng mga naka-Tricking isang site na nagsasabi sa isa pang website tungkol sa ilang impormasyon dapat itong hindi, sa katunayan, ay may access sa. Ang lahat ng mga karapatan, handa na para sa isa iba pang mga nakakaligalig detalye? Ang lahat ng mga karapatan, ang mundo ay isang nakakatakot na lugar, kaya lehitimong. Narito ang isang simpleng Halimbawa ng JavaScript na sa source code ngayong araw tinatawag na geolocation ng 0 at 1. At mayroong ilang walkthroughs online para sa na ito. At ito ay ang mga sumusunod kung ako buksan ang web page sa Chrome. Ito muna ang wala. OK, susubukan naming ito muli. Oh. Hindi, dapat itong gawin ang isang bagay. OK, tumayo sa pamamagitan ng. Subukan ito nang isa pang beses Hayaan. [Hindi marinig] Ah, OK, hindi nakakatiyak kung bakit the-- naku, ang appliance marahil nawala internet -access para sa ilang mga kadahilanan. Ang lahat ng mga karapatan, sa gayon ang mangyayari sa akin, masyadong. Ang lahat ng mga karapatan, sa gayon abiso kung ano ang nangyayari sa dito. Ang misteryosong-naghahanap URL, na ay isa lamang sa CS50 server, Gustong gamitin ng computer ang aking lokasyon, tulad ng pisikal na nangangahulugan ito. At kung, sa katunayan, i-click ako sa Payagan, tingnan natin kung ano ang mangyayari. Sa malas, ito ay ang aking kasalukuyang latitude at paayon coordinate pababa sa isang kaakit-akit na nagsulsi magandang resolution. Kaya kung paano ang nakuha ko sa ito? Paano gumagana ang website na ito, tulad ng CS50 server, Alam pisikal na kung saan sa mundo Ako, pabayaan mag-isa na may katumpakan iyon. Well, lumiliko out-- sabihin lamang tumingin sa source-- ng pahina na in dito ay isang bungkos ng HTML sa sa ibaba ang unang ay this-- katawan onload = "geolocate" - isang function lang nagsulat ako. At ako na nagsasabi, sa paglo-load pahina, tumawag geolocate. At pagkatapos ay walang ay sa katawan, dahil sa head ng pahina, mapansin kung ano ang mayroon akong dito. Ito ang aking geolocate function. At ito ay ilan lang error checking-- kung ang uri ng navigator.geolocation Hindi hindi natukoy. Kaya ay ang JavaScript mekanismo kung saan mo Maaaring sabihin, ano ang uri ng variable na ito? At kung hindi ito undefined-- na ang ibig sabihin nito ay ang ilang mga value-- Pupunta ako sa tumawag sa navigator.geolocation.getCurrentPosition at pagkatapos ay callback. Ano ito? Kaya sa pangkalahatan, kung ano ay isang callback, upang maging malinaw lang? Maaaring nakatagpo ka ito ay nasa pset8. Callback ang isang generic termino para sa paggawa kung ano? Pakiramdam ng tulad sa akin lang ngayon. Madla: [hindi marinig]. David J. MALAN: Eksaktong, isang function na dapat tawagin lamang kapag mayroon kaming data. Ang tawag na ito sa browser, kumuha ng aking kasalukuyang posisyon, maaaring tumagal ng isa millisecond, maaaring tumagal ng isang minuto. Ano ang ibig sabihin nito ay ay nagsasabi namin ang paraan get getCurrentPosition, tawagan ang callback, na ako literal na may pangalang callback para sa pagiging simple, na sa malas ay ang isang ito dito. At ang paraan getCurrentPosition ang gumagana, lamang sa pamamagitan ng pagbabasa ang dokumentasyon para sa ilang mga code ng JavaScript sa online, ay na tawag ito na tinatawag na callback -andar, ipapasa ito sa ito ng isang JavaScript bagay, sa loob ng na .coords.latitude at .coords.longitude, na kung saan ay eksakto kung paano, pagkatapos, kapag reload ko ang pahinang ito, Ako ay magagawang makita ang aking lokasyon dito. Ngayon, ng hindi bababa sa nagkaroon ng pagtatanggol dito. Bago binisita ko ang pahinang ito, kapag aktwal na ito gumana, kung ano ang ako ng hindi bababa sa na-prompt para sa? Madla: [hindi marinig]. David J. MALAN: Oo o no-- gawin nais mong payagan o tanggihan na ito? Ngunit sa tingin, masyadong, tungkol sa mga gawi ka guys ay malamang na pinagtibay, kapwa sa iyong telepono at ng iyong mga browser. Marami sa atin, aking sarili kasama, ay marahil medyo predisposed mga days-- mo ang isang pop-up, Ilagay lamang, OK, Aprubahan, Payagan. At lalong, maaari kang maglagay ang iyong sarili sa panganib para sa mga kadahilanan. Kaya sa katunayan, nagkaroon ito kahanga-hangang bug ilang taon ago-- o kakulangan ng feature-- na iTunes ay nagkaroon ng ilang taon na ang nakakaraan, kung saan, kung mayroon kang isang cell phone, at ito ay isang iPhone, at iniwan mo ang iyong home at samakatuwid ay naglakbay sa buong mundo o ang kapitbahayan, ang lahat ng mga oras na ito, ang iyong telepono ay pag-log kung nasaan ka sa pamamagitan ng GPS. At ito ay aktwal na isiwalat, at ang mga tao uri ng inaasahan na ito ngayon. Alam ng iyong telepono kung nasaan ka. Ngunit ang problema ay na, kapag nagba-back na iyong up ang iyong telepono sa iTunes-- ito ay bago mga araw ng iCloud, kung saan ay para sa mas mahusay o para sa worse-- ang data ay maimbak sa iTunes, ganap na unencrypted. Kaya kung mayroon kang isang pamilya o mga kasamahan sa kuwarto o sa nakahahamak na kapit-bahay kung sino ang malaman ang tungkol sa literal bawat GPS coordinate na iyong naging sa, siya ay maaari lamang umupo sa iTunes, magpatakbo ilang software na malayang noon ay na magagamit, at ani ng mga mapa tulad nito. Sa katunayan, ito ay kung ano ang aking gumawa ng aking sariling telepono. Naka-plug ko ito sa. At mukhang, batay sa asul na tuldok doon, na kung saan karamihan sa mga ang mga coordinate sa GPS ay -log sa pamamagitan ng iTunes na ako ay nasa Hilagang Silangan doon. Ngunit sa malas ko naglakbay sa paligid ng kaunti, kahit na sa loob Massachusetts. Kaya na Boston Harbor doon sa kanan. Iyon ang uri ng Cambridge at Boston, kung saan ito ay darkest. At paminsan-minsan, nais kong patakbuhin errands sa isang mas malaking heograpiya. Ngunit iTunes, para sa taon, nagkaroon, bilang pinakamahusay na Maaari ko bang sabihin, ang lahat ng data na ito sa akin. Maaari mong sabihin na, taon na, ako ay talagang naglalakbay ng maraming pagitan ng Boston at New York, pagpunta pabalik-balik at pabalik-balik. At sa katunayan, ito ay sa akin sa Amtrak, pabalik -balik, pabalik-balik, tila. Ang lahat ng iyon ay na-log at Naka-imbak na naka-encrypt sa aking computer para sa sinuman na maaaring mayroon -access sa aking computer. Ito ay nakakaligalig. Hindi ko alam kung bakit ako ay sa Pennsylvania o kung bakit aking telepono ay nasa Pennsylvania, tila medyo nang makapal. At pagkatapos ay, sa wakas, Tiningnan ko sa aking Gcal, at, oh, ako binisita CMU, Carnegie Mellon, sa panahon. At Phew, na uri ng Ipinaliwanag na blip. At pagkatapos ay, kung mag-zoom out pa, maaari mong tingnan binisita ko San Francisco isa o higit pang beses pagkatapos, at kahit na ako ay nagkaroon ng isang layover sa kung ano ang Sa tingin ko ay Vegas, pababa doon. Kaya lahat ng this-- lamang layover, sa airport. Madla: [tawa] Kaya ito ay lamang upang sabihin na ang mga mga problema, totoo lang, ay nasa lahat ng dako. At sa palagay lamang lalong bang mayroong higit pa at higit pa sa ito na isiwalat, na kung saan ay malamang na isang magandang bagay. Sa palagay ko, ang mundo ay hindi pagkuha ng mas masahol pa sa sulat software. Mas mahusay na namin nakukuha, sana ay, sa makapansin kung paano masamang ilang software ay na ginagamit namin. At Sa kabutihang palad, ang ilang mga mga kumpanya ay nagsisimula na gaganapin nananagot para dito. Ngunit anong uri ng mga panlaban Maaari na iniisip mo? Kaya bukod sa mga tagapamahala ng password, tulad ng 1Password at LastPass at iba pa, bukod sa pagbabago lamang ang iyong mga password at paparating na may random na mga gamit ang software tulad ng na iyon, maaari mo ring subukan bilang pinakamahusay na maaari mong i-encrypt sa lahat ng iyong trapiko sa hindi bababa sa paliitin ang zone ng isang banta. Kaya halimbawa, tulad ng Harvard kaakibat, Maaari mo ang lahat ng pumunta sa vpn.harvard.edu at mag-log in gamit ang iyong Harvard ID at PIN. At ito ay makapagtatag ng secure na koneksyon sa pagitan mo at Harvard. Ngayon, na hindi kinakailangan na protektahan ka laban sa anumang pagbabanta na sa pagitan ng Harvard at Facebook o sa Harvard at Gmail. Ngunit kung naka-upo sa airport o ikaw ay na nakaupo sa Starbucks o ikaw ay nakaupo sa lugar ng isang kaibigan, at hindi mo talaga pinagkakatiwalaan ang mga ito o ang kanilang configuration ng kanilang tahanan router, hindi bababa sa maaari mong magtatag isang ligtas na koneksyon sa isang nilalang tulad ng lugar na ito na marahil ng isang maliit na mas mahusay na-secure kaysa sa isang bagay tulad ng isang Starbucks o mga katulad. At kung ano ang ginagawa ay ito ay nagtatatag, muli, pag-encrypt sa pagitan mo at ang endpoint. Kahit na may interes ay mga bagay na katulad nito. Kaya ang ilan sa iyo na maaari maging pamilyar sa Tor, na ang ganitong uri ng anonymization network, kung saan ng maraming mga tao, kung patakbuhin nila ang software na ito, ruta pagkatapos ay ang kanilang internet trapiko sa pamamagitan ng bawat isa. Kaya ang pinakamaikling point hindi na sa pagitan ng A at B. Ngunit maaari itong maging lahat sa ibabaw ng ilagay sa gayon ay handa mo talaga na sumasakop sa isa sa mga track at umaalis mas mababa ng isang talaan bilang sa kung saan ang iyong HTTP nagmula ang trapiko mula sa, dahil ito ang nangyayari sa pamamagitan ng isang buong bungkos ng iba pang mga tao laptop o desktop, para sa mas mahusay o mas masahol pa para sa. Ngunit kahit na ito ay hindi ay isang walang kamali bagay. Ang ilan sa mo ay maaaring isipin ang nakaraang taon ang bomba matakot na tinatawag na sa. At ito ay traced sa huli sa isang gumagamit na gumamit ng network na ito dito. At ang catch doon, bilang isipin ko, ay, kung may mga hindi na maraming iba pang mga tao gamit ang isang software na tulad nito o gamit ang port at protocol, hindi na mahirap para sa isang network upang mas malaman na, may ilang mga bagay na maaaring mangyari, ay sa katunayan hindi kilala ang kanyang trapiko. At hindi ko alam kung ang mga ang mga aktwal na particular na pinag-uusapan. Ngunit tiyak, Napag-alaman na wala sa ang mga ito ay walang kamali solusyon, pati na rin. At ang layunin dito ngayon ay ang hindi bababa sa makakakuha ka ng iniisip tungkol sa mga bagay na ito at paparating na may mga pamamaraan para pagtatanggol sa inyong sarili laban sa mga ito. Ang anumang mga katanungan sa lahat ng mga banta na naghihintay sa iyo doon, at in dito? Oo? Madla: Gaano ka tiwasay gawin Inaasahan namin ang average na [? website upang maging,?] tulad ng ang average na proyekto CS50? David J. MALAN: Ang average na proyekto CS50? Ito ay palaging di-napatutunayang sa bawat taon na ilang CS50 panghuling proyekto ay hindi lalo na ligtas. Karaniwan, ito ang ilang kasama sa kuwarto o hallmate na figure na ito out sa pamamagitan ng pagpapadala ng mga kahilingan sa iyong proyekto. Maikling answer-- kung gaano karaming mga website ay ligtas? Ako pagpili sa ngayon anomalya. Tulad ng ito ay isa lamang happenstance na ako na maisasakatuparan na ang website na ito Gumagamit ako ng pag-order ang mga tapat masarap arrangement from-- at hindi ako sigurado idedetalye ko ihinto ang paggamit ng kanilang website; Maaari ko bang baguhin lamang ang aking password nang higit pa regularly-- hindi ito i-clear lang kung paano mahina ang lahat ng mga various-- ito ay chocolate-covered talaga. Ang maikling sagot, hindi ko masagot na epektibo, maliban sa sasabihin nito ay hindi na mahirap para sa akin upang hanapin ang ilan sa mga halimbawa lamang alang-alang sa talakayan sa aralin. At pinapanatili lamang ng isang mata sa Google News at iba pang mga mapagkukunan Dadalhin ang lahat ng higit pa sa mga uri ng mga bagay na liwanag. Ang lahat ng mga karapatan, na pagtibayin ipaalam gamit ang prequel ang koponan ng CS50 Nag inihanda para sa iyo sa pag-asa ng CS50 Hackathon. At sa iyong paraan out sa isang sandali, prutas ihahatid. [VIDEO pag-playback] [Musika Fergie, Q TIP, AT GOONROCK, "A Little PARTY HINDI pinatay Walang sinuman (LAHAT Mayroon kaming) "] - [Hagik] [END VIDEO pag-playback] David J. MALAN: Iyon lang para sa CS50. Gagamitin namin ang nakikita mo sa Miyerkules. [Musika - SKRILLEX, "IMMA 'Subukan ito"]