[Musika] David J. MALAN: Lahat ng karapatan. Kaya ito ay CS50 at ito ay ang katapusan ng linggo 10. Kaya ilan sa inyo ay maaaring may nakita ito pa, ngunit ina-circulated ng late ay isang artikulo na naisip ko na gusto kong basahin isang sipi mula sa at pagkatapos ay ipapakita sa iyo ang isang tatlong minutong video na paints ang parehong larawan. Ito ay talagang isang paghawak kuwento, ko inisip, ng ito intersection ng tunay na mundo na may tunay na nakakahimok Ginagamit ng teknolohiya. Kaya ang artikulo ay may karapatan, "Ang isang batang lalaki oversleeps sa tren, ay gumagamit ng Google Maps upang makahanap ng pamilya 25 taon mamaya. "At ang unang pares ng mga talata ay, "Kapag Saroo ay limang taong gulang siya nagpunta kasama ng kanyang mga mas lumang kapatid na lalaki upang magkamit para sa baguhin sa isang tren na pasahero sa isang bayan tungkol sa dalawang oras mula sa kanyang maliit na bayan. Saroo naging pagod at hopped sa isang malapit tren kung saan siya naisip ang kanyang kapatid na lalaki ay, pagkatapos ay nahulog tulog. Kapag siya woke up siya sa Calcutta, halos 900 milya ang layo. Saroo sinubukan upang mahanap ang kanyang paraan pabalik, ngunit hindi niya alam ang pangalan ng kanyang bayang kinalakhan. At bilang isang maliit na maliit na batang lalaki hindi nag-aral sa isang malawak lungsod na puno ng mga bata nakalimutan niya halos walang posibilidad ng pagkuha ng bahay. Siya ay isang anak ng kalye para sa isang habang hanggang sa isang lokal na ahensiya ng pag-aampon baluktot sa kanya up sa isang Australian pares na nagdala sa kanya upang nakatira sa Hobart, Tasmania. Saroo inilipat doon, natutunan Ingles, at lumaki. Subalit siya ay hindi kailanman tumigil sa hinahanap kanyang pamilya at sa kanyang bayang kinalakhan. Dekada mamaya, siya natuklasan ng Google Earth at sinundan rail track. At pagbibigay sa kanyang sarili ng isang inireseta sa radius batay sa kung gaano katagal niya naisip na siya ay tulog at kung gaano kabilis niya naisip ang tren ay pagpunta, alam niya siya nais lumago up sa isang mainit-init ng klima, alam niya siya ay nagsalita Hindi bilang isang bata, at nais niya na sinabi sa na siya ay tumingin siya tulad ng ay mula sa East Indya. Sa wakas, pagkatapos ng taon ng paglilinis ang satellite mga larawan, siya kinikilala ng ilang mga palatandaan. At pagkatapos ng pakikipag-chat sa isang administrator ng isang kalapit na bayan Facebook pahina, siya natanto Gusto niya natagpuan tahanan. " Kaya dito pagkatapos ay ang video na nagsasabi na kuwento mula sa kanyang pananaw. [Video playback] -Iyon ay 26 taon na ang nakalipas at ako ay lamang tungkol sa upang i-limang. Nakakuha kami sa istasyon ng tren at namin boarded ng tren magkasama. Ang aking kapatid na lalaki lamang ang sinabi Magtatagal ako dito at kukunin ko ay bumalik. At ko lang naisip, well, alam mo, ako maaaring pati na rin lamang matulog at pagkatapos ay makikita lamang niya akong gisingin up. At kapag gisingin ko up sa susunod na araw, ang buong karwahe ay walang laman sa isang walang preno tren, isang ghost tren paglalaan sa akin hindi ko alam kung saan. Ako ay pinagtibay out sa Australia sa isang Australian pamilya. At Nanay ay pinalamutian ng aking kuwarto na may ang mapa ng Indya, na kung saan siya ilagay sa tabi ng aking bedside. Ako woke up tuwing umaga nakikita na mapa, at samakatuwid, ito uri ng iningatan ang mga alaala buhay. Mga Tao sasabihin, sinusubukan mong i- makahanap ng isang karayom ​​sa isang mandala ng dayami. Saroo, hindi mo na mahanap ito. Gusto ko magkaroon ng flashes ang mga lugar na Ginamit ko upang pumunta, ang flashes mga mukha ng aking pamilya. Nagkaroon ng larawan ng aking ina sitting pababa sa kanyang binti tumawid lamang manood kanyang sigaw. Buhay lamang ang kaya mahirap. Iyon ay ang aking mga kayamanan. At ako ay naghahanap sa Google Map at natanto mayroong Google Earth pati na rin. Sa isang mundo kung saan maaari kang mag-zoom in ako nagsimula na magkaroon ng lahat ng mga saloobin at kung ano ang posibilidad na ito ay maaaring gawin para sa akin. Sinabi ko sa sarili ko, well, alam mo, mo na nakuha ko ang lahat ng photographic mga alaala at landmark kung saan ikaw ay mula at alam mo kung ano ang bayan ang kamukha. Maaaring ito ay isang application na iyong Maaaring gamitin upang mahanap ang iyong paraan pabalik. Naisip kong, well, makikita ko bang ilagay ang isang tuldok sa Calcutta Train Station sa isang radius line na dapat kang maghanap sa paligid ng lugar na ito. Ako ay dumating sa kabuuan ng mga track ng tren. At ako makapagsimula ng pagsunod ito at ako ang dumating sa isang istasyon ng tren kung saan masasalamin ang parehong imahe na noon ay sa aking mga alaala. Lahat tumugma. Ko lang naisip, yep. Alam ko kung saan ako pupunta. Lamang ako ng pagpunta sa ipaalam sa mapa na ako magkaroon sa aking ulo upang humantong sa akin at dalhin ako i-back sa aking bayang kinalakhan. Ako ay dumating sa pintuan ng bahay na ako ay ipinanganak at lumakad palibot tungkol sa labinlimang metro sa paligid ng sulok. May ay tatlong ladies nakatayo sa labas Katabi isa't isa. At sa gitna ng isa stepped pasulong. At ko lang naisip, ito ay ang iyong ina. Siya ay dumating pasulong, siya hugged sa akin, at kami ay doon para sa tungkol sa limang minuto. Siya grabbed aking kamay at kinuha niya sa akin sa ang bahay at nakuha sa telepono at siya Rang aking kapatid na babae at ang aking kapatid na lalaki na sabihing na ang iyong kapatid na lalaki ay may lamang sa lahat ng mga biglang lumitaw tulad ng isang ghost. At pagkatapos ay ang pamilya ay reunited muli. Lahat lahat ng mabuti. Ko ng tulong sa aking ina out. Hindi niya ay mayroon na slaving ang layo. Maaari niyang humantong ang mga natitira kanyang buhay sa kapayapaan. Ito ay isang karayom ​​sa isang mandala ng dayami, ngunit ang karayom ​​ay naroon. Lahat ng naroon. Lahat mayroon kami sa mundo ay ang tapikin ng isang pindutan. Ngunit na kailangan mong magkaroon sa kalooban at ang pagpapasiya upang kinakapos ito. [END-playback ng video] Kaya isang talagang matamis na kuwento. At talagang reminds sa akin ng isang lubos topic na hindi nakakakuha pa ng kaunti ng pansin ng late sa Ang Crimson, higit pang mga nationally sa pangkalahatan. Lalo na bilang MOOCs ang mga pagsasaayos mga yugto ng late. MOOCs pagiging mga napakalaking at bukas online na kurso na kung saan CS50 ay isa. At ang mga tao ng pakikipag-usap tungkol sa kung paano, para sa Halimbawa, ang makataong sining ay hindi talaga pansing up o ay hindi halos bilang sa katanyagan bilang sila ay isang beses. At Gusto ko hinihikayat ka guys, magkano tulad ng ginawa ng Jonathan sa Monday, mag-isip tungkol sa bilang lumabas ka sa 50, at alam namin na tungkol sa 50% ng sa iyo ay hindi magpatuloy sa gumawa ng isa pang computer Siyempre agham, at iyon ang lahat-lahat fine at inaasahan. Dahil isa sa mga overarching layunin ng isang klase tulad talaga ito sa magbigay ng kapangyarihan sa iyo guys sa pamamagitan lamang ng isang pag-unawa sa kung paano ang lahat ng ito bagay-bagay ang gumagana at kung paano ito mundo teknolohiya ng mga gawa. Kaya na kapag ikaw ay bumalik sa iyong sariling mundo, kung ito ay ang pre-Med o ito man ang makataong sining o ang agham panlipunan o ilang iba pang mga patlang nang sama-sama, na iyong guys ay nagdadala ang ilang mga teknikal na savvy sa talahanayan at pagtulong upang gumawa ng matalinong mga pagpapasya kapag pagdating sa paggamit ng at pagpapakilala ng teknolohiya sa iyong mundo. Halimbawa ako ay mapaalalahanan ng late Masyadong ng dalawang ng mga undergraduate na mga klase ko kinuha dalawang taon na ang nakakaraan, na kung saan ay tulad ng simpleng paggamit ng teknolohiya ngunit napaka nakakahimok. Unang Gabi na may Propesor Tom Kelly kung nagsagawa ng klase. Ito ay isang klase sa klasikong musika sa yugtong ito dito kung saan matutunan mo ang isang maliit na bagay tungkol sa musika. Ito ay talagang Unang Gabi na CS50 hiniram ang ideya ng mga track para sa mga mas kumportable sa pagitan ng at mas kumportable. Sa aking beses silang nagkaroon ng iba't ibang mga track para sa mga bata na may ganap na walang musika makaranas tulad ng sa akin, at pagkatapos ay i-kids na ay gumaganap dahil sila ay limang taong gulang. At klase na, halimbawa, ay nagkaroon lamang isang website tulad ng karamihan sa anumang iba pang, ngunit ito ay isang website na pinapayagan ka upang galugarin ang musika sa ito at muling i-play musikal clip mula sa klase, mula sa web, at gamitin na lamang ang teknolohiya sa isang napaka- walang pinagtahian paraan. Ang isa pang klase taon mamaya na ako awdit, mahalagang, sa Grad paaralan, Anthro 1010, Panimula upang Archaeology dito. Iyon ay kahanga-hangang. At ang isa sa mga pinaka-nakakahimok pa super halata, sa paggunita, ay gumagamit ng software ay na ang mga professors sa na class na ginamit ng Google Earth. Kami ay pag-upo sa tapat ng kalye sa ilang mga silid para sa panayam. At hindi ka maaaring maglakbay, halimbawa, sa Gitnang Silangan sa kumuha sa lupa na isa ng professors ay lamang bumalik sa, ngunit maaari naming gawin iyon sa pamamagitan ng virtually na lumilipad sa paligid sa Google Earth at tumitingin sa eye view ng isang ibon sa humukay site lamang siya ay nagbalik mula sa isang linggo na ang nakakalipas. Kaya Gusto ko hinihikayat ka guys, lalo na sa makataong sining, upang pumunta i-back sa mga kagawaran matapos ito class na nagdadala sa iyong huling proyekto sa iyo o sa mga ideya ng iyong sarili, at makita lamang kung ano ang maaari mong gawin upang mahawahan ang iyong sariling mga patlang sa makataong sining o lagpas sa na may isang maliit na bit ng ganitong uri ng bagay na namin nagalugad dito sa CS50. Kaya may mga larawan na pininturahan, naisip gusto naming subukan upang matugunan ang dalawang bagay ngayong araw. Ang isa, subukan na magbigay sa iyo ng ideya ng kung saan maaari kang pumunta pagkatapos ng 50. At sa partikular, kung pinili mong pagharap sa isang bagay ng isang web based na proyekto bilang ay hindi mapaniniwalaan o kapani-paniwala karaniwan, kung paano maaari kang pumunta tungkol sa pagkuha ng off ang lahat ng CS50 ni pagsasanay at mga gulong ng pagpunta out doon sa ang iyong sariling at hindi pagkakaroon ng umasa sa isang PDF o isang pagtutukoy ng isang pset? Hindi na kinakailangang umasa sa isang CS50 appliance na ngayon. Ngunit maaari talagang hilahin ang iyong sarili up sa pamamagitan ng iyong bootstraps. Sa na sinabi, C-batay final mga proyekto ng Inaanyayahan. Mga bagay na gumagamit ng stand para sa isang portable library sa graphics ay maligayang pagdating. Lang namin alam na istatistika ng maraming mga tao kumagat off ang mga proyekto sa PHP at Python at Ruby at MySQL at iba pang mga kapaligiran, kaya bibigyan namin ng bias ang ilan sa ang aming remarks patungong na. Pero isang mabilis na bumalik hitsura. Kaya kinuha namin para sa ipinagkaloob sa pset7 ang katotohanan na $ _SESSION umiral. Ito ay isang napaka-global, isang pandaigdigang, nag-uugnay array. At kung ano ang ibig sabihin gagawin mo? Pagtakbo, kung ano ang mga Nagtatampok ang mga ito ay nagbibigay sa amin? Oo? Upang subaybayan ang ID ng gumagamit. At kung bakit ito ay kapaki-pakinabang? Upang ma-imbak sa loob ng mga ito super global JHarvard o [? Scroobs?] o user ID Malan kapag siya ay o siya ay bumisita sa site. Mismong. Kaya hindi mo na kailangang mag-log in muli at muli. Gusto ito ay isang talagang pilay mundo wide web kung sa bawat oras na nag-click ka sa isang link sa isang site tulad ng Facebook o sa tuwing nag-click ka sa isang e-mail sa Gmail mo nagkaroon upang muling patunayan upang patunayan na pa ito sa iyo at hindi kasama sa kuwarto ang iyong sino ang maaaring lumakad hanggang sa iyong computer sa iyong kawalan. Kaya ginagamit namin sa session lamang matandaan kung sino ka. At kung paano ito ay ipinatupad sa ilalim ng hood? Paano gumagana ang isang website na gumagamit, ang protocol na web browser at server magsalita, kung paano gumagana ang HTTP, na isang stateless protocol, sabihin nating. At sa pamamagitan ng stateless Ibig kong sabihin, sa sandaling kumonekta sa isang website, i-download ang ilang mga HTMLs, ang ilang mga JavaScript, CSS ilan, ang iyong icon ng browser Humihinto Umiikot. Hindi mo kailangang magkaroon ng isang pare-pareho ang koneksyon sa server karaniwang. Iyan na ang lahat. Walang estado pinananatili Patuloy. Kaya kung paano ay session na ipinapatupad sa naturang isang paraan na sa tuwing gagawin mo bisitahin ang isang bagong pahina, website ang Naaalala kung sino ka? Ano ang nakapailalim na pagpapatupad detalyado? Mag-shout out ito. Ito ay isang salita. Cookies. Ayos lang. Kaya cookies. Well, kung paano ang mga cookies na ginagamit? Susubukan naming isipin ang na ang isang cookie ay pangkalahatan lamang ng isang piraso ng impormasyon. At ito ay madalas na isang malaking random numero, ngunit hindi palaging. At ang isang cookie ay nakatanim sa iyong hard biyahe o sa RAM ng iyong computer sa gayon na sa bawat oras na bisitahin muli ang parehong website, ang iyong browser reminds ang server, ako ay gumagamit 1234567. Ako ay gumagamit 1234567. At kaya hangga't ang server ay remembered na gumagamit ay 1234567 JHarvard, ang website ay ipinapalagay lamang na ikaw ang taong nagsasabing kayo ay sa iyo. At isipin ang na magpakita kami ng mga cookies na uri ng sa anyo ng isang virtual kamay stand. Ito ay ipinadala sa mga header ng HTTP para lamang paalalahanan ang server na ikaw ang nag ito Iniisip ka. Siyempre, mayroong banta ng. Ano banta ay buksan ito sa amin hanggang sa kung lubos naming gumagamit ka ng isang uri ng isang club o isang amusement park mekanismo para sa pagtanda kung sino tayo? Kung kumopya ka cookie ng isang tao at hijack ang kanilang mga session, sa gayon na magsalita, mo Maaari magpanggap bilang ibang tao at ang website pinaka-malamang ay lamang ng pagpunta sa naniniwala ka. Kaya kami ay bumalik sa na. Dahil ang iba pang mga tema para sa araw na lampas empowerment din ang pakikipag-usap tungkol sa mga napaka-nakakatakot mundo mabuhay namin sa at lamang kung magkano ng kung ano ang ginagawa mo sa sa web, gaano karami ng kung ano ang ginagawa mo kahit na sa iyong mga cell phone ngayon ay maaaring maging sinusubaybayan talaga ng sinuman sa pagitan ng mo at point B. At Ajax, isipin ang. Kami ay tumingin lamang sa panandaliang ito, bagaman na ginagamit mo ito hindi direkta sa pset8 dahil gumagamit ka ng Google Maps at dahil ikaw ay gamit ang Google Earth. Google Maps at Google Earth ay hindi download ang buong mundo sa iyong desktop, malinaw naman, ang sandali-load mo pset8. Ito lamang Dina-download ang isang parisukat ng mundo o ng mas malaking parisukat ng lupa. At pagkatapos ay sa tuwing ikaw uri ng kapong baka Wala sa sakop ang maaari mong mapansin - lalo na kung nasa isang mabagal na koneksyon - sa iyo Maaaring makita ang ilang mga kulay-abo para sa isang sandali o isang bit ng fuzzy imahe bilang ang computer na-download na higit pa tulad tile, higit pa tulad ng imahe mula sa mundo o sa lupa. At Ajax ay pangkalahatan ang diskarteng sa pamamagitan ng kung aling mga website ang ginagawa ng mga iyon. Sa sandaling kailangan mo ng higit pa sa mga mapa, ang iyong browser ay pagpunta sa gamitin Ajax, na siyang hindi mismo ng isang wika o teknolohiya, ito lamang ay isang diskarte. Ito ay ang paggamit ng JavaScript upang pumunta makakuha karagdagang impormasyon mula sa isang server na Pinapayagan ang iyong browser upang pumunta makakuha ng kung ano ang sa ang silangan o kung ano ang sa kanluran ng kung ano ang kung hindi man ay sa kasalukuyan ipinapakita na sa mapa. Kaya ito ay isang paksa na marami sa inyo ay nakatagpo direkta man o hindi tuwiran sa pamamagitan ng pangwakas na proyekto kung piliin upang gawin ang isang bagay na katulad dynamic na kumukuha ng data mula sa ilang mga third party na website. Kaya namin nakuha ng isang kapana-panabik na talaga sa susunod na Miyerkules nang mas maaga. Quiz isa, ang impormasyon na kung saan ay nasa CS50.net pa. Malaman na may makikita maging isang review session ito darating na Lunes sa 05:30. Ang petsa at oras ay naka-post sa CS50.net sa na Tungkol sa sheet. At huwag ipaalam sa amin sa iyo may anumang mga katanungan. Pset8 samantala ay sa iyong mga kamay. At ipaalam sa akin lamang tugunan ang isa FAQ i-save ang mga tao ng ilang mga stress. Para sa nakararaming bahagi ng maraming mga satsat nakikita namin sa oras ng opisina at ng maraming ang mga bug namin makita iniulat sa talakayin ang mga sa katunayan mga bug sa code ng isang estudyante. Ngunit kapag ikaw ay nakatagpo ng isang bagay na tulad ng Google Earth plug-in pag-crash o kahit na hindi nagtatrabaho at ikaw ay tiwala hindi ito sa iyo, ito ay hindi isang [? chamad?] isyung ito, ito ay hindi isang bug mo ipinakilala sa pamamahagi ng code. Napagtanto lamang Para sa Iyong Impormasyon - ito ay isang uri ng plan Z - na ang huling beses na ginamit namin ang problemang ito at itakda namin ang bumangga sa mga katulad na mga isyu, mayroong isang linya ng code sa service.js na mahalagang ito ay, na nagsasabing, lumiko sa mga gusali. At gumagana ang mga iyon sa paligid ng huling beses namin Ginawa ito sa, muli, mga kaso kung saan sulok mag-aaral lamang ay hindi makuha ang darn bagay na magtrabaho ay baguhin ang totoo sa hindi totoo na sa isang linya ng code. At makikita mo ito kung ikaw ay naghanap sa pamamagitan ng service.js. Hindi ko inirerekomenda ito dahil kalooban mo lumikha ng pinaka-baog landscape ng Cambridge, Massachusetts. Ito ay literal na patagin ang iyong mundo upang ang lahat ng nakikita mo ay ang mga pagtuturo Fellows at siyempre assistants sa sa abot-tanaw at walang mga gusali. Ngunit Napagtanto para sa anumang dahilan ang Google Earth plug-in ay tila pa rin upang maging maraming surot sa isang taon mamaya, kaya ito maaaring mabigo ang iyong i-save. Kaya sa halip na resort sa luha, resort upang i-off ang mga gusali kung alam mo ito ay ang plug-in na hindi cooperating sa iyong Mac o PC. Ngunit, ito ay muli huling resort kung sigurado kang hindi ito isang bug. Kaya ang Hackathon. Ang isang pares ng mga teaser lang upang mabigyan ka ng nabigla. Nagkaroon kami ng lubos ng ilang mga RSVP. At lamang upang magpinta ng isang larawan ng kung ano ang Naghihintay, naisip ko na gusto kong bigyan ka ng ilang isipin ang segundo ng imahe mula sa nakaraang taon. [Musika] David J. MALAN: Maghintay, oh. Namin kahit na mayroon ang aming literal CS50 shuttle. [Musika] David J. MALAN: Kaya na kung ano ang naghihintay sa ka sa mga tuntunin ng Hackathon. At ito ay magiging isang pagkakataon, upang maging malinaw, hindi upang simulan ang iyong panghuling mga proyekto ngunit upang magpatuloy sa pagtatrabaho sa ang iyong huling proyekto sa tabi ng mga kaklase at mga kawani at ng maraming pagkain. At muli, kung ikaw ay gising sa 05:00 isasaalang-alang namin sa iyo pababa ng kalsada sa IHOP. Ang CS50 patas, samantala, ay ang rurok para sa buong klase kung saan makikita mo dalhin ang iyong mga laptop at mga kaibigan, baka pa pamilya sa isang room sa campus sa kalye upang itanghal ang iyong mga proyekto sa mga laptop, sa taas mga talahanayan tulad nito na may maraming pagkain at mga kaibigan at musika sa background, pati na rin ang aming mga kaibigan mula sa industriya. Kumpanyang tulad ng Facebook at Microsoft at ng Google at Amazon at bunches ng iba pa upang kung interesado sa lamang pagdinig tungkol sa tunay na mundo o nakikipag-chat sa mga tao tungkol sa tunay na mundo internship o full time na mga pagkakataon, alam na ang ilan sa aming mga kaibigan mula sa industriya ay magiging doon. At isang pares ng mga larawan ng aming makakaya magpinta dito ay ang mga sumusunod. [Musika] David J. MALAN: Lahat ng karapatan. Kaya na pagkatapos ay ang CS50 patas. Kaya natin ngayong magpatuloy upang sabihin sa isang kuwento na talagang ay magbigay ng kapangyarihan sa iyo sana para sa mga bagay tulad ng pangwakas na proyekto. Kaya isa sa ilang maliit na mga bagay sa iyong mga binhi isip, alinman sa para sa huling proyekto o lamang sa mas pangkalahatang para sa mga proyekto na maaari kang magpasya upang matugunan pagkatapos Siyempre ang, ang mga ito ay ang lahat ng dokumentado sa manual.cs50.net kung saan ang CS50 manu-manong kung saan mayroon kaming ng maraming diskarte dokumentado. At ito lamang ang shorthand notation para sa na nagsasabi na may umiiral sa mundo mga bagay na tinatawag na SMS na mag-email gateway na ito, na kung saan ay isang magarbong paraan ng sinasabi, mayroong mga server sa mundo na malaman kung paano i-convert ang mga email upang mga text message. Kaya kung para sa iyong huling proyekto na nais mong upang lumikha ng isang uri ng mga mobile na may temang serbisyo na nagbibigay-daan sa iyo upang alertuhan mga kaibigan o mga user sa mga kaganapan sa campus o kung ano ang almusal sa Hall D na gabi o anumang naturang alerto tampok, malaman na ito ay simpleng bilang pagpapadala ng isang email bilang may PHPMailer saan ka maaaring na ginamit para sa pset7 o nakita natin Panandalian sa isang linggo o kaya nakaraan, upang address tulad nito. At sa katunayan maaari mong teksto ipagpalagay na ito ang iyong mga kaibigan ay may isang walang limitasyong texting plano at hindi mo nais na singilin ang mga ito $ 0.10. Ngunit kung sa iyo ng email sa iyong kaibigan sino ang kilala mo na magkaroon ng Verizon o AT & T gamit ang Gmail at lang ang pagpapadala nito sa ang kanilang mga numero ng telepono sa anumang mga sub domain ay mayroong, natanto Magpapadala ng text message. Ngunit ito ay isa sa mga bagay na maging maingat ng. Kung awitin iyo sa pamamagitan ng CS50 ng nakaraang taon video Sa tingin ko, isang kasuklam-suklam, kasuklam-suklam, kasuklam-suklam bug ako ay nagsulat sa code napunta sa pagpapadala tungkol sa 20,000 text mabuhay mga mensahe sa aming mag-aaral sa klase. At lamang dahil may napansin na sila ay nakakakuha ng maramihang mga teksto mensahe mula sa akin ginawa ko ang kakayahan upang maabot ng Control C mabilis at itigil na ang proseso. Control C, isipin ang mo, ay iyong kaibigan sa mga kaso ng mga walang-katapusang loop. Kaya mag-ingat ang lakas lang namin ang ibinigay na sa iyo sa halip irresponsibly, karamihan malamang, batay sa aking sariling karanasan. Ngunit iyon sa web at may naging doon para sa ilang oras. Ayos lang. Kaya textmarks.com. Kaya ito ay isang website. At mayroong bunches ng mga iba out doon pati na talaga namin ang ginamit bilang isang klase para sa taon upang magawang upang makatanggap ng mga text message. Sa kasamaang palad, ang pagpapadala ng mga text na mensahe ay dali ng pagpapadala ng mga email na tulad ng. Tumatanggap ang isang maliit na mas mahirap, lalo na kung gusto mong magkaroon ng isa sa mga sexy maikling code na lamang lima o anim na digit ang haba. Kaya halimbawa, para sa mga taong ka nakapunta magagawang magpadala ng isang text message - at sa iyo Maaaring subukan ito pati na rin - sa 41,411. At iyon ang numero ng telepono para sa ang partikular na startup. At kung ka magpadala ng mensahe sa 41,411 - Kukunin ko na lang isulat ito up dito, kaya 41,411 - at pagkatapos ipadala ang mga ito ng isang mensahe i SBOY para Shuttle Boy. At pagkatapos i-type sa isang bagay tulad Mather patyo sa loob. Kaya mong ipadala na text message sa na numero ng telepono. Sa loob ng ilang segundo ay dapat kang bumalik isang tugon mula sa CS50 Shuttle Boy serbisyo, kung saan ay ang shuttle pag-iiskedyul ng software na mayroon kaming out doon sa web para sa ilang oras. At ito ay tumugon sa mga sa iyo sa pamamagitan ng text message. Dahil kung ano ang aming nagawa na bilang isang klase, bilang isang programmer, ay upang sumulat ng software, configure ang aming libreng mga account na may teksto mark upang makinig para sa mga text na mensahe na ipinadala sa SBOY sa numerong iyon. At ano ang kanilang ginagawa ay ipasa ang mga teksto mensahe sa aming PHP-based na website bilang HTTP parameter sinasabi, dito. Ang gumagamit na may ganitong numero ng telepono nagpadala sa iyo ito ng text message. Gawin ito sa kung ano ang gusto mo. Kaya kami ay sumulat ng ilang software na sa pagtanggap ng isang string tulad SBOY Mather patyo sa loob, kami parse ito. Nalaman namin kung saan ang mga puwang ay sa pagitan ng mga salita. At kami bilang isang klase magpasya kung paano tumugon sa mga iyon. At kung susubukan mo na ngayon, halimbawa, dapat mong makita, sa pamamagitan ng pagtugon sa loob ng isang Makalipas ang ilang segundo, ng susunod na ilang mga shuttle pagpunta Mather mula sa patyo sa loob kung mayroon man. At mayroong iba pang hinto. Maaari kang mag-type sa Boylston o ibang tulad ng Humihinto sa campus, at dapat ito makilala ang mga salitang iyon. Kaya parse.com. Ito ay isa pang serbisyo na aming nakapunta pagturo ng ilang mga mag-aaral para sa huling proyekto na ay kahanga-hanga in na ito ay libre para sa isang makatuwirang tagal ng paggamit. At kung pumunta ako sa parse.com makikita mo na ito ay isang alternatibo sa talagang nagkakaroon ng isang bagay tulad ng ang iyong sariling MySQL database. At lantaran, ito lamang ay uri ng mesmerizing. Ito ay kung ano ang nasa loob ng kahit na ulap sa isang maulap araw. Kaya parse.com ay nagpapahintulot sa iyo na gawin ang isang tungkos ng mga kagiliw-giliw na mga bagay-bagay. At mayroong iba pang mga alternatibo upang ito out doon. Halimbawa, maaari mong gamitin ang mga ito bilang iyong back end database. Kaya hindi mo kailangang magkaroon isang kumpanya ng web hosting. Hindi mo kailangang magkaroon isang MySQL database. Maaari mong gamitin sa halip ang kanilang likod dulo. Kung gumawa ka ng isang mobile na proyekto para sa Android o iOS o mga katulad, alam na Mayroon bang umiiral mga bagay tulad ng push serbisyo sa gayon maaari mong itulak mga alerto sa iyong mga kaibigan o iyong mga gumagamit 'tahanan screen. At pagkatapos ng grupo ng iba pang mga mga tampok pati na rin. Kaya kung mayroon kang interes, tingnan ang mga website at mga website tulad ng mga ito upang makita lamang kung gaano karaming mga iba pang mga tao ' balikat maaari mong tumayo sa upang gumawa ng talagang cool na software ng iyong sariling. Ngayon, sa mga tuntunin ng pagpapatunay, ng FAQ, ay paano mo talaga ginagarantiya na ang iyong mga gumagamit ay mga tao sa campus, Harvard mag-aaral o guro o kawani? Kaya CS50 ay may sariling authentication serbisyong tinatawag na CS50 ID. Pumunta sa URL na iyon at maaari mong limitahan ang iyong website sa sinuman na may isang Harvard ID, halimbawa. Kaya alam na maaari naming panghahawakan na. Ikaw guys hindi dapat sa negosyo ng sinasabi, ano ang iyong Harvard ID? Ano ang inyong Harvard PIN? Hayaan akong ngayon gawin ang isang bagay na may ito. Gagawin namin ang lahat ng iyon. At kung ano bibigyan ka namin pabalik ay pangalan ng isang tao at email address, ngunit hindi anumang bagay sensitive. Ng isang app sa isang mobile device, maaari itong maging ginawa upang gumana sa isang mobile na aparato, ngunit hindi ito lubos na dinisenyo para sa na. So makakapunta ka gumagastos ng di walang kuwenta tagal ng oras paggawa nito. Kaya Gusto ko hinihikayat ang na ruta para sa ngayon. Ito ay talagang inilaan para sa web based na application. Kaya web hosting. Kaya kung hindi mo pa nakita sa homepage ang kurso ni - at narito ang kung saan magsisimula kaming isang kuwento - web hosting ay tungkol sa pagbabayad para sa karaniwang isang serbisyo, i-host sa isang server pag-aari sa pamamagitan ng ibang tao sa web na may isang IP address, at pagkatapos mong ilagay ang iyong mga sa website nito. At sila ay karaniwang magbibigay sa iyo ng email mga account at mga database at iba pang mga tampok tulad. Malaman na kung hindi mo nais na talaga magbayad para sa naturang, pumunta sa URL na iyon doon at CS50 ay talagang isang non-profit account na maaari mong gamitin upang talagang hindi magkaroon http://project sa loob ng appliance para sa iyong huling proyekto. Kung talagang gusto mo itong maging isang bagay gaya, isawyouharvard.com, maaari kang bumili na pangalan ng domain - bagaman hindi na partikular na isa - at pagkatapos ay maaari kang pumunta tungkol sa pagho-host ito sa isang pampublikong web server tulad kami makakapag-alok sa iyo sa pamamagitan ng guys dito. At sa katunayan kung hindi maalam, kung hindi ka nakapunta sa isawyouharvard.com, isa, pumunta doon. Ngunit dalawa, alam na iyon ay isang batang pangalan ng babae sa pamamagitan ng Tej Upang Toor Masyadong dalawang taon na ang nakakaraan, tatlong taon na ang nakakaraan, na naging isang CS50 alumni na nangyari sa isang araw o dalawa bago ang CS50 patas na ipinadala out ng isang email sa kanyang listahan bahay-mail at voila. Dalawang araw mamaya sa pamamagitan ng CS50 patas, siya ay nagkaroon daan-daang mga gumagamit sa lahat ng gumagapang sa bawat isa sa kanyang website at sinasabi kung paano nila ito nakita siya o sa kanya sa campus. Kaya iyon ang isa sa CS50 ni paborito mga kwento ng tagumpay mula sa isang CS50 huling proyekto. Kaya paano mo pumunta tungkol sa paglalagay ng isang website gusto na sa internet? Well, mayroong ilang mga tulad sangkap dito. Kaya isa, mayroon kang bumili ng isang domain name. May mga bunches ng mga lugar sa ang mundo mula sa kung saan maaari kang bumili ng isang domain name. At halimbawa, isa na inirerekumenda namin lamang dahil ito ay popular at ito ay murang ay tinatawag na namecheap.com. Ngunit maaari kang pumunta at godaddy.com dose-dosenang mga iba out doon. Maaari mong basahin hanggang sa mga review. Ngunit para sa pinaka-bahagi ito ay hindi mahalaga mula sa kanino mo bumili ng isang domain name. At iba-iba sila sa presyo at mag-iba sila sa suffix. Ang suffix tulad ng. Com,. Net, . Org,. IO,. Tv, mga talaga mag-iba sa presyo. Ngunit kung gusto naming gawin ang isang bagay tulad ng cats.com namin maaaring pumunta sa website na ito, i-click ang Search. Siguro isa ginagawa ito. Ngunit sa malas, catsagainst.com ay magagamit. pluscats.com ay magagamit. Lovecats, catscorner, dampcats.net. Ang lahat ng ito sana palsipikado random na binuong. Kung nais mong cats.pw, $ 1500 lamang, na kung saan ay isang bit mabaliw. Kaya may isang taong talagang snatched up lahat ang pusa kaugnay na mga pangalan ng domain para dito iiba-iba ng presyo. Bilang isang tabi, sabihin makita. Sino ang may cats.com? Malaman na sa iyo guys mayroon sa iyong pagtatapon walang kinikilingan sopistikadong utos ngayon. Tulad ng maaari kong i-type literal sino ang cats.com? At dahil sa ang paraan ang internet ay nakaayos ang maaari mong talagang makita kung sino Nairehistro na ito. Sa malas ang taong ito ay [hindi marinig] gamit ang proxy service. Kaya kung sinuman ang nagmamay-ari ng cats.com hindi gusto mundo ang malaman kung sino sila. Kaya nilang nakarehistro sa pamamagitan ng kung ang ilang mga random na serbisyo sa privacy. Ngunit minsan mo talaga makakuha ng mga aktwal na mga may-ari. At ito ay upang sabihin, lalo na kung ikaw ay gawin ang ilang mga startup at ikaw talagang gusto ang ilang mga pangalan ng domain at ikaw ay bayaran ng ibang tao para sa ito, maaari mong malaman kung contact impormasyon sa na paraan. Ngunit din ay kagiliw-giliw na ito. Hayaan akong mag-scroll pataas upang ang bahaging ito. Kaya ito ay ang parehong output. At ito ay hindi kaakit-akit lamang. Kaya tila cats.com ay maaaring maging para sa iyo ang tamang presyo. Ngunit kung ano ang kawili-wiling dito ay ang pangalan ng server - ito ay ang kabuuang pag-abuso sa kung ano ang isang pangalan server ay dapat na maging - ang iyong pangalan server ay hindi dapat na maging thisdomainforsale.com. Kung kami talaga pumili ng isang bagay tulad ng - sabihin pumili ng isang bagay ng kaunti pa tulad ng lehitimong, sino ang google.com, at mag-scroll pataas dito. Kaya dito - kung ano ang nangyari doon? Kawili-wili. Higit pa sa kung sino ang - sabihin panatilihin itong mas mababa ang key. Sino ang mit.edu? OK. Ito ay kapaki-pakinabang. Kaya ito ay kung ano ako ay inaasahan. Lehitimong paggamit ng serbisyo DNS. Pangalan ng server dito ipahiwatig ang mga sumusunod na. Ito ay MIT ng paraan ng sinasabi, kailanman isang tao sa mundo, kung saan man sila ay, sa mga uri mit.edu at hit ang Enter, ang iyong laptop, kung Mac o PC, ay sa paanuman kalaunan malaman na ang mga tao sa mundo na alam kung ano ang IP address ay para sa mit.edu o anuman sa mga sub domain sa mit.edu o anuman sa mga server na ito dito - at ito talaga Mukhang MITs imprastraktura ay medyo malakas tulad ng iyong inaasahan. Mayroon silang maraming mga server pangalan na kung saan ay mabuti para sa kalabisan. At sa katunayan, tila sila na maging globally ipinamamahagi sa buong mundo. Ang isang bungkos ng mga mukhang sa US, isang pares sa Asya, isa sa Europa, dalawang sa ibang lugar. Ngunit ang punto dito ay na ang DNS na kami ay pagkuha para sa ipinagkaloob at sa pangkalahatan ay inilarawan bilang isang malaking mesa Excel na may mga IP address at domain mga pangalan ay talagang walang kinikilingan sopistikadong hierarchical serbisyo upang sa mundo mayroong talagang isang tiyak na numero ng mga server na mahalagang malaman kung saan lahat ng. coms ay o lahat ng ang. lambat ay, ang lahat ng mga . Org ay, at iba pa. Kaya kapag ikaw sige at bumili ng isang domain pangalan mula sa isang lugar tulad ng Pangalan Murang o Pumunta Daddy o anumang iba pang mga website, isa sa ang mahalagang hakbang na kailangan mong gawin mo, kung gagawin mo ito kahit na para sa iyong mga panghuling proyekto, ay sabihin ang registrar mula kung kanino ka bumibili ng domain pangalan, sino sa mundo alam ng iyong IP address ng website, na nag- ang iyong pangalan mga server ay. Kaya kung gumagamit ka ng, halimbawa CS50 ni hosting account - mangyari namin upang magkaroon ang account na ito sa pamamagitan ng dreamhost.com na kung saan ay isang sikat na web hosting kumpanya - sila ay sabihin sa iyo na dapat mong bumili sa iyong domain at sabihin sa mundo na pangalan ng server ng iyong domain ay ns1.dreamhost.com, ns2.dreamhost.com, at ns3.dreamhost.com. Ngunit iyon lamang ito. Ang pagbili ng isang domain name ay nangangahulugan na nagbibigay sa kanila ang pera at pagkuha ng pagmamay-ari ng domain, ngunit ito ay mas katulad isang rental bagaman. Makukuha mo ito para sa isang taon at pagkatapos nilang kuwenta recurringly mo para sa natitirang bahagi iyong buhay hanggang sa kanselahin ang pangalan ng domain. At pagkatapos mong sabihin sa kanila kung sino ang pangalan ng mga server. Ngunit pagkatapos ay tapos ka na sa sa iyong registrar. At mula doon makikita mo lamang makipag-ugnayan sa ang iyong kumpanya ng web hosting, na sa CS50 ng kaso ay magiging DreamHost. Ngunit muli, mas dokumentasyon ay magiging ibinigay sa iyo kung magpasya kang pumunta na ruta. Kaya kung gagawin mo ito pagkatapos ng kurso ni dulo, kailangan lang sa Pag-Google web hosting kumpanya ay i-up ang libu-libong ng mga pagpipilian. At Gusto ko sa pangkalahatan ay hinihikayat ka upang magtanong mga kaibigan na maaaring na ginamit ng kumpanya bago kung inirerekumenda sila ang mga ito at nagkaroon ng isang mahusay na karanasan. Dahil mayroong maraming fly sa pamamagitan ng gabi web hosting ng mga kumpanya, tulad ng isang tao sa kanyang basement sa isang server na may IP address. Siya ay may ilang dagdag na RAM at hard disk espasyo at lamang nagbebenta ng web hosting mga account kahit na walang paraan na server ay maaaring pangasiwaan ang daan-daang gumagamit o libu-libong mga gumagamit. Kaya Napagtanto makakakuha ka ng kung ano ang babayaran mo para sa. Para sa lubos ng isang habang para sa aking personal na bahay page - at ito ay lubos na katanggap-tanggap dahil ako ay, i, dalawang mga bisita sa isang buwan - Ako ay nagbabayad, tulad ng, $ 2.95 sa isang buwan. At ako ay medyo sigurado ito ay sa basement ng isang tao. Ngunit muli, hindi mo na makakuha ng kinakailangang anumang garantiya ng uptime o kakayahang sumukat. Kaya muli, karaniwang naghahanap ka sa isang bagay na higit sa na. Well, kung ano ang tungkol sa SSL? Kaya kung ano ang SSL na ginagamit para sa? Natin ngayon simulan upang makaiwas sa mga direksyon ng seguridad at mga bagay na ay maaaring makapinsala sa amin. Lalo na bilang mo venture out sa iyong sariling. Ano ang SSL, o kung ano ang SSL na ginagamit para sa? Seguridad, OK. Kaya ito ay ginagamit para sa seguridad. Ano ang ibig sabihin na? Kaya ito ay nakatayo para sa Secure Sockets Layer. At ito ay ipinapahiwatig ng isang URL na nagsisimula sa https://. Marami sa atin ay marahil hindi kailanman na-type https://, ngunit madalas kang makita na ang iyong browser ay nai-redirect mula sa HTTP HTTPS kaya ang lahat ng bagay na may pagkatapos ng naka-encrypt. Para sa Iyong Impormasyon, gamit ang SSL ay karaniwang nangangailangan na ang mayroon kang isang natatanging IP address. At karaniwang upang makakuha ng isang natatanging IP address kailangan mong magbayad ng isang web hosting kumpanya ng ilang mga dolyar higit pa sa bawat buwan. Kaya mapagtanto na ito ay napaka-madali nagpatupad ng mga araw sa pamamagitan ng pagbili ng isang IP address at sa pamamagitan ng pagbili ng kung ano ang tinatawag na isang SSL certificate. Ngunit mapagtanto na ito ay dumating sa ilang dagdag na bayad. At, bilang susubukan naming pagkatakot sa loob lamang ng bit na ito, hindi kahit na kinakailangan 100% proteksiyon ng kahit anong ito ay na sinusubukan mong protektahan. Kaya para sa seguridad, Gusto ko naisip ko gawin uri ng isang random na segue dito. Tulad ng maaaring alam mo mula sa CS50 ng panayam video, ang aming koponan ng produksyon ay naging isang fan bilang Mayroon akong ng pagkuha talagang maganda photography ng campus, at panghimpapawid photography pinaka-kamakailan. Kung sakaling tumingala at nakita mo isang bagay na lumilipad na may isang maliit na kamera, maaari itong aktwal na maging CS50. At ko lang naisip kong ibahagi minutong ng ang ilan sa mga footage koponan ang may nakalap, lalo na bilang masaya naming upang ng tagsibol semestre at mga susunod na tag-lagas. Kung alinman sa kang magkaroon ng isang pambihirang kakayahan para sa photography, Videography, kami ay pag-ibig upang makakuha ng kasangkot sa iyo sa likod ng mga eksena. Ngunit higit pa sa mga detalye sa isang linggo. [Musika] David J. MALAN: Ginagawang out mayroong isang miniature golf course sa tuktok ng ang stadium na namin alam tungkol sa. [Musika] David J. MALAN: Maaari mong makita ang Binabalangkas ng gumiging doon. [Musika] David J. MALAN: Ang pinakamagandang bahagi dito ay, panoorin ang yumayagyag sa kaliwa. [Musika] David J. MALAN: Ang isa pang halimbawa ng kung ano ang Maaari mong gawin sa mga teknolohiya na lamang tangentially, lantaran, may kinalaman sa seguridad. Ngunit naisip ko na iyon ay magiging isang mas masayang paraan ng lang sinasabi, seguridad. Kaya sabihin makita kung hindi namin maaaring matakot ka guys ngayon na may hindi lamang ng kaunti ng ilang pagbabanta, ngunit din ng isang nakapailalim na pag-unawa sa kung ano ang mga banta ay kaya na sumusulong maaari mong magpasya kung paano at kung upang ipagtanggol ang ang iyong sarili laban sa mga bagay na ito at sa kahit na maging maingat sa mga ito bilang mo gumawa ng mga desisyon bilang sa kung o hindi upang magpadala ng mga email na iyon, man o hindi na mag-log sa website na iyon, kung o hindi upang na gamitin ang Wi-Fi access cyber cafe ni punto kaya na alam mo kung ano ang banta ay sa katunayan sa paligid mo. Kaya Jonathan tinutukoy ng isang bagay i ito sa Lunes. Siya ay nagkaroon ng isang window ng screen shot. Ang isang ito ay ng isang Mac. Paano marami sa inyo nag-install sa software sa iyong Mac o PC? Malinaw na sa lahat. Paano marami sa inyo na ibinigay magkano naisip i-type sa iyong password kapag sinenyasan? Ibig kong sabihin, kahit gawin ko hindi, lantaran. Kaya isang pares ng sa amin ang mga magandang sa pagiging paranoyd. Subalit isaalang-alang kung ano ang ikaw ay talaga ginagawa dito. Sa isang tipikal na Mac o PC mayroon kang isang administrator account. At karaniwang ikaw ang isa lamang gamit isang laptop na hindi bababa sa mga araw na ito. Kaya ang iyong account, o Malan JHarvard o anumang ito ay, ay ang administrator account. At kung ano ang ibig sabihin nito ay mo pa ng root access sa iyong computer. Maaari mong i-install ang anumang bagay na gusto mo, tanggalin ang anumang nais mo. At karaniwang mga araw na ito, dahil sa napetsahang disenyo ng mga desisyon mula sa taon na ang nakaraan, ang paraan ng karamihan ng software ay makakakuha ng naka-install ay bilang isang administrator. At kahit na ang iyong Mac o PC ay may hindi bababa sa nakuha ng sapat na smart sa ibabaw ng taon sa mga pinakabagong anyo ng Mac OS at Windows upang hindi patakbuhin ang iyong mga username sa pamamagitan ng default na bilang administrator, kapag mong i-download ang ilang mga bagong programa off ang internet at subukan upang i-install ito, marahil ka ng pagpunta upang ma-prompt para sa iyong password. Pero ang catch ay sa puntong iyon, ikaw ay Literal na handing ang mga susi ng iyong computer na sa paglipas ng sa kung anong random programa mo lang download at na nagpapahintulot ito upang i-install kahit ano ito ay nais. At bilang Jonathan alluded sa, Napagtanto na maaaring sabihin na ito ay nais na i-install ang iyong software na mahalaga sa iyo tungkol, Spotify o iTunes o anumang ito ay sinusubukan mong i-install. Pero literal ka nagtitiwala sa may-akda o mga may-akda ng software sa lamang gawin kung ano ang programa ay dapat na gawin. Ngunit doon ay ganap na walang pagtigil ng karamihan ng mga program sa pinaka- mga operating system mula sa pagtanggal ng mga file, mula sa pag-upload ang mga ito sa ilang mga kumpanya website, mula sa trolling sa paligid, para sa mga bagay-encrypt. At muli, namin ang uri ng built isang buong imprastraktura sa ibabaw ang taon sa pagtitiwala. At kaya mapagtanto na lamang ka nakapunta nagtitiwala random na mga tao at random mga kumpanya para sa pinaka-bahagi. At Jonathan alluded sa masyadong, paminsan-minsan mga kumpanya ang kanilang mga sarili ay isang uri ng sadyang nakakahamak na, ang lahat ng karapatan? Sony nahuli ng maraming flack ilang taon ang nakalipas sa pag-install kung ano ang tinatawag na rootkit kit sa mga tao ng mga computer walang sa kanilang kaalaman. At ang diwa ng ito ay na kapag nag- bumili ng CD para sa Halimbawa na sila ay hindi gusto mong magagawang kopyahin o punitin ang musika off ng, CD ang gagawin i-install, nang wala ang iyong pag-alam, isang rootkit sa iyong computer. Rootkit lang ang ibig sabihin ng software na tumatakbo bilang administrator na potensyal na ang masamang bagay. Ngunit kabilang sa mga bagay na ito bagay ay ito ay nagtago mismo. Kaya ang ilan sa ikaw ay maaaring maging medyo savvy sa iyong computer at alam mo na, na rin, ako maaari lamang buksan ang Task Manager o ang Activity Monitor at maaari ba akong tumingin sa lahat ng arcanely pinangalanang mga programa na tumatakbo. At kung anuman mukhang kahina-hinala Kukunin ko na lang patayin ito o tanggalin ito. Ngunit iyon ang rootkit ang ginawa. Ito ay lubos na sinabi, kung tumatakbo ang Gawain Manager, huwag ipakita ang iyong sarili. Kaya ang software ay naroon. At lamang kung ikaw talaga, talagang tumingin matapang na maaari mong kahit na mahanap ito. At ito ay tapos na sa pangalan ng kopya proteksyon. Ngunit lamang isipin kung ano ang magagawa ang nagawa kung hindi man. Ngayon, sa mga tuntunin ng pagprotekta sa iyong sarili. Ang isang pulutong ng mga website ay kamangha-mangha mapagbigay-loob sa na sila ay ilagay ang mga padlock icon sa kanilang homepage na ay nangangahulugan na ang website ay ligtas. Ito ay mula sa bankofamerica.com ito umaga. Kaya kung ano ang maliit na icon ng kandado may ibig sabihin sa tabi ng Mag-sign In pindutan? Talagang wala. Ito ay nangangahulugan na may isang taong nakakaalam kung paano gamitin Photoshop upang gumawa ng isang larawan ng isang icon na padlock. Nagustuhan masyadong literal, ang katotohanan na ito doon ay sinadya upang maging isang positibong magsenyas sa user tulad ng, ooh, secure na website. Dapat ko pinagkakatiwalaan ang website na ito at ngayon type sa aking username at password. At ito ay para sa maginoo taon, bilang kamakailan bilang na ito umaga. Subalit isaalang-alang ang mga gawi na ito ay nakukuha sa amin. Isaalang-alang ang implicit mensahe na ang lahat sa mga ito ang mga bangko sa kasong ito ay naging pagpapadala sa amin ng maraming taon. Kung makita mo na padlock, pagkatapos ay makamtan. Ang lahat ng mga karapatan? Kaya kung paano maaari mong abusuhin na sistema ng tiwala kung ikaw ang masamang tao? Maglagay ng padlock sa iyong website, at lohikal na, ang mga gumagamit ay naging condition para sa taon upang ipalagay padlock nangangahulugan secure. At maaari itong aktwal na maging ligtas. Maaaring mayroon kang isang secure na kamangha-mangha SSL HTTPS koneksyon sa isang pekeng website. com. At walang ibang tao sa mundo ang makakakita na ikaw ay tungkol sa upang ibigay sa kanya ang iyong username at password sa iyong account. Ito bagaman, marahil, ay isang kaunti pa reassuring. Kaya ito ay isang screen shot ng tuktok ng aking browser na ito sa umaga bankofamerica.com. At mapansin dito masyadong namin magkaroon ng isang icon na padlock. Ano ang ibig sabihin sa kontekstong ito sa Chrome nang hindi bababa? Kaya ito ngayon ay gumagamit ng SSL. Kaya ito ay talagang isang mas mahusay na bagay. At ang katunayan na ang Chrome ay gumagawa ito berde ay sinadya upang gumuhit ng aming pansin upang ang katotohanan na ito ay hindi lamang sa SSL. Ito ay isang kumpanya na may isang taong out doon ay na-verify ay talagang bankofamerica.com. At na nangangahulugan na ang Bank ng Amerika, kapag bumibili ng kanilang tinatawag na SSL sertipiko, mahalagang malaki random, medyo random na numero na ipatupad seguridad para sa kanila, sila ay naging na-verify sa pamamagitan ng ilang mga independiyenteng mga third partido na nagsasabing, yep. Ito ay talagang ang CEO ng Bank ng America sinusubukang bumili ng sertipiko. Chrome ay samakatuwid pinagkakatiwalaan na certification kapangyarihan at sabihin sa berde, ito ay bankofamerica.com. At Bank of America lamang ay babayaran ng ilang daang dolyar para sa na o ilang thousand na taliwas sa isang ilang sampu-sampung dollars. Ngunit dito masyadong, kung gaano karaming mga mayroon kang kailanman sumusunod na anumang naiiba dahil ang URL sa iyong browser ay berde sa halip ng itim? I-right? Kaya isang pares ng sa amin. At iyon ang mahusay na maging paranoyd. Ngunit kahit na pagkatapos, doon sa iyo kung sino kahit na mapansin mga bagay na ito, gawin mo talaga ihinto ang pag-log sa isang secure na kung hindi man ay website kung ang URL ay hindi berde? Ang lahat ng mga karapatan, kaya malamang na hindi, tama? Hindi bababa sa karamihan sa atin, kung ito ay hindi berde, pinaka-malamang lamang ka ng pagpunta na maging tulad ng, ano. Nagustuhan, gusto kong mag-log in sa website na ito. Iyon ang dahilan kung bakit ako dito. Pupunta ako sa mag-log in gayunman. Bilang isang tabi, ang Chrome ay isang maliit na mas mahusay na tungkol sa ito. Subalit mayroong maraming mga browser tulad ng Firefox halimbawa, ng hindi bababa sa para sa ilang panahon, kung saan na padlock icon ay, maaari mong aktwal na ilagay ang anumang icon ng iyong sariling. Hayaan akong makita kung ano ang pinakabagong bersyon ng Firefox kamukha. Kaya kung pumunta kami sa CS50.net. OK, kaya nila nakuha ng mas mahusay na pati na rin. Ano ang browser na ginamit upang gawin ay i, narito halimbawa [? SAAS kung?] Crest up dito. Iyan ang tinaguriang mga paboritong icon para sa isang website. Taon na ang nakakaraan - talagang hindi na matagal na ang nakalipas - na maliit kalasag maaaring naging karapatan dito sa tabi ng URL. Dahil likas na kakayahan ng ilang nagpasya na ito Gusto lang magmukhang medyo pangunahing uri upang magkaroon ang iyong mga graphical na logo karapatan sa tabi ng iyong URL. At disenyo matalino, na talagang ay medyo nakakahimok. Kaya kung ano mismo ang masamang tao simula ginagawa? Sila ay nagsimula sa pagbabago ng kanilang mga paboritong mga icon, o ang kanilang mga default na icon para sa isang homepage upang maging hindi isang gulugod ngunit isang padlock, na kung saan ay nagkaroon talagang walang kahulugan. Bukod sa kanilang mga paboritong icon ay isang padlock ito ay walang indications ng seguridad. Kaya ang lesson dito ay mga isang pares tingin ko. Ang isa ay na mayroong ilan talaga well intentioned mga mekanismo para sa pagtuturo sa amin tungkol sa mga gumagamit kahit na seguridad kung ikaw ay hindi kahit na malaman kung ano ang berde nilalayong o kahit anong HTTPS nilalayong. Ngunit kung ang mga mekanismo kumuha sa amin sa ang masamang ugali ng mga nagtitiwala website kapag nakita namin ang mga positibong signal, sila ay napaka madaling inabuso bilang nakita natin sandali lamang ang nakalipas na may isang bagay walang isip na tulad nito. Kaya session-hijack ng pagdating sa maglaro, bilang namin sinabi bago, may cookies halimbawa. At ano ang talagang ibig sabihin nito? Well may session-hijack na ito ay ang lahat ng tungkol sa pagnanakaw ng mga cookies ng isang tao. Kaya kung ako buksan up ang Chrome dito, para sa Halimbawa, at ko bang buksan up ang Inspector down na dito at pumunta ako sa Network ng Tab - at ginawa namin ito bago - at pumunta ako sa isang bagay tulad ng http://facebook.com ipasok, isang kabuuan tungkos ng mga bagay-bagay napupunta sa buong screen dahil sa lahat ng mga larawan at CSS at JavaScript na file. Pero kung tumingin ako sa isang ito dito mapansin na ang Facebook ay sa katunayan planting isa o higit pang mga cookies sa aking browser dito mismo. Kaya ang mga ito ay lubos na ang kamay stamp na kumatawan sa akin. At ngayon sana ang aking browser kalooban ipakita ito muli at muli kapag revisiting website na iyon. Ngunit iyon lamang ay ligtas, sinabi namin isang ilang linggo na ang nakaraan, kung gumagamit ka ng SSL. Ngunit kahit na SSL mismo maaari makompromiso. Isaalang-alang pagkatapos ang lahat ng mga paraan ng SSL mga gawa. Kapag ang iyong browser kumokonekta sa isang malayuang server sa pamamagitan ng https://, mahaba kuwento maikli, cryptography ay kasangkot. Ito ay hindi kasing simple ng Caesar o Visionaire o kahit na des, des mula sa isang habang pabalik sa pset2. Ito ay mas sopistikadong kaysa sa na. Ito ay tinatawag na pampublikong key cryptography. Ngunit talagang malaki at talagang random mga numero ay ginagamit upang pag-aagawan impormasyon sa pagitan ng punto A, mo, at point B, tulad ng facebook.com. Ngunit ang problema ay, kung gaano karaming sa atin muli kailanman uri sa https:// upang magsimulang aming website koneksyon sa ligtas na mode? Ibig kong sabihin, paano marami sa inyo kahit na uri http://facebook.com? Ang lahat ng mga karapatan, kung gagawin mo ito, i, kumusta. Hindi mo kailangang gawin iyon ngayon, tama? Ang browser ay malaman ito. Subalit ang karamihan sa amin gawin talaga i-type lamang facebook.com. Dahil kung ang aming ginagamit ng browser, ang browser nakuha na smart sapat na sa pamamagitan ng 2013 upang ipalagay kung gumagamit ka ng isang browser, i-type mo sa isang address, mo marahil ay gusto mo ito i-access ay hindi sa pamamagitan ng email o instant message. Sabihin mo HTTP at Port 80. Yaong mga convention na-ampon. Ngunit kung paano gumagana ang pag-redirect sa trabaho? Well, mapapansin kung ano ang mangyayari dito. Kung pumunta ako pabalik sa Chrome - at sabihin gawin ito sa incognito mode upang ang lahat ng aking mga mga cookie ay itinapon ang layo. At hayaan mo akong pumunta dito upang, muli, facebook.com. At sabihin makita kung ano ang mangyayari. Pagkuhang muli na ang unang kahilingan ay sa katunayan para lang sa facebook.com. Ngunit ano ang naging tugon na nakuha ko? Ito ay hindi isang 200 OK. Ito ay 300, o 301, na isang pag-redirect na nagsasabi sa akin upang pumunta sa http://www.facebook.com, na siyang kung saan Facebook ay nais sa akin upang pumunta. Ngunit pagkatapos ay kung tinitingnan namin ang susunod na hiling, at nasaksihan namin ito dati, mapansin kung ano ang kanilang pangalawang tugon ay. Sa partikular na gusto nila ako ngayon sa pumunta sa SSL bersyon ng Facebook. Kaya dito ay isang pagkakataon. Ito ay isang kamangha-mangha kapaki-pakinabang na tampok ng lang ang web at HTTP. Kung ang mga end user tulad ng Facebook ay nais sa akin upang manatili sa mga secure na bersyon ng kanilang mga website, mahusay. Sila ay pag-redirect ako para sa aking sarili. At kaya hindi ko na kailangang kahit na isipin ang tungkol na. Ngunit paano kung sa pagitan ng punto A at B, sa pagitan mo at Facebook, mayroong ilang mga masamang tao, mayroong ilang mga sistema administrator sa Harvard kung sino ang mausisa upang makita kung sino ang iyong mga kaibigan. O kaya mayroong ilang - taon na ang nakakaraan, ito ginagamit upang tunog mabaliw - ngunit mayroong ilang mga entity ng pamahalaan tulad ng ang NSA kung sino ang talagang interesado sa kung sino ka poking sa Facebook. Nasaan ang pagkakataon doon? Well, kaya hangga't ang isang tao ay may sapat na teknikal na savvy at magkaroon sila ng access sa iyong aktwal na network sa paglipas ng Wi-Fi o ilang mga pisikal na wire, kung ano ang maaari nilang gawin? Well, kung ang mga ito ay nasa parehong network bilang sa iyo at alam nila tungkol sa isang bagay TCP / IP at IP address at DNS at kung paano lahat ng mga gawa na, kung ano na tao sa gitna, kung ano na ang Pambansang Security Agency, ano ito maaaring, ngunit kung ano na entity lamang tumugon nang mas mabilis kaysa sa Facebook ang iyong HTTP na kahilingan at sabi, oh, Ako Facebook. Sige, at narito ang HTML para sa facebook.com. Computer ay medyo darn mabilis. Kaya maaari mong magsulat ng isang programa na tumatakbo sa isang server tulad ng nsa.gov na kapag ito nakakarinig ng kahilingan mula sa iyo para sa facebook.com, masyadong mabilis sa likod ng eksena ang nakakakuha ng real pagawa facebook.com isang perpektong [? esque?] ligtas SSL koneksyon sa pagitan ng NSA at sa pagitan ng Facebook, nakakakuha na HTML napaka ligtas para sa pahina ng pag-login, at pagkatapos ay ang NSA server ay tumutugon lamang sa iyo may isang login page para sa facebook.com. Ngayon kung paano marami sa inyo kahit na gusto mapansin na gumagamit ka ng Facebook paglipas ng HTTP pa rin sa puntong iyon dahil ikaw aksidenteng konektado sa nsa.gov at hindi Facebook? Ang mga URL na hindi nagbabago. Ang lahat ng ito ay tapos na sa likod ng mga eksena. Ngunit karamihan sa atin, aking sarili kasama, marahil ay hindi mapansin tulad ng isang menor de edad detalye. Kaya maaari kang magkaroon ng isang perpektong maisasagawa koneksyon sa pagitan mo at kung ano ang iyong Sa tingin ay Facebook, ngunit mayroong isang tinatawag nang gayon ang tao sa gitna. At ito ay isang pangkalahatang kataga para sa tao ayon sa sa gitna pag-atake kung saan mayroon kang ilang mga entity sa pagitan mo at point B na sa paanuman pagmamanipula, pagnanakaw, o panoorin ang iyong data. Kaya kahit SSL ay hindi walang kamali, lalo na kung ikaw ay tricked sa hindi pag-on ito sa dahil sa kung paano ang mga napapailalim na mekanismo talaga gumana. Kaya ang isang aralin ngayon pagkatapos ay masyadong ay kung talaga gustong maging paranoyd - at kahit dito may mga banta - dapat mo ba talagang simulan ang pagkuha sa ang ugali ng pag-type sa https://www ano pangalan ng domain mo talagang nagmamalasakit tungkol sa. At bilang isang bukod masyadong mayroong na isa pang may banta alang-alang sa session-hijack. Kadalasan noong una mong bisitahin ang isang website tulad ng facebook.com, maliban kung ang server ay na-configure upang sabihin na na kamay stamp ito ilagay sa iyo kahapon ay dapat na secure ang kanyang sarili, ang iyong mga browser maaari nang napakahusay, sa ng pagbisita sa mga bagay tulad ng facebook.com google.com, twitter.com, ang iyong browser Maaaring ang pagtatanghal na kamay stamp lamang na slapped down at sinabi, hindi. Gumamit ng SSL. Ngunit ito ay huli na sa puntong iyon. Kung kayo ay nagpadala ng iyong kamay tatakan, iyong cookie, sa malinaw na may walang SSL, mayroon kang isang split segundo kahinaan kung saan ang isang tao sniffing ang iyong trapiko, kung kasama sa kuwarto o NSA, Maaari pagkatapos ay gamitin ang parehong cookie, at may isang bit ng teknikal na savvy, ipakita ito bilang kanyang sarili. Ang isa pang pag-atake kapangyarihan mo hindi na naisip tungkol sa. Isa talaga ito sa iyo kung ang turnilyo mo ito hanggang sa sulat ang ilang mga website na sa paano pa man ay gumagamit ng SQL. Kaya dito, halimbawa, ay isang screen kinunan ng Harvard login. At ito ay isang pangkalahatang halimbawa ng isang bagay na may username at password. Super pangkaraniwan. Kaya sabihin ipinapalagay na ang SSL umiiral at walang tao sa gitna o anumang bagay tulad na. Ngayon kami ay tumututok sa mga server code na maaari mong isulat. Well, kapag ako ay nag-type sa isang username at password, ipagpalagay na ang mga PIN serbisyo ay ipinatupad sa PHP. At maaari kang magkaroon ng ilang mga code sa server na ganito. Kunin ang user name mula sa post super global at makuha ang password, at pagkatapos ay kung ginagamit nila ang ilang pset7 tulad ng code mayroong isang query function na na maaaring gawin ito. Piliin Star mula sa mga user kung saan username na katumbas ng at password ay katumbas na. Na ganito, sa unang tingin, lubos makatwirang. Ito ay syntactically wastong PHP code. Lohikal na wala sira ito. Siguro mayroong ilang higit pang mga linya na aktwal na gawin ang isang bagay na may resulta na nauuna pabalik mula sa database. Ngunit ito ay may marupok na kalooban para sa sa sumusunod na kadahilanan. Pansinin na, tulad ng isang mabuting mamamayan, Ko na ilalagay sa quote, single quote, ang user name. At kong ilagay sa single quote ang password. At iyon ay isang magandang bagay dahil ang mga ito ay Hindi dapat na maging mga numero. Karaniwan ito ay magiging teksto. Kaya ako pag-quote sa mga ito tulad ng mga string. At kung ako ngayon sa karagdagang advance kung ano - at ko na inalis ang mga bullet mula sa PIN serbisyo pansamantalang - kung ano ang sinusubukan kong mag-log in bilang President [? Scroob?] pero i-claim ko na ang aking password ay 12345 'OR '1' = '1, at notice kung ano ang hindi ko pa tapos. Hindi ko isara ang iba pang mga single quote. Dahil ako ay medyo matulis dito bilang ang masamang tao. At ako ipagpalagay na ang mga ito ikaw ay hindi masyadong magandang sa iyong PHP at MySQL code. Ako sa paghula na hindi ka naka-check para sa presensiya ng mga quote. Kaya kung ano lang ang nangyari ay na kapag ang iyong gumagamit ay nag-type sa na string, ang query mo ay sa lumikha ng mukhang ito. At mahaba kuwento maikli, kung ikaw at isang bagay na magkasama o mo o isang bagay magkasama na ito ay pagpunta sa bumalik isang hilera mula sa database. Dahil ito ay palaging ang kaso na katumbas ng 1 1. At dahil lamang hindi mo inaasahan na ang iyong mga gumagamit, maganda o masama, kapangyarihan magkaroon ng isang kudlit sa kanilang pangalan mo pa nakalikha ng isang SQL query na iyon pa rin wasto, at magbabalik ngayon higit pang mga resulta kaysa sa maaaring na nilalayon. At kaya ito masamang tao ngayon ay may potensyal na naka-log in sa iyong server dahil ang iyong database ay bumabalik isang hilera kahit na siya ay walang mga ideya kung ano ang [? Scroob ni?] Aktwal na password ay. Oh, ako na maisasakatuparan ng typo dito. Dapat ko na Sinabi password ay katumbas ng 12345 tulad ng sa nakaraang Halimbawa o katumbas ng 1 1. Makikita ko aayusin na online. Kaya bakit namin sa iyo gamit ang query function na may marka ng tanong? Isa sa mga bagay na sa query function na ang para sa iyo ay ito tinitiyak na kapag pumasa ka sa mga argumento pagkatapos ng kuwit dito ganito na ang query na talagang ipinadala sa database ganito ang hitsura. Isang maraming hindi maganda upang tumingin sa, ngunit pabalik slashes naging awtomatikong Ipinasok upang maiwasan ang mga tiyak na iniksyon atake na ako ay nagpakita ng isang ilang sandali ang nakalipas. Ngayon masaya isang XKCD na naisip ko na gusto kong hilahin hanggang dito na dapat sana ay ngayon maging isang kaunti pa naiintindihan ito ay isa dito. Ang isang maliit na bit? Siguro kailangan namin ng kaunti pa talakayan sa na. Kaya ito ay alluding sa isang maliit na batang kambing may pangalang Bobby na nag-sa paanuman kinuha kalamangan ng isang website na lamang ang nagtitiwala na kung ano ang gumagamit ay nag-type sa hindi, sa katunayan, SQL code, ngunit ay sa katunayan isang string. Ngayon maaari mong isipin ang na drop - maaaring nakakita ka ito - drop paraan tanggalin ang isang talahanayan, tanggalin ang isang database. Kaya kung talagang i-claim na ang iyong pangalan ay Robert "; droptabl estudentsomething,] maaari mong napakahusay linlangin ang database hindi lamang sa pagsuri na ikaw ay Robert sa katunayan, ngunit semicolon din magpatuloy sa drop ang mga talahanayan. At kaya SQL iniksyon atake maaari talagang maging kasing pagbabanta bilang na ito kung saan maaari mong tanggalin ang data ng isang tao, maaari kang pumili ng higit pa kaysa sa datas sinadya, maaari mong ipasok o i-update ang data. At maaari mong talagang makita ito sa sa tahanan ehersisyo, hindi para sa nakahahamak layunin ngunit para lamang sa pagtuturo, ay anumang oras na naka-prompt na mag-log sa website, lalo na ang ilang mga uri ng napaka non publiko, napaka-tanyag na website, subukang mag-log in bilang John O'Reilly o isang tao na may isang kudlit sa kanilang pangalan. O literal-type lamang kudlit, pindutin ang Enter, at tingnan kung ano ang mangyayari. At ang lahat ng masyadong madalas, tragically, mga tao hindi sanitized kanilang mga input at natiyak na ang mga bagay tulad ng mga quote o semicolons ay escaped. Aling ang dahilan kung bakit sa pset7 bigyan kami mo sa query na ito function. Ngunit hindi sa ilalim Pinahahalagahan eksakto kung ano ito ay ginagawa para sa iyo. Kaya sa na sinabi, ang mga bisita gamit ang ang web sa linggong ito. At kami ay nakikita mo sa Lunes. Sa susunod na CD50. [Musika]