1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:10,300 >> Luciano ARANGO: OK, guys. 3 00:00:10,300 --> 00:00:11,550 Ang pangalan ko ay Luciano Arango. 4 00:00:11,550 --> 00:00:13,915 Ako ay isang sopomor sa Adams House. 5 00:00:13,915 --> 00:00:17,550 At kami ay pagpunta sa ay pakikipag-usap tungkol sa seguridad web aktibong pagtatanggol. 6 00:00:17,550 --> 00:00:24,220 Kaya gumana ba ako para sa Opisina ng Impormasyon Seguridad sa mga dagat. 7 00:00:24,220 --> 00:00:28,670 At sa ibabaw ng tag-init, interned ako sa SeguraTec, na noon ay isang impormasyon 8 00:00:28,670 --> 00:00:31,310 seguridad kumpanya na hinahain para sa Bank of Columbia. 9 00:00:31,310 --> 00:00:34,740 Iyan ay halos kung saan ko natutunan kung ano ang aming natutunan ko sa ngayon. 10 00:00:34,740 --> 00:00:37,990 >> At kaya ang ilan sa mga materyales na hindi namin pagpunta sa pumunta sa paglipas ng ngayon, mayroon kaming hindi 11 00:00:37,990 --> 00:00:39,670 talaga usapan tungkol sa klase. 12 00:00:39,670 --> 00:00:40,410 Ngunit kami ay sa lalong madaling panahon. 13 00:00:40,410 --> 00:00:42,360 Ito ay magiging tulad ng SQL, JavaScript. 14 00:00:42,360 --> 00:00:44,870 At hindi na namin hindi talaga nawala na sa paglipas ng ito. 15 00:00:44,870 --> 00:00:47,730 Kaya maaari kong uri-uriin ng flight sa pamamagitan nito, at hindi mo maaaring kilala ilang mga bagay. 16 00:00:47,730 --> 00:00:48,890 Ngunit sa lalong madaling panahon, matutunan mo ito. 17 00:00:48,890 --> 00:00:52,080 At magkakaroon ito gawin ang lahat ng kahulugan. 18 00:00:52,080 --> 00:00:54,010 Gayundin isa pang bagay - 19 00:00:54,010 --> 00:00:55,780 manatili etikal. 20 00:00:55,780 --> 00:01:00,560 Ang ilan sa mga bagay na malaman mo, mo maaaring gamitin sa di-etikal na paraan. 21 00:01:00,560 --> 00:01:01,950 >> Kung sa iyo ito, subukan ang tiyak. 22 00:01:01,950 --> 00:01:04,500 Talagang mag-udyok ko sa inyo guys upang subukan ang iyong sariling mga server, subukan 23 00:01:04,500 --> 00:01:05,519 pagpunta sa loob ng mga ito. 24 00:01:05,519 --> 00:01:08,500 Tingnan kung maaari mong tumagos ang mga ito, kung maaari kang makakuha sa loob ng mga ito. 25 00:01:08,500 --> 00:01:09,560 Ngunit hindi ang sinuman ay. 26 00:01:09,560 --> 00:01:12,390 Cops ay hindi talagang gusto ang joke at ang buong, inilalagay namin ito dito. 27 00:01:12,390 --> 00:01:14,040 Kami ay ang panggugulo sa paligid. 28 00:01:14,040 --> 00:01:15,780 Makakuha ng mga ito ay talagang galit. 29 00:01:15,780 --> 00:01:18,700 >> Kaya magtungo sa ibabaw sa website na ito. 30 00:01:18,700 --> 00:01:23,560 Mayroon akong ito binuksan dito mismo. 31 00:01:23,560 --> 00:01:26,780 Ito ay isang website, at ito May grupo ng mga halimbawa. 32 00:01:26,780 --> 00:01:30,000 Ano ang mangyayari ay na ang unang halimbawa ay isang uri ng pagpunta sa maging mas madaling 33 00:01:30,000 --> 00:01:33,470 kaysa sa huling halimbawa sa isang katuturan na ang unang halimbawa 34 00:01:33,470 --> 00:01:34,970 ay lubos na hindi secure. 35 00:01:34,970 --> 00:01:40,850 At ang huli ay isang uri ng kung ano ang isang normal na tao seguridad web gagawin. 36 00:01:40,850 --> 00:01:42,760 Ngunit maaari ka pa ring pag-uuri ng makakuha ng paligid na iyon. 37 00:01:42,760 --> 00:01:44,860 At kami ay pagpunta sa tumututok sa isa at dalawang, halimbawa isa at dalawa. 38 00:01:44,860 --> 00:01:49,880 39 00:01:49,880 --> 00:01:49,920 >> OK. 40 00:01:49,920 --> 00:01:52,780 Magsimula tayo sa scripting cross-site Hayaan. 41 00:01:52,780 --> 00:01:56,100 Ang JavaScript ay tumakbo sa browser ng kliyente. 42 00:01:56,100 --> 00:01:59,980 Ito ay isang programming language na ginagamit mo upang tumakbo sa mga browser ng kliyente kaya 43 00:01:59,980 --> 00:02:04,120 hindi mo na kailangang i-update ang website at bumalik sa server. 44 00:02:04,120 --> 00:02:04,940 Mayroon itong tumatakbo ka. 45 00:02:04,940 --> 00:02:08,870 Halimbawa, Facebook, wala kang upang i-reload ang website para sa mga bagong katayuan 46 00:02:08,870 --> 00:02:09,710 update upang makabuo. 47 00:02:09,710 --> 00:02:12,170 Ito ay gumagamit ng JavaScript upang makabuo ng lahat ng mga bagay na ito. 48 00:02:12,170 --> 00:02:16,290 Kaya maaari naming mag-iniksyon ng nakahahamak na JavaScript papunta sa mga website. 49 00:02:16,290 --> 00:02:20,890 At na paraan, kapag nagpapadala kami ng isang link sa isang tao, maaari naming uri ng ipadala ito sa 50 00:02:20,890 --> 00:02:23,050 ang ilan sa mga code na nais naming. 51 00:02:23,050 --> 00:02:26,450 >> Mayroong paulit-ulit at mabuway JavaScript - 52 00:02:26,450 --> 00:02:30,640 paulit-ulit at mabuway cross-site scripting, ibig sabihin ko. 53 00:02:30,640 --> 00:02:33,760 At ang pagkakaiba sa pagiging na paulit-ulit ay JavaScript na magiging 54 00:02:33,760 --> 00:02:36,060 naka-save na sa website. 55 00:02:36,060 --> 00:02:39,780 At mabuway ay magiging JavaScript na ang talagang mangyari lamang nang isang beses. 56 00:02:39,780 --> 00:02:41,795 Kaya tingnan natin ang isang halimbawa ipaalam tunay mabilis. 57 00:02:41,795 --> 00:02:45,660 58 00:02:45,660 --> 00:02:46,130 >> OK. 59 00:02:46,130 --> 00:02:51,620 Kaya website na ito, simple, walang mangyayari dito. 60 00:02:51,620 --> 00:02:53,070 At kami ay pagpunta sa subukan upang magpasok ng ilang JavaScript. 61 00:02:53,070 --> 00:02:58,110 Kaya ang paraan ng aming magsimulang pagsusulat ng JavaScript ay magsisimula kami sa simula script. 62 00:02:58,110 --> 00:03:00,570 At isara namin ito na may script. 63 00:03:00,570 --> 00:03:03,770 Lamang kami ng pagpunta sa ilagay ang isang mensahe - 64 00:03:03,770 --> 00:03:05,410 Kukunin ko ipakita sa iyo - 65 00:03:05,410 --> 00:03:06,500 alerto. 66 00:03:06,500 --> 00:03:11,150 Alert ay isang pagpapaandar na JavaScript Ginagamit upang ipakita ang isang bagay. 67 00:03:11,150 --> 00:03:12,400 Kaya ipaalam subukan ni ito real mabilis. 68 00:03:12,400 --> 00:03:15,600 69 00:03:15,600 --> 00:03:18,944 Pupunta ako sa pumunta, kumusta alerto. 70 00:03:18,944 --> 00:03:20,400 Well, nakalimutan ko ang ilalagay - 71 00:03:20,400 --> 00:03:24,510 72 00:03:24,510 --> 00:03:25,460 OK. 73 00:03:25,460 --> 00:03:26,540 Kaya na simple. 74 00:03:26,540 --> 00:03:28,730 >> Naglaan na kami ng JavaScript sa isang website, at ito ay dumating up. 75 00:03:28,730 --> 00:03:31,200 At ito uri ng nangyayari lamang sa aming website, i-right? 76 00:03:31,200 --> 00:03:33,040 Kaya tila tulad ng ito ay hindi isang problema, tama? 77 00:03:33,040 --> 00:03:34,920 Ibig kong sabihin, paano maaaring gamitin sa iyo ito maliciously? 78 00:03:34,920 --> 00:03:39,930 Kaya ang paraan na gawin mga hacker talaga ito simple. 79 00:03:39,930 --> 00:03:40,970 Ang mga ito ay pagpunta sa grab ito. 80 00:03:40,970 --> 00:03:43,750 Maaari silang magpadala ang link na ito sa iyo. 81 00:03:43,750 --> 00:03:46,780 Kung magpapadala ako sa ang link na ito sa iyo sa ngayon, at buksan up mo ito, ito ay pagpunta sa 82 00:03:46,780 --> 00:03:51,620 sabihin, kumusta, na sinasabi na ang aking website ay nagsasabi sa iyo kumusta. 83 00:03:51,620 --> 00:03:57,280 >> At kaya kung ako ay upang sabihin ng isang bagay ng isang Medyo mas matalino, kung hilahin ko up ng isang 84 00:03:57,280 --> 00:03:59,880 JavaScript function na ako uri ng na sinulat ni - 85 00:03:59,880 --> 00:04:03,940 ngunit kung pagtingin mo dito, magpapadala ako pumunta Sa paglipas ng ito bago ko na sinulat ito. 86 00:04:03,940 --> 00:04:06,650 Kaya kami ay pagpunta sa set ng pag-timeout. 87 00:04:06,650 --> 00:04:08,450 Kami ay pagpunta sa maghintay para sa ng ilang segundo. 88 00:04:08,450 --> 00:04:13,970 Sa katunayan, kami ay pagpunta sa maghintay para sa, kung Hindi ako nagkakamali, limang segundo. 89 00:04:13,970 --> 00:04:15,870 Ito napupunta sa millisecond. 90 00:04:15,870 --> 00:04:18,640 At pagkatapos ay kung ano kami ay pagpunta sa gawin ay hindi namin pagpunta upang alertuhan na ang pag-login 91 00:04:18,640 --> 00:04:21,459 Nag-time out na mag-log pabalik in 92 00:04:21,459 --> 00:04:23,990 At kami ay pagpunta upang baguhin ang lokasyon sa ibang lokasyon. 93 00:04:23,990 --> 00:04:30,370 94 00:04:30,370 --> 00:04:32,970 >> Kaya kung magpapadala ako ng website na ito sa isang tao, ang mga ito ay pagpunta sa maging 95 00:04:32,970 --> 00:04:34,380 nagba-browse sa paligid, kalmado. 96 00:04:34,380 --> 00:04:35,650 Walang bagay ang nangyayari. 97 00:04:35,650 --> 00:04:38,550 At sa limang segundo, ay ito pagpunta sasabihin, nag-time out ang iyong login. 98 00:04:38,550 --> 00:04:40,200 Mangyaring mag-log pabalik in 99 00:04:40,200 --> 00:04:43,400 Sa sandaling nilang i-click ang OK, ako ng pagpunta sa magdadala sa kanila sa isa pang website. 100 00:04:43,400 --> 00:04:45,980 Siguro, ang website pupuntahan maging katulad sa website na 101 00:04:45,980 --> 00:04:47,280 sila ay in bago. 102 00:04:47,280 --> 00:04:50,770 At ang mga ito ay pagpunta sa mag-log kanilang mga kredensyal sa aking website sa halip ng 103 00:04:50,770 --> 00:04:51,850 kanilang website. 104 00:04:51,850 --> 00:04:54,780 >> At sa gayon ay maaari ba akong magpadala ng mga tao sa isang mag-email na may link na ito. 105 00:04:54,780 --> 00:04:56,240 Sinasabi ko, oh, narito ang isang link. 106 00:04:56,240 --> 00:04:57,290 Ito ay isang bangko, halimbawa. 107 00:04:57,290 --> 00:05:01,390 Sinasabi ko, narito, pumunta sa link na ito. 108 00:05:01,390 --> 00:05:03,730 At sa sandaling ipadala nila ito, ang mga ito ay pagpunta sa ay nagba-browse sa paligid. 109 00:05:03,730 --> 00:05:07,560 Maaari kong maghintay para sa 15 segundo, 20 segundo, at pagkatapos ay i-pop na mangyaring mag-log in muli 110 00:05:07,560 --> 00:05:08,840 muling mag-sign on. 111 00:05:08,840 --> 00:05:10,120 Ikaw guys maaari itong subukan gamit ang Marami pang mga bagay. 112 00:05:10,120 --> 00:05:13,190 Ito ay kumplikado dahil ikaw guys Hindi nakita ang JavaScript, kaya maaari mong 113 00:05:13,190 --> 00:05:14,750 Hindi kilala ang ilan function. 114 00:05:14,750 --> 00:05:18,625 Ngunit ang kailangan mo lang gawin ay pagsisimula may script, nagtatapos sa script. 115 00:05:18,625 --> 00:05:22,105 116 00:05:22,105 --> 00:05:25,510 At maaari mong ilagay kahit ano sa gitna. 117 00:05:25,510 --> 00:05:27,350 >> Alert ay isang pagpapaandar, maghintay para sa. 118 00:05:27,350 --> 00:05:29,365 Lokasyon Window dadalhin ka sa isang bagong lokasyon. 119 00:05:29,365 --> 00:05:31,370 Ngunit maaari mong gawin ito sa marami pang iba. 120 00:05:31,370 --> 00:05:32,630 At gayon ang ideya ay na lubos naming na-off. 121 00:05:32,630 --> 00:05:39,350 Kung pumunta ako sa halimbawa ng dalawa, at ako ilagay sa ang parehong code, ito ay 122 00:05:39,350 --> 00:05:40,210 hindi pagpunta sa gumana. 123 00:05:40,210 --> 00:05:43,620 Kaya sa pag-print ito lahat out dahil kung ano ang website na ito ay orihinal 124 00:05:43,620 --> 00:05:50,350 ginagawa ay kung ko bang ilagay ang anuman dito, Makikita ito i-print ito dito mismo. 125 00:05:50,350 --> 00:05:52,390 Kaya ito ay hindi nagpi-print ng anumang bagay out. 126 00:05:52,390 --> 00:05:55,560 Halimbawa ito ay aktwal na pagsusuri upang makita kung ang script ay doon. 127 00:05:55,560 --> 00:05:57,163 Kaya oo, sige. 128 00:05:57,163 --> 00:05:57,606 Tanungin ako. 129 00:05:57,606 --> 00:05:59,560 >> Madla: Ay hindi pagpapadala isang makakuha o mag-post kahilingan? 130 00:05:59,560 --> 00:06:00,670 >> Luciano ARANGO: Oo. sila pagpapadala ng isang kahilingan get. 131 00:06:00,670 --> 00:06:01,350 >> Madla: Ito ay? 132 00:06:01,350 --> 00:06:02,490 >> Luciano ARANGO: Oo. 133 00:06:02,490 --> 00:06:04,030 Gayundin browser gamitin ang mga kahilingan sa post na ito. 134 00:06:04,030 --> 00:06:07,470 Ngunit sinusubukan ko upang ipakita ang mga kahilingan get upang maaari naming makita kung ano ang 135 00:06:07,470 --> 00:06:10,760 talaga nangyayari. 136 00:06:10,760 --> 00:06:12,880 At kaya kung tinitingnan namin ang code na ito - kaya hindi ito ay gumagana na ngayon. 137 00:06:12,880 --> 00:06:24,870 At kung tinitingnan namin ang sa ang code na ito, ito ay pagpunta sa maging sa halimbawa dalawa. 138 00:06:24,870 --> 00:06:29,300 Ano ang ginagawa ng taong ito, ang tao sa singil ng browser na ito - 139 00:06:29,300 --> 00:06:35,370 buksan up, OK - 140 00:06:35,370 --> 00:06:39,290 ay pinapalitan ang salitang script. 141 00:06:39,290 --> 00:06:42,850 Ito ay PHP, kung saan ka guys maaari nakakita ka ng kaunting pa. 142 00:06:42,850 --> 00:06:46,250 >> Lamang Siya'y pinapalitan ang salita script na may pangalan. 143 00:06:46,250 --> 00:06:50,895 Kaya gayunpaman, kung pumunta ako nang mas maaga at lamang ilagay sa - 144 00:06:50,895 --> 00:06:58,520 145 00:06:58,520 --> 00:07:02,360 kung grab ko ang aking code muli, at ako pupunta upang baguhin ito lamang ilang sandali. 146 00:07:02,360 --> 00:07:15,010 Sa halip ng script, pupuntahan ko baguhin ito para sa script na may malaking titik R. At 147 00:07:15,010 --> 00:07:16,390 kami ay pagpunta upang makita kung gumagana ang code na ito. 148 00:07:16,390 --> 00:07:19,090 Kaya hindi ito i-print ito, na kung saan ay isang magandang sign. 149 00:07:19,090 --> 00:07:21,990 At sana sa dalawang higit pang mga segundo, ito ay pagpunta sa pop up. 150 00:07:21,990 --> 00:07:22,820 >> Nag-time out ang iyong login. 151 00:07:22,820 --> 00:07:23,210 OK. 152 00:07:23,210 --> 00:07:24,460 Ayos lang iyan. 153 00:07:24,460 --> 00:07:27,670 Kaya naghahanap ng mga script ng lakas hindi palaging gumagana. 154 00:07:27,670 --> 00:07:28,130 Ang taong - 155 00:07:28,130 --> 00:07:32,290 maaari itong ring tingnan para sa script na uppercase, script lowercase, STR kaso 156 00:07:32,290 --> 00:07:34,180 ihambing, siguraduhin na ang mga ito ay ang parehong. 157 00:07:34,180 --> 00:07:38,480 Ngunit maaari pa ring gawin ang mga Hacker uri ng kung ano ginawa namin sa Vigenere kapag kami inilipat 158 00:07:38,480 --> 00:07:40,620 likod ng ilang mga character, sumulong. 159 00:07:40,620 --> 00:07:43,470 At ito maaaring malaman kung paano ilagay ang script bumalik sa doon kaya maaari itong mag-iniksyon 160 00:07:43,470 --> 00:07:44,460 na script. 161 00:07:44,460 --> 00:07:50,370 >> Kaya kung ano ang nais mong gamitin ay htmlspecialchars sa 162 00:07:50,370 --> 00:07:51,330 protektahan ang iyong website. 163 00:07:51,330 --> 00:07:56,490 At ano ang ginagawa ay ito ay ginagawang Siguraduhin na kung ano ilagay mo sa - 164 00:07:56,490 --> 00:07:59,610 halimbawa, mga panipi o ito mas malaki kaysa sa o mas mababa sa - 165 00:07:59,610 --> 00:08:04,701 ay pinalitan ng isang bagay na hindi magiging - 166 00:08:04,701 --> 00:08:05,951 hayaan mo akong mag-zoom in dito - 167 00:08:05,951 --> 00:08:08,730 168 00:08:08,730 --> 00:08:09,685 ang aktwal na ampersand. 169 00:08:09,685 --> 00:08:13,420 Ito ay palitan ang mga espesyal na HTML mga character na aming makita kapag kami ay 170 00:08:13,420 --> 00:08:14,670 pakikipag-usap tungkol sa - 171 00:08:14,670 --> 00:08:18,635 172 00:08:18,635 --> 00:08:20,740 oh, ito ay pagpunta sa tumagal bumalik sa akin sa - 173 00:08:20,740 --> 00:08:24,220 174 00:08:24,220 --> 00:08:25,380 mga character dito mismo. 175 00:08:25,380 --> 00:08:28,180 >> Maging tanda ng mga na may isang bagay ay paparating. 176 00:08:28,180 --> 00:08:31,570 Para sa mga HTML, na nagsisimula bracket Sinasabi sa amin na may isang bagay 177 00:08:31,570 --> 00:08:33,299 Kaugnay na HTML ay paparating na. 178 00:08:33,299 --> 00:08:33,980 At gusto naming mapupuksa na. 179 00:08:33,980 --> 00:08:36,200 Hindi namin nais na ilagay ang HTML sa isang website.k Hindi namin gusto ang user upang maging 180 00:08:36,200 --> 00:08:40,260 magagawang upang ilagay ang isang bagay sa kanilang website na maaaring makaapekto sa kanilang mga website, tulad ng 181 00:08:40,260 --> 00:08:43,480 script o HTML o isang bagay tulad na. 182 00:08:43,480 --> 00:08:53,090 Ano ang mahalaga ay na kayo sanitize ang pag-input ng user. 183 00:08:53,090 --> 00:08:54,720 >> Kaya ang mga gumagamit ay maaari input maraming bagay. 184 00:08:54,720 --> 00:08:58,110 Maaari niya input ng grupo ng mga bagay-bagay na subukan upang linlangin ang iyong browser sa pa rin 185 00:08:58,110 --> 00:08:59,410 tumatakbo ang code na ito sa script. 186 00:08:59,410 --> 00:09:02,870 Ano ang gusto mong gawin ay hindi lamang tumingin para sa script, ngunit tumingin para sa lahat ng bagay 187 00:09:02,870 --> 00:09:04,250 na maaaring maging nakakahamak na. 188 00:09:04,250 --> 00:09:06,800 At htmlspecialchars ay gawin iyon para sa iyo, kaya hindi mo na kailangang 189 00:09:06,800 --> 00:09:07,340 upang mag-alala tungkol dito. 190 00:09:07,340 --> 00:09:12,280 Ngunit huwag subukan na gawin sa pamamagitan ng iyong sarili uri ng gamit ang iyong sariling code. 191 00:09:12,280 --> 00:09:14,055 Malinaw sa XSS ba lahat? 192 00:09:14,055 --> 00:09:14,370 >> OK. 193 00:09:14,370 --> 00:09:16,355 Sabihin pumunta sa SQL iniksyon. 194 00:09:16,355 --> 00:09:21,010 Kaya SQL iniksyon ay marahil ang bilang isa kahinaan 195 00:09:21,010 --> 00:09:22,490 sa iba't-ibang mga website. 196 00:09:22,490 --> 00:09:24,350 Ibig kong sabihin, isang magandang halimbawa - 197 00:09:24,350 --> 00:09:27,350 Lamang ako ay nagsasaliksik pinakamalayo para sa bagay na ito. 198 00:09:27,350 --> 00:09:34,430 At nakita ko na ito kahanga-hangang artikulo, kung saan Nakita ko na Harvard ay nilabag, 199 00:09:34,430 --> 00:09:35,390 ay na-hack. 200 00:09:35,390 --> 00:09:37,370 At ako ay nagtataka, mahusay, paano gagawin nila ito? 201 00:09:37,370 --> 00:09:41,660 Harvard ang pinaka-kahanga-hangang, karamihan secure ang unibersidad kailanman. 202 00:09:41,660 --> 00:09:43,850 Mag-right? 203 00:09:43,850 --> 00:09:45,410 Well, upang labagin ang mga server, ang mga hacker na ginamit ng 204 00:09:45,410 --> 00:09:47,710 diskarteng tinatawag na SQL iniksyon. 205 00:09:47,710 --> 00:09:50,250 >> Kaya nangyari ito sa isang araw-araw na batayan. 206 00:09:50,250 --> 00:09:53,590 Mga Tao kalimutang gumawa ng account para sa SQL iniksyon. 207 00:09:53,590 --> 00:09:54,930 Harvard gumagana. 208 00:09:54,930 --> 00:10:00,050 Sa tingin ko ang sinasabi nito dito, Princeton, Stanford, Cornell. 209 00:10:00,050 --> 00:10:03,550 Kaya kung paano ginagawa namin - kaya kung ano ito SQL pang-iniksyon na nagdadala sa lahat ng mga 210 00:10:03,550 --> 00:10:05,668 down na mga tao? 211 00:10:05,668 --> 00:10:08,010 OK. 212 00:10:08,010 --> 00:10:12,090 Kaya SQL ay isang programming language na ginagamit namin upang ma-access ang database. 213 00:10:12,090 --> 00:10:14,560 Ano ang ginagawa namin ay piliin namin - 214 00:10:14,560 --> 00:10:18,510 kaya kung ano ang bumabasa sa ngayon ay piliin ang ang lahat ng bagay mula sa talahanayan. 215 00:10:18,510 --> 00:10:22,640 >> SQL, ito ang mga pagbabago sa mga database na may mga table na puno ng impormasyon. 216 00:10:22,640 --> 00:10:26,550 Kaya piliin ang lahat ng bagay mula sa mga gumagamit kung saan ang pangalan ay username. 217 00:10:26,550 --> 00:10:28,120 Mag-right? 218 00:10:28,120 --> 00:10:30,770 Sapat Simpleng. 219 00:10:30,770 --> 00:10:34,490 Ang ideya ng SQL iniksyon ay na namin isingit ang ilang mga malisyosong code na gagawin 220 00:10:34,490 --> 00:10:37,270 linlangin ang server sa pagpapatakbo ng isang bagay iba't ibang kaysa sa kung ano ito 221 00:10:37,270 --> 00:10:38,430 Orihinal na ay tumatakbo. 222 00:10:38,430 --> 00:10:44,970 Kaya sabihin nating para sa username, naming ilagay sa o katumbas ng 1 1. 223 00:10:44,970 --> 00:10:46,700 Kaya ilalagay sa kami o 1 ay katumbas ng 1. 224 00:10:46,700 --> 00:10:49,890 Ang paraan ay ito basahin ngayon ay piliin ang mula sa mga gumagamit, ang lahat mula sa 225 00:10:49,890 --> 00:10:51,360 mga user - ito ay ang lahat ng bagay - 226 00:10:51,360 --> 00:10:55,880 kung saan pangalan ay username, ngunit username ay o 1 ay katumbas ng 1. 227 00:10:55,880 --> 00:11:01,760 >> Kaya pangalan ay wala o 1 ay katumbas ng 1. 228 00:11:01,760 --> 00:11:04,060 1 ay katumbas ng 1 ay palaging totoo. 229 00:11:04,060 --> 00:11:07,690 Kaya ito ay palaging bumalik impormasyon mula sa mga gumagamit. 230 00:11:07,690 --> 00:11:08,100 OK. 231 00:11:08,100 --> 00:11:10,030 Hindi namin kailangang magkaroon ng tamang username. 232 00:11:10,030 --> 00:11:14,240 Maaari naming magkaroon ng anumang bagay na gusto namin, at ito ay bumalik impormasyon 233 00:11:14,240 --> 00:11:15,690 na kailangan namin. 234 00:11:15,690 --> 00:11:17,160 Tingnan natin ang isa pang halimbawa. 235 00:11:17,160 --> 00:11:22,720 >> Kung piliin namin ang lahat mula sa gumagamit, kung saan pangalan ay drop mga gumagamit talahanayan - 236 00:11:22,720 --> 00:11:26,420 kaya kung ano sa tingin mo ang kaloobang ito'y gawin kung ilalagay ko sa username 237 00:11:26,420 --> 00:11:29,560 bilang mga user drop talahanayan? 238 00:11:29,560 --> 00:11:30,230 Kahit sino ay may isang ideya? 239 00:11:30,230 --> 00:11:31,050 Oo. 240 00:11:31,050 --> 00:11:32,470 >> Madla: Ito ay pagpunta upang sabihin sa ito upang dump ang lahat ng mga talahanayan. 241 00:11:32,470 --> 00:11:35,460 >> Luciano ARANGO: Ito ay pagpunta sa sabihin sa amin sa dump lahat ng bagay sa website, 242 00:11:35,460 --> 00:11:38,290 ang lahat ng bagay sa database. 243 00:11:38,290 --> 00:11:41,910 At kung ano ang ginagamit ng mga tao na ito para sa - kaya Pupunta ako upang ipakita sa iyo guys. 244 00:11:41,910 --> 00:11:45,462 Hindi pinagana ko pag-drop ang mga talahanayan dahil ako ay hindi mo gusto 245 00:11:45,462 --> 00:11:48,240 guys i-drop ang aking mga talahanayan. 246 00:11:48,240 --> 00:11:49,850 Hayaan ang kumuha ng isang pagtingin sa ito. 247 00:11:49,850 --> 00:11:54,410 Kaya pulls lamang ito up ang impormasyon para sa isang tiyak na tao. 248 00:11:54,410 --> 00:11:57,550 Kaya paano ko malalaman namin kung ito apektado ng SQL iniksyon. 249 00:11:57,550 --> 00:12:01,545 Kami ay pagpunta sa suriin ang tunay mabilis kung maaari naming ilagay ang isang bagay - 250 00:12:01,545 --> 00:12:04,990 251 00:12:04,990 --> 00:12:06,080 hayaan mo akong kopyahin ang code na ito. 252 00:12:06,080 --> 00:12:08,140 Pupunta ako sa pumunta sa paglipas ng ito sa isang segundo. 253 00:12:08,140 --> 00:12:12,210 Pupunta ako upang ilagay ang ugat at ang 1 ay katumbas ng 1. 254 00:12:12,210 --> 00:12:15,510 >> Ito dito mismo, ito pag-sign porsiyento 23 - 255 00:12:15,510 --> 00:12:19,970 ano ito ay tunay na, kung ako tumingin dito mismo sa - 256 00:12:19,970 --> 00:12:23,820 ang paraan ng HTML tumatagal sa mga numero, kung ikaw bistahan kapag ko bang ilagay sa isang puwang 257 00:12:23,820 --> 00:12:28,380 dito - kung ako ay upang espasyo ng isang bagay dito, ito ay nagbabago dito sa isang porsiyento 2. 258 00:12:28,380 --> 00:12:31,420 Huwag makita mo guys ito dito mismo kapag ko bang ilagay sa isang espasyo? 259 00:12:31,420 --> 00:12:36,710 Ang paraan ito gumagana ay na maaari mo lamang magpadala ng mga halaga ng ASCII sa pamamagitan ng HTML. 260 00:12:36,710 --> 00:12:40,330 Kaya ito ay pumapalit sa, halimbawa, isang space na may porsiyento 20. 261 00:12:40,330 --> 00:12:41,970 Hindi ko alam kung ikaw guys nakita na bago. 262 00:12:41,970 --> 00:12:45,100 >> Ito ay pumapalit sa isang hashtag may porsiyento 23. 263 00:12:45,100 --> 00:12:50,840 Kailangan namin ng isang hashtag sa dulo ng o pahayag upang maaari naming sabihin ang 264 00:12:50,840 --> 00:13:00,885 database upang kalimutan si out ito huling tuldok-kuwit sa dulo. 265 00:13:00,885 --> 00:13:03,060 Gusto naming ito upang hindi isipin ang tungkol na. 266 00:13:03,060 --> 00:13:05,980 Gusto lang namin ito para tumakbo ang lahat ng bagay na mayroon kami sa simula pa at 267 00:13:05,980 --> 00:13:07,450 magkomento na out. 268 00:13:07,450 --> 00:13:08,710 Hayaan ang kumuha ng isang pagtingin sa ito. 269 00:13:08,710 --> 00:13:14,670 >> Kaya kung ako ay upang ilagay ang isang bagay na mali - sabihin nating halimbawa, ko bang ilagay ang 2 Kapantay 270 00:13:14,670 --> 00:13:15,690 1, hindi ito magbigay sa akin ng kahit ano. 271 00:13:15,690 --> 00:13:22,930 Kapag ko bang ilagay sa 1 ay katumbas ng 1, at ginagawa nito magbalik ng bagay, ito ay nagsasabi sa akin na 272 00:13:22,930 --> 00:13:24,660 ito ay mahina laban sa isang SQL iniksyon. 273 00:13:24,660 --> 00:13:29,090 Alam ko na ngayon na kung ano ang Naglagay ako pagkatapos na ito - 274 00:13:29,090 --> 00:13:39,110 at halimbawa, drop Tables o ang isang bagay tulad na 275 00:13:39,110 --> 00:13:41,190 ay talagang gumagana. 276 00:13:41,190 --> 00:13:44,350 Alam ko ito mahina laban sa SQL iniksyon dahil alam ko na 277 00:13:44,350 --> 00:13:49,850 sa ilalim ng hood, ito ay pagpapaalam sa akin gawin ang 1 ay katumbas ng 1 bagay. 278 00:13:49,850 --> 00:13:51,100 OK? 279 00:13:51,100 --> 00:13:53,950 280 00:13:53,950 --> 00:13:56,540 >> At kung tinitingnan namin ang mga iba pang mga bago, numero ng dalawa at tatlong numero, ito ay 281 00:13:56,540 --> 00:13:59,110 pagpunta sa gawin ang isang maliit na bit higit pa ng pagsuri sa ilalim ng 282 00:13:59,110 --> 00:14:03,680 hood ng kung ano ito ay. 283 00:14:03,680 --> 00:14:07,425 Kaya sinuman paganahin ang drop kahit ano pa o sinubukan? 284 00:14:07,425 --> 00:14:08,760 Huwag mo guys uri ng pang makakuha ng SQL? 285 00:14:08,760 --> 00:14:10,430 Dahil alam ko ka guys ay may hindi Nakita ito pa, kaya uri ng 286 00:14:10,430 --> 00:14:11,759 nakalilito para sa iyo guys. 287 00:14:11,759 --> 00:14:16,160 288 00:14:16,160 --> 00:14:18,480 Hayaan ang kumuha ng isang hitsura. 289 00:14:18,480 --> 00:14:21,270 Kaya kung ano ang mga paraan upang maiwasan ang SQLI? 290 00:14:21,270 --> 00:14:21,390 OK. 291 00:14:21,390 --> 00:14:23,330 Kaya ito ay talagang mahalaga dahil ikaw gusto talagang guys upang maiwasan ang 292 00:14:23,330 --> 00:14:24,090 ito sa iyong mga website. 293 00:14:24,090 --> 00:14:28,040 >> Kung hindi, ang lahat ng iyong mga kaibigan ay pumunta sa biruin mo kapag i-drop sila lahat 294 00:14:28,040 --> 00:14:29,390 ang iyong mga talahanayan. 295 00:14:29,390 --> 00:14:36,150 Kaya ang ideya ay na ba ninyo itong mga SQL sa isang tiyak na paraan, samantalang ang tumugma sa iyo 296 00:14:36,150 --> 00:14:41,940 kung ano ang input ng user sa isang tiyak na string. 297 00:14:41,940 --> 00:14:46,120 Kaya ang paraan ito gumagana sa iyo ihanda ang database. 298 00:14:46,120 --> 00:14:50,830 Piliin mong pangalan, kulay, at calories mula sa isang database na tinatawag na prutas. 299 00:14:50,830 --> 00:14:53,580 At pagkatapos ay kung saan calories ay mas mababa kaysa, at inilalagay namin ang isang tandang pananong doon 300 00:14:53,580 --> 00:14:56,530 sinasabi namin sa pagpunta sa input isang bagay sa isang segundo. 301 00:14:56,530 --> 00:14:58,850 >> At kulay katumbas, at inilalagay namin ang isang tanong mark sinasabi namin sa pagpunta sa 302 00:14:58,850 --> 00:15:00,913 input ng isang bagay sa isang segundo pati na rin. 303 00:15:00,913 --> 00:15:02,660 OK? 304 00:15:02,660 --> 00:15:09,920 At pagkatapos ay isakatuparan namin ito, paglalagay ng sa 150 at pula. 305 00:15:09,920 --> 00:15:12,820 At ito ay suriin upang sigurado na ang dalawang - 306 00:15:12,820 --> 00:15:15,300 ito array ay suriin na ang mga dalawa ay isang integer at 307 00:15:15,300 --> 00:15:16,550 na ito ay isang string. 308 00:15:16,550 --> 00:15:18,810 309 00:15:18,810 --> 00:15:20,890 Pagkatapos ay pumunta kami, at makuha ang mga namin lahat, inilalagay namin ito ng pula. 310 00:15:20,890 --> 00:15:21,964 Iyon ay nangangahulugang ang fetch namin ang lahat. 311 00:15:21,964 --> 00:15:26,790 Ang ibig sabihin nito ang aktwal na namin execute ang SQL statement at ilagay ito pabalik sa pula. 312 00:15:26,790 --> 00:15:30,530 Narito gawin namin ang parehong, ngunit namin gawin ang pareho sa dilaw. 313 00:15:30,530 --> 00:15:32,490 At fetch namin ang lahat. 314 00:15:32,490 --> 00:15:36,140 >> At sa paraang ito, pigilan namin ang user mula sa pagiging magagawang i-input ng isang bagay 315 00:15:36,140 --> 00:15:41,710 na ay hindi kung ano ang aming tinukoy, ang isang string o isang integer, halimbawa. 316 00:15:41,710 --> 00:15:45,100 317 00:15:45,100 --> 00:15:46,610 Ako ay pakikipag-usap ng mas maaga ang tungkol sa pag-asa sa iba. 318 00:15:46,610 --> 00:15:50,010 Kapag nag-guys simulan ang iyong proyekto, ikaw ay pinaka-tiyak pagpunta sa gamitin 319 00:15:50,010 --> 00:15:52,310 bootstrap o isang bagay na katulad. 320 00:15:52,310 --> 00:15:53,490 Nakarating na guys kailanman ginamit Wordpress? 321 00:15:53,490 --> 00:15:57,170 Marahil mo guys nagamit Wordpress pinaka-malamang. 322 00:15:57,170 --> 00:16:00,050 Kaya ang problema sa paggamit bagay ng ibang mga tao - 323 00:16:00,050 --> 00:16:05,940 Lamang ako ng pagpunta sa Google tunay mabilis Wordpress kahinaan. 324 00:16:05,940 --> 00:16:07,495 >> Kung hilahin ko ito hanggang ngayon - 325 00:16:07,495 --> 00:16:08,995 Literal na ako ginawa ng dalawang segundo Google. 326 00:16:08,995 --> 00:16:12,300 327 00:16:12,300 --> 00:16:13,800 Maaari naming makita na Wordpress - 328 00:16:13,800 --> 00:16:17,450 ito ay may petsang bilang Septiyembre '12. 329 00:16:17,450 --> 00:16:19,120 26 ay na-update. 330 00:16:19,120 --> 00:16:23,620 Ang default na configuration ng Wordpress bago 3.6 ay hindi maiwasan ang mga 331 00:16:23,620 --> 00:16:27,110 ilang mga pag-upload, na maaring gawing mas madali para sa 332 00:16:27,110 --> 00:16:29,790 pag-atake scripting cross-site. 333 00:16:29,790 --> 00:16:34,530 Kaya isang mabilis na kuwento, sa sandaling kami ay nagtatrabaho may - sa gayon ako ay, sa tag-araw, nagtatrabaho sa isang 334 00:16:34,530 --> 00:16:34,970 internship. 335 00:16:34,970 --> 00:16:40,400 At kami ay nagtatrabaho sa isang uri ng tulad ng isang kumpanya malaki credit card. 336 00:16:40,400 --> 00:16:42,020 >> At umaasa sila sa isang bagay na tinatawag na - 337 00:16:42,020 --> 00:16:45,740 Hindi ko alam kung ikaw guys kailanman na-play may isang produkto na tinatawag na Joomla. 338 00:16:45,740 --> 00:16:51,750 Joomla ay isang produkto na ay ginagamit upang control - isang uri ng katulad sa 339 00:16:51,750 --> 00:16:54,340 Wordpress, na ginagamit upang bumuo ng mga website. 340 00:16:54,340 --> 00:16:56,060 Kaya nagkaroon sila ng kanilang website nagtatrabaho sa Joomla. 341 00:16:56,060 --> 00:16:59,290 Ito ay talagang isang credit card kumpanya sa Colombia. 342 00:16:59,290 --> 00:17:01,000 Kukunin ko sa iyo sa kanilang website real mabilis. 343 00:17:01,000 --> 00:17:04,550 344 00:17:04,550 --> 00:17:05,400 >> Kaya ginamit nilang Joomla. 345 00:17:05,400 --> 00:17:08,630 At hindi sila ay na-update Joomla sa pinakabagong karagdagan. 346 00:17:08,630 --> 00:17:12,160 At kaya kapag tayo ay ng pagtingin sa kanilang code, nagawa naming upang aktwal na 347 00:17:12,160 --> 00:17:18,430 pumunta sa loob ng kanilang code at magnakaw ng lahat ng mga impormasyon ng credit card na sila ay nagkaroon, 348 00:17:18,430 --> 00:17:21,670 ang lahat ng mga numero ng credit card, ang mga pangalan, mga address. 349 00:17:21,670 --> 00:17:22,740 At ito ay isa lamang - 350 00:17:22,740 --> 00:17:23,569 at ang kanilang mga code ay perpektong fine. 351 00:17:23,569 --> 00:17:24,710 Nagkaroon Sila ay mahusay na code. 352 00:17:24,710 --> 00:17:25,389 Iyon ay ang lahat ng seguridad. 353 00:17:25,389 --> 00:17:26,520 Naka-check ang mga ito ang lahat ng mga database. 354 00:17:26,520 --> 00:17:29,020 Ginawa bang cross-site na Sila scripting ay pinong. 355 00:17:29,020 --> 00:17:34,390 >> Ngunit ginagamit ang mga ito isang bagay na hindi na-update, na noon ay hindi secure. 356 00:17:34,390 --> 00:17:36,940 At nang sa gayon ay humantong ang mga ito sa - kaya guys ay talagang pagpunta sa gumamit ng iba pang 357 00:17:36,940 --> 00:17:40,650 code, Framework ng ibang tao ng mga tao upang bumuo ng up ng iyong website. 358 00:17:40,650 --> 00:17:43,860 Tiyakin na ang mga ito ay ligtas dahil kung minsan ito ay hindi sa iyo, ang isa na 359 00:17:43,860 --> 00:17:44,480 gumagawa ng isang pagkakamali. 360 00:17:44,480 --> 00:17:47,440 Ngunit may ibang tao gumagawa ng isang pagkakamali, at pagkatapos mong matumba dahil sa iyon. 361 00:17:47,440 --> 00:17:51,190 362 00:17:51,190 --> 00:17:53,885 >> Mga Password at PII. 363 00:17:53,885 --> 00:17:56,820 Kaya mga password. 364 00:17:56,820 --> 00:17:58,070 OK. 365 00:17:58,070 --> 00:17:59,980 366 00:17:59,980 --> 00:18:04,230 Hayaan ang kumuha ng isang pagtingin sa mga password tunay mabilis. 367 00:18:04,230 --> 00:18:04,590 OK. 368 00:18:04,590 --> 00:18:06,520 Mangyaring sabihin sa akin na ang lahat ay gumagamit ng secure na - 369 00:18:06,520 --> 00:18:09,030 Ako umaasa sa lahat ng tao dito ay gumagamit ng secure na password. 370 00:18:09,030 --> 00:18:12,890 Lang ako sa pagpapaalam na in bilang isang pagkukunwari. 371 00:18:12,890 --> 00:18:14,850 Kaya mo guys ay talagang pagpunta sa mag-imbak ng mga password para sa iyong website. 372 00:18:14,850 --> 00:18:17,440 Ikaw ay pagpunta sa gawin ang isang bagay tulad ng isang pag-login o ang isang bagay tulad na. 373 00:18:17,440 --> 00:18:19,610 Ano ang mahalaga ay ang hindi nag-iimbak mga password sa plain text. 374 00:18:19,610 --> 00:18:20,860 Ito ay lubos na mahalaga. 375 00:18:20,860 --> 00:18:23,960 Hindi mo nais na mag-imbak ng password sa plain text. 376 00:18:23,960 --> 00:18:27,370 >> At talagang hindi talaga gusto mag-imbak ito sa isang one way hash. 377 00:18:27,370 --> 00:18:32,440 Kaya kung ano ang isang one way hash ay na kapag nag- makabuo ng isang salita, kapag mong ilagay ito 378 00:18:32,440 --> 00:18:36,200 salita sa isang hash, habilin ito bumuo ng pabalik ilang mga uri ng misteriyoso 379 00:18:36,200 --> 00:18:39,390 mensahe o misteriyoso hanay ng mga key. 380 00:18:39,390 --> 00:18:40,640 Kukunin ko ipakita sa iyo ang isang halimbawa. 381 00:18:40,640 --> 00:18:44,620 382 00:18:44,620 --> 00:18:50,250 Pupunta ako sa hash sila salita password1. 383 00:18:50,250 --> 00:18:55,280 Kaya MD5 Hash ay pagpunta upang bumalik sa akin isang uri ng kakaiba impormasyon. 384 00:18:55,280 --> 00:18:59,140 >> Ang problema ay na ang mga tao out doon na bang pumunta sa mga website ay may 385 00:18:59,140 --> 00:19:02,750 na may korte out-uri ng lahat ng mga MD5 hashes. 386 00:19:02,750 --> 00:19:06,030 Ano ang nila nakaupo sila pababa sa kanilang mga computer, at sila na-hash ang bawat 387 00:19:06,030 --> 00:19:09,660 solong posibleng salita out doon hanggang Nakakuha sila uri ng kung ano ito ay. 388 00:19:09,660 --> 00:19:11,420 Kung ako ay upang tumingin ito up - 389 00:19:11,420 --> 00:19:12,420 Lamang grabbed ko ito hash. 390 00:19:12,420 --> 00:19:14,120 Kung nakukuha ko ito hash mula sa - 391 00:19:14,120 --> 00:19:17,470 kung pumunta ako sa isang website, at hanapin ko ito hash dahil kumuha ako sa 392 00:19:17,470 --> 00:19:24,100 mga database, at tumingin up ko ito, may isang taong na may korte ito out para sa akin. 393 00:19:24,100 --> 00:19:28,600 394 00:19:28,600 --> 00:19:29,100 >> Oo. 395 00:19:29,100 --> 00:19:35,030 Kaya mga tao nakaupo pababa, at kahit anong MD5 hash na inilagay mo sa, sila ay pagpunta sa 396 00:19:35,030 --> 00:19:37,760 bumalik sa iyo ng isang bagay na isang salita. 397 00:19:37,760 --> 00:19:39,800 Kung hash ako ng isa pang salita, tulad ng - 398 00:19:39,800 --> 00:19:42,410 Hindi ko alam kung - 399 00:19:42,410 --> 00:19:43,490 trees2. 400 00:19:43,490 --> 00:19:46,050 Hindi ko nais na maging nabigo sa pamamagitan ng aking mga paghahanap sa Google. 401 00:19:46,050 --> 00:19:49,820 402 00:19:49,820 --> 00:19:52,780 May ito ay, trees2. 403 00:19:52,780 --> 00:19:55,930 Kaya ng maraming mga website gumamit pa rin MD5 hash. 404 00:19:55,930 --> 00:19:57,730 Sabi nila, oh, ito ay ligtas. 405 00:19:57,730 --> 00:19:58,570 Hindi kami nag-iimbak ng sa plain text. 406 00:19:58,570 --> 00:19:59,740 Mayroon kaming na ito MD5 hash. 407 00:19:59,740 --> 00:20:01,880 At ang lahat ng kailangan kong gawin ay lamang Google ang numero. 408 00:20:01,880 --> 00:20:03,940 >> Hindi ko kahit na magkaroon upang makalkula ang sarili ko. 409 00:20:03,940 --> 00:20:06,790 Maaari ko pa lang sa Google ito, at may isang taong na ginawa ito para sa akin. 410 00:20:06,790 --> 00:20:08,010 Narito ang isang bungkos ng mga ito. 411 00:20:08,010 --> 00:20:09,260 Narito ang isang bungkos ng mga password. 412 00:20:09,260 --> 00:20:13,890 413 00:20:13,890 --> 00:20:18,680 Kaya Talagang huwag gamitin ang MD5 hash, dahil ang kailangan mo lang 414 00:20:18,680 --> 00:20:19,140 gawin ay ang Google ito. 415 00:20:19,140 --> 00:20:20,390 Kaya kung ano ang gusto mong gamitin sa halip? 416 00:20:20,390 --> 00:20:29,340 417 00:20:29,340 --> 00:20:30,170 OK. 418 00:20:30,170 --> 00:20:31,260 Isang bagay na tinatawag na pagbuburo. 419 00:20:31,260 --> 00:20:32,460 Kaya kung ano ang pagbuburo ay - 420 00:20:32,460 --> 00:20:36,280 huwag mo guys tandaan kapag kami ay pakikipag-usap tungkol sa random sa - 421 00:20:36,280 --> 00:20:37,920 Hindi ako sigurado kung ano pset ito ay - 422 00:20:37,920 --> 00:20:41,140 ay ito pset doon o apat? 423 00:20:41,140 --> 00:20:45,150 >> Kami ay pakikipag-usap tungkol sa paghahanap ang karayom ​​sa mandala ng dayami. 424 00:20:45,150 --> 00:20:48,480 At sa pset, sinabi nito na maaari mong talagang malaman kung anong random 425 00:20:48,480 --> 00:20:51,840 bumubuo dahil may na-na nagpatakbo random na isang milyong beses at lamang 426 00:20:51,840 --> 00:20:53,230 uri ng nabuo kung ano ang kanilang makabuo. 427 00:20:53,230 --> 00:20:55,840 Ano ang gusto mong gawin ay ilagay sa isang input. 428 00:20:55,840 --> 00:20:57,130 Kaya iyon ang pagbuburo uri ng ay. 429 00:20:57,130 --> 00:21:00,900 Na may korte nila kung ano ang pagbuburo nagbabalik para sa bawat trabaho. 430 00:21:00,900 --> 00:21:04,750 >> Kaya kung ano ang ginagawa pagbuburo ay maglagay sa iyo sa isang asin. 431 00:21:04,750 --> 00:21:06,160 Ilagay mo sa isang tiyak na salita. 432 00:21:06,160 --> 00:21:09,720 At ito ay hash na salita depende sa kung ano ang inilagay mo sa dito. 433 00:21:09,720 --> 00:21:13,570 Kaya kung hash ko ang isa password na may ito pangungusap, ito ay pagpunta sa hash 434 00:21:13,570 --> 00:21:17,180 naiiba kung hash ko password1 na may ibang pangungusap. 435 00:21:17,180 --> 00:21:21,670 Ito uri ng mga nagbibigay ito sa isang lugar sa simulan para sa hashing upang magsimula. 436 00:21:21,670 --> 00:21:25,970 Kaya ito ay mas mahirap upang makalkula, ngunit ikaw Maaari pa rin compute ito, lalo na 437 00:21:25,970 --> 00:21:26,830 kung gumamit ka ng isang masamang asin. 438 00:21:26,830 --> 00:21:29,650 >> Mga tao pa rin may korte out karaniwang asing-gamot at may korte out 439 00:21:29,650 --> 00:21:31,500 ano na ito ay. 440 00:21:31,500 --> 00:21:34,980 Random asing-gamot ay magkano ang mas mahusay, ngunit ang pinakamahusay na paraan ay ang gamitin 441 00:21:34,980 --> 00:21:38,160 isang bagay na tinatawag na silid sa ilalim ng lupa. 442 00:21:38,160 --> 00:21:40,480 At kung ano silid sa ilalim ng lupa ay nagbibigay-daan sa iyo upang huwag - kaya ang mga function ay 443 00:21:40,480 --> 00:21:41,820 na binuo para sa iyo. 444 00:21:41,820 --> 00:21:44,910 Maraming mga tao ang kalimutan na, o sila kalimutan na gamitin ito. 445 00:21:44,910 --> 00:21:54,520 Ngunit kung tumingin up ko silid sa ilalim ng lupa PHP, silid sa ilalim ng lupa na nagbabalik ng hash string para sa akin. 446 00:21:54,520 --> 00:21:58,790 At talagang asing-gamot ito maraming beses at hashes ito maraming beses. 447 00:21:58,790 --> 00:22:00,070 >> Kaya namin Hindi mo na kailangang gawin ito. 448 00:22:00,070 --> 00:22:04,790 Kaya ang kailangan mo lang gawin ay ipadala ito sa silid sa ilalim ng lupa. 449 00:22:04,790 --> 00:22:08,170 At ito ay lumikha ng isang mahusay na hash na walang mo na kinakailangang mag-alala tungkol sa asin 450 00:22:08,170 --> 00:22:08,990 o kahit ano. 451 00:22:08,990 --> 00:22:12,000 Dahil kung ikaw ay upang asin ito, mayroon kang matandaan kung ano ang asin na ginamit mo 452 00:22:12,000 --> 00:22:13,800 dahil kung hindi, hindi ka maaaring makakuha ng iyong password bumalik nang walang 453 00:22:13,800 --> 00:22:15,760 asin na iyong ginamit. 454 00:22:15,760 --> 00:22:17,010 OK. 455 00:22:17,010 --> 00:22:21,120 456 00:22:21,120 --> 00:22:23,150 >> At din ang personal na makikilalang impormasyon. 457 00:22:23,150 --> 00:22:26,730 Kaya social security, credit card - na medyo halata. 458 00:22:26,730 --> 00:22:31,880 Ngunit minsan ang mga tao kalimutan ang paraan nito mga gawa ay, kung gaano karaming impormasyon ang gagawin mo 459 00:22:31,880 --> 00:22:35,690 talagang kailangan upang mahanap ang ilang mga isang tao? 460 00:22:35,690 --> 00:22:37,740 May isang tao na ginawa ng isang pag-aaral tungkol sa ito isang paraan pabalik. 461 00:22:37,740 --> 00:22:40,870 At iyon ay tulad ng, kung mayroon kang isang buong pangalan, hindi mo mahanap 462 00:22:40,870 --> 00:22:41,610 isang tao na madali. 463 00:22:41,610 --> 00:22:43,900 Ngunit ano kung mayroon kang isang buong pangalan at ang kanilang mga petsa ng kapanganakan? 464 00:22:43,900 --> 00:22:47,770 Iyan ba ang sapat na upang kilalanin isang tao na partikular na? 465 00:22:47,770 --> 00:22:52,760 >> Paano kung mayroon kang kanilang mga pangalan at ang address ng kalye na nakatira sila sa? 466 00:22:52,760 --> 00:22:55,110 Sapat na upang mahanap ang isang tao ba iyon? 467 00:22:55,110 --> 00:23:02,490 At iyon kapag tanong nila, ano ang personal na makikilalang impormasyon, at 468 00:23:02,490 --> 00:23:05,360 ano ang dapat mag-alala ka tungkol sa hindi pinaaalam ang? 469 00:23:05,360 --> 00:23:08,770 Kung magbibigay sa iyo ang layo ng personal na makikilalang impormasyon na ang isang tao ay nagbibigay sa iyo, 470 00:23:08,770 --> 00:23:11,420 posible mong mademanda. 471 00:23:11,420 --> 00:23:12,610 At kami talagang ayaw na. 472 00:23:12,610 --> 00:23:14,955 >> Kaya kapag naglalagay ka ng iyong website out, at ikaw ay isang talagang cool na 473 00:23:14,955 --> 00:23:17,230 disenyo, sana ay iyong ginawa isang kahanga-hangang huling proyekto. 474 00:23:17,230 --> 00:23:18,370 Ang anumang ka uri ng mga nais na ilagay ito out doon. 475 00:23:18,370 --> 00:23:21,420 Gusto mong siguraduhin na kung ano ang ka pagkuha mula sa gumagamit, kung ito ay 476 00:23:21,420 --> 00:23:25,310 personal na makikilalang impormasyon, mo nais upang makatiyak na iyong pagiging talaga 477 00:23:25,310 --> 00:23:26,560 ingatan ito. 478 00:23:26,560 --> 00:23:29,670 479 00:23:29,670 --> 00:23:31,080 >> Shell iniksyon. 480 00:23:31,080 --> 00:23:31,350 OK. 481 00:23:31,350 --> 00:23:37,590 Shell iniksyon ay nagbibigay-daan sa nanghihimasok sa makakuha ng access sa iyong aktwal na command line 482 00:23:37,590 --> 00:23:39,660 sa iyong server. 483 00:23:39,660 --> 00:23:44,060 At kaya siya ay magagawang mapatakbo ang code na hindi mo makokontrol. 484 00:23:44,060 --> 00:23:49,560 Hayaan ang tumagal ng isang halimbawa ng ito magandang string dito mismo. 485 00:23:49,560 --> 00:23:55,570 Kung namin pumunta sa website muli, ako pagpunta sa pumunta sa code iniksyon. 486 00:23:55,570 --> 00:23:58,910 Kaya kung ano ang ginagawa ay - 487 00:23:58,910 --> 00:24:00,420 ito ay din kung ano ang kami ay tumitingin sa bago. 488 00:24:00,420 --> 00:24:11,200 Kami ay pagpapaalam ang gumagamit ilalagay sa kahit anong Nais ni siya, at ito ay i-print out 489 00:24:11,200 --> 00:24:12,220 kahit anong gusto mo. 490 00:24:12,220 --> 00:24:13,890 >> Kaya Pupunta ako upang ilagay ang isang tawag. 491 00:24:13,890 --> 00:24:15,540 Ano ang ginagawa ay - 492 00:24:15,540 --> 00:24:16,940 ito ay magsimula sa pamamagitan ng concatenating. 493 00:24:16,940 --> 00:24:19,520 Kaya ito ay hayaan mo akong tumakbo kahit anong Command running ng tao 494 00:24:19,520 --> 00:24:21,500 bago at ang aking utos. 495 00:24:21,500 --> 00:24:23,980 At ako nagpapatakbo ng isang command system. 496 00:24:23,980 --> 00:24:27,310 At ang mga huling string ay - tandaan ano usapan ko sa iyo guys tungkol sa, 497 00:24:27,310 --> 00:24:31,725 samantalang mayroon kang upang i-encode ito sa isang pamamaraan sa URL. 498 00:24:31,725 --> 00:24:35,010 499 00:24:35,010 --> 00:24:36,992 Kung nagpapatakbo ko ito ngayon - 500 00:24:36,992 --> 00:24:39,150 Kukunin ko ipakita sa iyo sa paglipas dito - 501 00:24:39,150 --> 00:24:41,100 makikita mo na natapos ko up pagpapatakbo ng isang command. 502 00:24:41,100 --> 00:24:45,700 503 00:24:45,700 --> 00:24:49,320 >> Ito ay talagang ang aktwal na server na ang aking website ay tumatakbo sa. 504 00:24:49,320 --> 00:24:55,840 505 00:24:55,840 --> 00:24:58,510 Kaya hindi namin nais na, dahil maari ba akong magpatakbo - 506 00:24:58,510 --> 00:25:00,320 server na ito ay hindi mina. 507 00:25:00,320 --> 00:25:04,030 Kaya hindi ko nais upang sirain ang kanyang kapatid na babae, server Marcus ni. 508 00:25:04,030 --> 00:25:07,470 Ngunit maaari kang magpatakbo ng higit pang mga utos na mapanganib. 509 00:25:07,470 --> 00:25:11,885 At potensyal na, maaari mong tanggalin ang mga file, alisin ang mga direktoryo. 510 00:25:11,885 --> 00:25:14,390 511 00:25:14,390 --> 00:25:17,970 Maaari ko bang tanggalin ang isang tiyak na direktoryo kung Nais kong, ngunit hindi ko nais na 512 00:25:17,970 --> 00:25:19,530 upang gawin iyon sa Marcus. 513 00:25:19,530 --> 00:25:20,420 Siya ay isang magaling na tao. 514 00:25:20,420 --> 00:25:21,470 Hayaan niya ako humiram kanyang server. 515 00:25:21,470 --> 00:25:24,620 Kaya Pupunta ako upang ipaalam sa kanya off sa isang magandang. 516 00:25:24,620 --> 00:25:32,280 >> Kaya kung ano ang hindi namin nais na gumamit ng - hindi namin nais na gumamit ng eval o system. 517 00:25:32,280 --> 00:25:34,755 Eval o system ay nagbibigay-daan sa amin upang gumawa ng mga tawag na ito system. 518 00:25:34,755 --> 00:25:37,410 519 00:25:37,410 --> 00:25:38,410 Eval paraan suriin. 520 00:25:38,410 --> 00:25:40,790 Ang ibig sabihin ng System kung ano ang aking nagpatakbo. 521 00:25:40,790 --> 00:25:42,490 Ito ay magpatakbo ng isang bagay sa sistema. 522 00:25:42,490 --> 00:25:46,730 Ngunit maaari naming ipagbawal mga bagay na ito sa PHP nang sa gayon ay hindi namin ginagamit ang mga ito. 523 00:25:46,730 --> 00:25:47,400 At upload ng file. 524 00:25:47,400 --> 00:25:49,180 Ako ay pagpunta sa gawin ang isang kahanga-hangang bagay sa pag-upload ng file. 525 00:25:49,180 --> 00:25:52,740 Ngunit tulad sinabi ko sa inyo guys, ang aking file pag-upload ng bagay ay hindi gumagana. 526 00:25:52,740 --> 00:25:54,590 Kung ako ay upang mag-upload ng isang file sa ngayon - 527 00:25:54,590 --> 00:25:57,120 528 00:25:57,120 --> 00:26:00,830 kung ako ay upang mag-upload ng isang file, at ito ay isang larawan - 529 00:26:00,830 --> 00:26:03,180 mayroon kang isang upload bagay na ang isang larawan na. 530 00:26:03,180 --> 00:26:03,660 Iyon ay pinong. 531 00:26:03,660 --> 00:26:04,280 Walang bagay ang mangyayari. 532 00:26:04,280 --> 00:26:10,840 >> Ngunit kung mayroon kang isang-upload ng file, para sa Halimbawa, at talagang pag-upload ng user 533 00:26:10,840 --> 00:26:19,220 isang file ng PHP o isang exe file o isang bagay tulad na, pagkatapos ay maaari mong potensyal na 534 00:26:19,220 --> 00:26:19,740 magkaroon ng problema. 535 00:26:19,740 --> 00:26:21,390 Ito ay gumagana bago. 536 00:26:21,390 --> 00:26:25,202 Sa kasamaang-palad para sa akin, ito ay Hindi gumagana na ngayon. 537 00:26:25,202 --> 00:26:30,230 Kung ako, halimbawa, i-upload ang file na ito, ako hindi nakakakuha ng pahintulot na i-upload 538 00:26:30,230 --> 00:26:33,400 ang file dahil sa server hindi pagiging mina. 539 00:26:33,400 --> 00:26:38,670 Kaya ang tao talaga ang smart. 540 00:26:38,670 --> 00:26:39,610 >> Kaya hindi namin nais na - 541 00:26:39,610 --> 00:26:40,130 Pupunta ako upang ipakita sa iyo guys - 542 00:26:40,130 --> 00:26:41,840 OK, ito ang ilang mga talagang cool na mga tool. 543 00:26:41,840 --> 00:26:45,100 Kaya ang mga - 544 00:26:45,100 --> 00:26:47,715 pumunta sa - kung ikaw guys mayroon Firefox - sana ay gagawin mo. 545 00:26:47,715 --> 00:26:54,260 Mayroong dalawang mga add-on na tinatawag na SQL mag-iniksyon Ako at Cross-Site Script Akin. 546 00:26:54,260 --> 00:26:56,870 Buksan up ang mga ito bilang maliit na bahagi mga bar sa gilid. 547 00:26:56,870 --> 00:27:01,480 At kung ako ay upang pumunta sa CS60 halimbawa - 548 00:27:01,480 --> 00:27:04,210 kaya kung ano ang ginagawa nito ay mukha itong para sa lahat ng mga form na - 549 00:27:04,210 --> 00:27:07,220 550 00:27:07,220 --> 00:27:08,760 sana, hindi ako makakakuha ng sa pag para sa ito. 551 00:27:08,760 --> 00:27:09,190 >> Ngunit ang OK. 552 00:27:09,190 --> 00:27:12,600 Narito ang pin ng system. 553 00:27:12,600 --> 00:27:18,946 Kaya kapag ako ay magsisimulang naghahanap ng butas sa ang system, ang unang bagay na gagawin ko ay 554 00:27:18,946 --> 00:27:21,820 Bubuksan ang magandang maliit tool sa gilid. 555 00:27:21,820 --> 00:27:24,160 At ako pagpunta sa subukan ang mga form may auto-atake. 556 00:27:24,160 --> 00:27:28,510 At kaya kung ano ang ginagawa ay ito ay dahan-dahan buksan up ng isang bungkos ng mga browser. 557 00:27:28,510 --> 00:27:29,930 Narito ang isang bungkos ng mga browser. 558 00:27:29,930 --> 00:27:33,320 At ito ay sinusubukan bawat solong kumbinasyon ng scripting cross-site 559 00:27:33,320 --> 00:27:37,380 na mayroong posibleng sabihin, kung nakikita mo sa gilid. 560 00:27:37,380 --> 00:27:42,080 >> At ito ay ninyo ako ng resulta uri ng kung ano ang sagot ay. 561 00:27:42,080 --> 00:27:42,860 Ang lahat ng mga pumasa. 562 00:27:42,860 --> 00:27:43,910 Malinaw, ang lahat ng mga ito pumasa. 563 00:27:43,910 --> 00:27:46,190 Ibig kong sabihin, ang mga ito ay talagang matalino mga tao up doon. 564 00:27:46,190 --> 00:27:48,010 Ngunit kung ako ay upang tumakbo - 565 00:27:48,010 --> 00:27:52,050 Nagkaroon na ako ng beses bago kapag tumakbo ko ito sa huling proyekto ng mga mag-aaral '. 566 00:27:52,050 --> 00:27:56,080 Ba akong magpatakbo ng simpleng SQL mag-iniksyon sa Akin sa lahat ng iba't ibang mga pag-atake. 567 00:27:56,080 --> 00:28:00,080 At ito ay sinusubukan upang mag-iniksyon SQL pin server na ito. 568 00:28:00,080 --> 00:28:03,590 Kaya kung mag-scroll pababa kami, para sa Halimbawa, sinasabi nito - 569 00:28:03,590 --> 00:28:04,960 ito ay mabuti kung ito ay nagbabalik. 570 00:28:04,960 --> 00:28:08,250 >> Kaya sinubukan ito ng ilang mga tiyak na halaga. 571 00:28:08,250 --> 00:28:11,170 At nagbalik ang server ng isang ang code na iyon ay negatibo. 572 00:28:11,170 --> 00:28:11,780 Alisin ang pansamantalang. 573 00:28:11,780 --> 00:28:13,030 Na ito ay mabuti. 574 00:28:13,030 --> 00:28:17,050 575 00:28:17,050 --> 00:28:20,750 Sinusubukan nitong lahat ng mga test. 576 00:28:20,750 --> 00:28:21,790 Kaya maaari mo lamang tumakbo - 577 00:28:21,790 --> 00:28:27,860 Gusto ko makita ko ang isang website real mabilis na ipaalam sa akin - 578 00:28:27,860 --> 00:28:29,110 siguro ang CS50 store. 579 00:28:29,110 --> 00:28:43,890 580 00:28:43,890 --> 00:28:45,711 >> Wow, ito ay pagpunta sa tumagal paraan masyadong mahaba. 581 00:28:45,711 --> 00:28:53,090 582 00:28:53,090 --> 00:28:55,130 Ipapaalam ko ang unang pagsubok Hindi matapos kanan. 583 00:28:55,130 --> 00:28:57,330 Kaya ito ay nagrereklamo. 584 00:28:57,330 --> 00:28:58,470 Kaya ito ay mga tatlong bagay. 585 00:28:58,470 --> 00:29:00,430 Mga tool na ito ay libre. 586 00:29:00,430 --> 00:29:03,960 Maaari mong i-download ang mga ito at patakbuhin ang mga ito sa ng iyong website, at ito ay magsasabi sa iyo kung 587 00:29:03,960 --> 00:29:06,650 mayroon kang scripting cross-site, kung mayroon kang SQL, kung mayroon kang 588 00:29:06,650 --> 00:29:07,900 isang bagay ng katulad. 589 00:29:07,900 --> 00:29:12,230 590 00:29:12,230 --> 00:29:14,500 Uri ng ako ang panggugulo up. 591 00:29:14,500 --> 00:29:15,550 >> Ano ang mahalaga - 592 00:29:15,550 --> 00:29:17,900 OK, kaya hindi pinagkakatiwalaan ng user. 593 00:29:17,900 --> 00:29:21,920 Anuman ang input ng user sa iyo, gumawa sigurado sanitize mo ito, linisin mo ito, 594 00:29:21,920 --> 00:29:25,300 nag-check para sa mga tamang bagay, na ito ay nagbibigay sa iyo kung ano ang iyong 595 00:29:25,300 --> 00:29:28,240 gusto sa kanya upang ibigay sa iyo. 596 00:29:28,240 --> 00:29:32,460 Palaging ma-update sa kung ano Framework na aktwal na gumagamit ka. 597 00:29:32,460 --> 00:29:34,630 Kung gumagamit ka ng isang bagay tulad bootstrap - 598 00:29:34,630 --> 00:29:36,340 Alam ko ka guys ay pumunta upang magamit bootstrap dahil pupuntahan niya upang pumunta 599 00:29:36,340 --> 00:29:38,140 sa paglipas ng ito sa lalong madaling panahon sa klase - 600 00:29:38,140 --> 00:29:43,120 at Wordpress o isang bagay tulad na, normal na ito ma-hack. 601 00:29:43,120 --> 00:29:44,770 >> At pagkatapos ay hindi mo kahit na alam. 602 00:29:44,770 --> 00:29:45,800 Lamang Nagpapatakbo ka ng iyong website. 603 00:29:45,800 --> 00:29:47,360 At ito ay lubos na ligtas. 604 00:29:47,360 --> 00:29:51,730 At ka bumaba. 605 00:29:51,730 --> 00:29:54,000 Kaya ako fishing talaga maaga. 606 00:29:54,000 --> 00:29:55,770 Pero gusto kong pasalamatan Pentest Labs. 607 00:29:55,770 --> 00:29:58,140 Pupunta ako upang ipakita sa iyo guys isang bagay tinatawag Pentest Labs. 608 00:29:58,140 --> 00:30:05,000 Kung ikaw guys ay talagang interesado sa ano seguridad talagang sabihin, mayroong isang 609 00:30:05,000 --> 00:30:07,300 website na tinatawag na Pentest Labs kung ka guys pumunta dito ngayon. 610 00:30:07,300 --> 00:30:10,730 Oh, well, hindi iyon ito. 611 00:30:10,730 --> 00:30:12,030 Lamang ako ng pagpunta sa patakbuhin ito tulad nito. 612 00:30:12,030 --> 00:30:14,400 Sinasabi sa Google sa akin ang sagot. 613 00:30:14,400 --> 00:30:16,590 >> OK. 614 00:30:16,590 --> 00:30:19,030 At ito ay nagtuturo gamitin mo - kaya ito sabi, dagdagan ang web pagtagos 615 00:30:19,030 --> 00:30:21,060 pagsubok ng karapatan paraan. 616 00:30:21,060 --> 00:30:23,650 Itinuturo mo ito - 617 00:30:23,650 --> 00:30:25,150 sana, ikaw ay isang etikal tao. 618 00:30:25,150 --> 00:30:29,200 Ngunit ito ay nagtuturo sa iyo kung paano ka maaaring tumingin sa kung paano mo maaaring makuha sa loob ng mga website. 619 00:30:29,200 --> 00:30:31,130 At kung malaman mo kung paano maaari kang makakuha sa loob mga website, maaari mong malaman kung paano 620 00:30:31,130 --> 00:30:34,960 protektahan ang iyong sarili mula sa pagkuha ng sa loob ng mga website. 621 00:30:34,960 --> 00:30:39,100 Hayaan akong mag-zoom in dahil marahil ka guys hindi naghahanap sa karapatang ito. 622 00:30:39,100 --> 00:30:46,350 >> Mula sa SQL iniksyon sa shell, kaya uri ng kung paano ko makukuha mula sa SQL 623 00:30:46,350 --> 00:30:48,530 iniksyon sa shell. 624 00:30:48,530 --> 00:30:53,890 At i-download mo ang virtual machine. 625 00:30:53,890 --> 00:30:55,690 At ang mga virtual machine na pagdating sa website na ikaw ay 626 00:30:55,690 --> 00:30:56,780 pagpunta sa subukan ito sa. 627 00:30:56,780 --> 00:30:58,030 I-download mo ang PDF. 628 00:30:58,030 --> 00:31:03,610 629 00:31:03,610 --> 00:31:08,370 At ito ay magpapakita sa iyo ng linya sa pamamagitan ng linya ano kailangan mo lang gawin, ano suriin mo. 630 00:31:08,370 --> 00:31:14,560 Ito ay kung ano ang isang pag-atake talaga gumagana upang makakuha sa loob ng isang website. 631 00:31:14,560 --> 00:31:15,750 >> At ang ilan sa mga bagay na ito ay kumplikado. 632 00:31:15,750 --> 00:31:17,520 Gusto ko kaya kong pumunta sa paglipas ng higit pa bagay sa iyo guys. 633 00:31:17,520 --> 00:31:21,090 Ngunit mag-alala ko na guys may hindi talaga - 634 00:31:21,090 --> 00:31:23,090 ito ay kung ano ako nagpunta sa paglipas ng may ka guys, pagsusuri ng web 635 00:31:23,090 --> 00:31:26,830 para sa pagsubok pagtagos. 636 00:31:26,830 --> 00:31:33,540 Huwag talaga alam kung ano ang SQL ay at kung ano - 637 00:31:33,540 --> 00:31:35,960 Pantas-aral Carl Jackson ni ay kahanga-hangang pati na rin. 638 00:31:35,960 --> 00:31:37,360 Ikaw guys hindi alam-uri ng kung ano ito ay. 639 00:31:37,360 --> 00:31:39,450 Ngunit kung kang pumunta sa website na ito, at i-download ang mga tutorial at mga 640 00:31:39,450 --> 00:31:43,290 Mga PDF, maaari mong tingnan ang uri ng kung ano talaga ang ginagawa ng lugar ng seguridad 641 00:31:43,290 --> 00:31:46,940 sa pagsubok pagtagos, tingnan kung paano maaari mong makakuha sa loob ng mga website at protektahan ang 642 00:31:46,940 --> 00:31:48,020 ang iyong sarili mula dito. 643 00:31:48,020 --> 00:31:56,360 >> Kaya kapag gumawa ako ng isang sobrang mabilis na pangkalahatang-ideya, Makikita ito ma-pigilan ang scripting cross-site. 644 00:31:56,360 --> 00:32:00,160 Gusto mong gamitin htmlspecialchars bawat minsan, ang input ng user ang isang bagay. 645 00:32:00,160 --> 00:32:01,580 Pigilan ang SQL iniksyon. 646 00:32:01,580 --> 00:32:04,510 Kung gagawin mo iyon, ikaw ay isa nang mas mahusay na off kaysa sa Harvard noon ay 647 00:32:04,510 --> 00:32:06,530 kapag sila Nakakuha nilabag. 648 00:32:06,530 --> 00:32:10,510 At siguraduhin na ang iyong mga password wala sa plain text. 649 00:32:10,510 --> 00:32:16,220 Tiyakin na ikaw ay hindi lamang isang paraan ng hash ang mga ito ngunit na gamitin mo ang silid sa ilalim ng lupa, ang PHP 650 00:32:16,220 --> 00:32:18,670 function na ito ay nagpakita ko sa inyo guys. 651 00:32:18,670 --> 00:32:20,060 Sa ganoong paraan, dapat mong maging mahusay. 652 00:32:20,060 --> 00:32:25,830 >> Gayundin, kung hayaan ang iyong mga kaibigan mo, magpatakbo SQL mag-iniksyon sa Akin sa kanilang mga website. 653 00:32:25,830 --> 00:32:28,140 Patakbuhin ang cross-site na pag-script sa kanilang mga website. 654 00:32:28,140 --> 00:32:33,720 At makikita mo ang isang pulutong ng mga website na ito May isang tonelada ng mga kahinaan. 655 00:32:33,720 --> 00:32:40,400 Ito ay hindi kapani-paniwala kung paano kalimutan magkano mga tao upang sanitize ang kanilang mga database o upang magsagawa ng 656 00:32:40,400 --> 00:32:46,340 sigurado kung ano ang inputting ng tao Hindi code ng script. 657 00:32:46,340 --> 00:32:47,200 OK. 658 00:32:47,200 --> 00:32:49,182 Ako uri ng mga natapos na talaga maaga pa. 659 00:32:49,182 --> 00:32:56,510 Ngunit kung ang sinuman ay may anumang mga katanungan tungkol sa anumang bagay, maaari mong kunan ng larawan sa akin ng isang katanungan. 660 00:32:56,510 --> 00:32:56,630 Oo. 661 00:32:56,630 --> 00:32:56,970 Pumunta, pumunta. 662 00:32:56,970 --> 00:32:59,846 >> Madla: gusto ko lang ang magtanong, Maaari ipaliwanag sa iyo kung paano ang file 663 00:32:59,846 --> 00:33:03,160 mag-upload ng eksaktong mga gawa. 664 00:33:03,160 --> 00:33:03,480 >> Luciano ARANGO: Oo. 665 00:33:03,480 --> 00:33:06,350 Kaya hayaan mo akong ipakita sa iyo ang file mag-upload ng mga tunay na mabilis. 666 00:33:06,350 --> 00:33:11,300 Kaya ang pag-upload ng file - 667 00:33:11,300 --> 00:33:14,500 talas ng isip ang problema sa pag-upload ng file ngayon ay na - 668 00:33:14,500 --> 00:33:18,541 Pupunta ako upang buksan ang code kaya ka guys tingnan ang code sa likod ng mga eksena. 669 00:33:18,541 --> 00:33:22,390 670 00:33:22,390 --> 00:33:24,305 At ito ay mag-upload. 671 00:33:24,305 --> 00:33:28,030 672 00:33:28,030 --> 00:33:31,560 Narito ang isang code para sa file ng uploader. 673 00:33:31,560 --> 00:33:33,980 >> Kami ay sinusubukan upang pumunta sa na ito direktoryo sa paglipas dito. 674 00:33:33,980 --> 00:33:37,380 675 00:33:37,380 --> 00:33:44,880 At sinusubukan naming, sa sandaling input namin ang file, isset file - kaya kapag may 676 00:33:44,880 --> 00:33:50,900 mag-file sa FILES, na imahe, pagkatapos ay subukan namin upang ilipat ito dito. 677 00:33:50,900 --> 00:33:51,910 Grab namin ang file sa paglipas dito. 678 00:33:51,910 --> 00:33:58,350 Ang pamamaraan ay POST, uri, larawan, file. 679 00:33:58,350 --> 00:33:59,630 At kami ay pagpapadala sa ang file na ito. 680 00:33:59,630 --> 00:34:03,910 At pagkatapos ay sa sandaling makuha namin ito, kaya sa sandaling file May isang imahe, sinusubukan naming ipadala ito 681 00:34:03,910 --> 00:34:05,060 sa direktoryong ito. 682 00:34:05,060 --> 00:34:09,814 >> Ang problema ay na ang mga website ay hindi pagpapaalam sa akin pumunta sa direktoryong ito, 683 00:34:09,814 --> 00:34:12,239 dahil hindi ito gusto sa akin upang bumalik. 684 00:34:12,239 --> 00:34:13,489 Hindi nito gusto sa akin upang pumunta - 685 00:34:13,489 --> 00:34:15,620 686 00:34:15,620 --> 00:34:17,070 Kailangan ko bang pumunta - kaya dito ay mag-upload. 687 00:34:17,070 --> 00:34:17,639 Narito ang mga imahe. 688 00:34:17,639 --> 00:34:21,780 Kailangan ko bang pumunta lahat ng mga paraan pabalik sa nagsisimula at ilagay ito sa doon at pagkatapos ay 689 00:34:21,780 --> 00:34:23,820 pumunta at ilagay ito sa direktoryo. 690 00:34:23,820 --> 00:34:30,000 Kaya kung tumatakbo ako ay isang terminal na window, at gusto kong ilipat ang isang file - 691 00:34:30,000 --> 00:34:30,409 [Hindi marinig] 692 00:34:30,409 --> 00:34:32,159 ang maaaring makakita nito. 693 00:34:32,159 --> 00:34:37,940 Kung Nais kong ilipat ang isang file, mayroon akong upang ilagay ang pangalan ng file at pagkatapos ay ang 694 00:34:37,940 --> 00:34:40,860 Kumpleto na ang landas na gusto kong ipadala ito sa. 695 00:34:40,860 --> 00:34:45,110 >> At pagkatapos ay ang server ay hindi pagpapaalam sa akin bumalik. 696 00:34:45,110 --> 00:34:46,929 At kaya hindi ito pagpapaalam ako makapunta sa file na iyon. 697 00:34:46,929 --> 00:34:47,670 Ngunit karaniwan - 698 00:34:47,670 --> 00:34:49,360 kaya mayroong isang code para sa pag-upload ng isang file. 699 00:34:49,360 --> 00:34:52,260 Kaya normal kung ano ang mangyayari ay na ang mga taong hindi pag-check kung ang aking file 700 00:34:52,260 --> 00:34:57,920 ay nagtatapos sa. jpeg, kaya ko Gusto gusto mong tingnan. 701 00:34:57,920 --> 00:35:00,054 Hayaan akong buksan ang isang halimbawa masyadong real mabilis. 702 00:35:00,054 --> 00:35:07,766 703 00:35:07,766 --> 00:35:08,260 >> OK. 704 00:35:08,260 --> 00:35:09,230 Ang taong ito kanan - 705 00:35:09,230 --> 00:35:11,980 kaya halimbawa dalawang ay pagsuri kung preg_match - 706 00:35:11,980 --> 00:35:14,180 dito ito ay higit sa dito - 707 00:35:14,180 --> 00:35:19,660 upang matiyak na nagtatapos sa PHP, na kung saan ay mabuti. 708 00:35:19,660 --> 00:35:20,580 Na ito ay mabuti. 709 00:35:20,580 --> 00:35:22,820 Subalit mayroong isang tunay na malaki problema sa ito. 710 00:35:22,820 --> 00:35:24,600 Na ito ay mabuti. 711 00:35:24,600 --> 00:35:44,190 Ngunit kung ako ay upang ilagay ang isang file na tinatawag na myfavoritepicture.php.jpeg, magagawa ko 712 00:35:44,190 --> 00:35:50,060 potensyal na makakuha pa rin mapupuksa ang mga jpeg at magpatakbo ng it.k Iyon mapanganib na PHP ni. 713 00:35:50,060 --> 00:35:53,850 Hindi mo na nais ang mga tao upang magawang upang mapatakbo ang code sa iyong website. 714 00:35:53,850 --> 00:35:55,750 >> Ngunit pagkatapos. Jpeg ay nagbibigay-daan ito pumasa. 715 00:35:55,750 --> 00:36:00,720 Ang ideya ay kung ano ang gusto mo talagang gawin Hindi tumagal ng mga file, A. Subalit, OK, kung ano 716 00:36:00,720 --> 00:36:07,500 gusto mo talagang gawin ay siguraduhin na ang basahin mo sa buong mundo. 717 00:36:07,500 --> 00:36:08,720 At walang kung. PHP sa loob nito. 718 00:36:08,720 --> 00:36:10,500 Walang. Php sa buong pangalan ng file. 719 00:36:10,500 --> 00:36:12,780 >> Madla: Ngunit magagawa mo ilagay. jpeg sa dulo. 720 00:36:12,780 --> 00:36:15,830 Ang mga server tumakbo pa rin ang code. 721 00:36:15,830 --> 00:36:16,870 >> Luciano ARANGO: Hindi, ito ay hindi patakbuhin sa simula. 722 00:36:16,870 --> 00:36:22,310 Mayroon kang upang bumalik at subukan upang makita kung maaari mong - 723 00:36:22,310 --> 00:36:24,210 >> Madla: So mayroon kaming upang - 724 00:36:24,210 --> 00:36:26,020 OK, isa pang lamang hanay na nagsasangkot - 725 00:36:26,020 --> 00:36:26,936 >> Luciano ARANGO: Oo. 726 00:36:26,936 --> 00:36:29,230 >> Madla: ang OK. 727 00:36:29,230 --> 00:36:31,486 >> Luciano ARANGO: Oo. 728 00:36:31,486 --> 00:36:31,900 OK. 729 00:36:31,900 --> 00:36:32,865 Anumang iba pang mga katanungan? 730 00:36:32,865 --> 00:36:33,180 OK. 731 00:36:33,180 --> 00:36:37,350 Pupunta ako sa iwanan ito up at uri-uriin ng subukan upang makita kung ikaw guys maaari - 732 00:36:37,350 --> 00:36:40,490 ang iba pang alin ang kaunti higit pa kumplikado dahil nangangailangan ang mga iyon magkano 733 00:36:40,490 --> 00:36:44,050 higit na kaalaman ng SQL kaysa lamang ang nagsisimula na kaalaman sa web SQL ay at 734 00:36:44,050 --> 00:36:47,010 ano ang JavaScript ay. 735 00:36:47,010 --> 00:36:49,730 Ngunit Pupunta ako sa subukan upang panatilihin ito up, at sana ka guys ay malaman 736 00:36:49,730 --> 00:36:53,230 tungkol sa ito at subukang kumuha ng pagsilip sa ano ang iyong magagawa at kung gaano karaming mga halimbawa 737 00:36:53,230 --> 00:36:54,420 maaari kang makakuha sa pamamagitan ng. 738 00:36:54,420 --> 00:36:56,020 >> Sinuman ay may anumang iba pang mga mga tanong tungkol dito? 739 00:36:56,020 --> 00:36:59,387 740 00:36:59,387 --> 00:37:00,350 Sige. 741 00:37:00,350 --> 00:37:01,170 Oo, shoot, shoot. 742 00:37:01,170 --> 00:37:01,580 Oo, sige. 743 00:37:01,580 --> 00:37:01,850 Sige. 744 00:37:01,850 --> 00:37:02,310 >> Madla: ang OK. 745 00:37:02,310 --> 00:37:08,870 Kaya narinig ko tungkol sa kung paano Magic Quote Hindi secure ang sapat. 746 00:37:08,870 --> 00:37:09,280 >> Luciano ARANGO: Ano - 747 00:37:09,280 --> 00:37:10,110 Magic Quote? 748 00:37:10,110 --> 00:37:10,595 >> Madla: Oo. 749 00:37:10,595 --> 00:37:15,445 Kaya ito ay nagdadagdag ng - kaya sa tuwing input mo isang bagay, ito laging nagdadagdag ng mga quote. 750 00:37:15,445 --> 00:37:15,930 >> Luciano ARANGO: Oo. 751 00:37:15,930 --> 00:37:16,000 Oo. 752 00:37:16,000 --> 00:37:16,496 OK. 753 00:37:16,496 --> 00:37:19,113 >> Madla: At pagkatapos ko bagaman na nagtrabaho, ngunit pagkatapos ay hinanap ko ito up. 754 00:37:19,113 --> 00:37:21,648 At sinabi ito hindi ito mahusay. 755 00:37:21,648 --> 00:37:23,050 Ngunit Hindi ako sigurado kung bakit. 756 00:37:23,050 --> 00:37:23,360 >> Luciano ARANGO: Oo. 757 00:37:23,360 --> 00:37:26,240 >> Madla: Huwag gumamit ng Magic Quote, dahil hindi ito ligtas. 758 00:37:26,240 --> 00:37:26,360 >> Luciano ARANGO: OK. 759 00:37:26,360 --> 00:37:31,735 Kaya Magic Quote ay kapag nagpasok ka ng SQL at na nagdadagdag ito ng mga quote para sa iyo. 760 00:37:31,735 --> 00:37:33,520 >> Madla: Ito laging nagdadagdag ng quote sa paligid ng kahit anupamang kang maglagay in 761 00:37:33,520 --> 00:37:34,210 >> Luciano ARANGO: Oo. 762 00:37:34,210 --> 00:37:37,190 Kaya ang problema sa na ay na - 763 00:37:37,190 --> 00:37:38,445 Kukunin ko ang isang pagtingin sa - 764 00:37:38,445 --> 00:37:41,390 >> Madla: Paano ito makuha ang SQL pahayag? 765 00:37:41,390 --> 00:37:44,690 O kaya hulaan ko maaaring ito ay tulad quote piliin. 766 00:37:44,690 --> 00:37:49,030 >> Luciano ARANGO: Oo, kailangan mo magandang quote para sa SQL. 767 00:37:49,030 --> 00:37:52,900 >> Madla: Hindi, ngunit ang server gumagana ito para sa iyo. 768 00:37:52,900 --> 00:37:54,460 >> Luciano ARANGO: Ang mga maliit na quote dito mismo, ang mga maliliit na quote? 769 00:37:54,460 --> 00:37:55,670 >> Madla: Oo. 770 00:37:55,670 --> 00:37:56,450 >> Luciano ARANGO: Oo. 771 00:37:56,450 --> 00:37:59,860 Ang problema ay na maaari mong magkomento out sa huling - 772 00:37:59,860 --> 00:38:05,770 OK, kaya kung ano ang maaari kong gawin ay ang maaari kong magkomento out - maglaan ng isang pagtingin sa kaya hayaan - ipaalam sa akin 773 00:38:05,770 --> 00:38:07,920 buksan ang isang teksto-edit ng file. 774 00:38:07,920 --> 00:38:09,610 Hayaan ang i-edit sa akin lang ito dito mismo direkta. 775 00:38:09,610 --> 00:38:19,510 776 00:38:19,510 --> 00:38:20,400 OK. 777 00:38:20,400 --> 00:38:23,710 Puwede ba kayong guys makita na malinaw? 778 00:38:23,710 --> 00:38:29,730 Ano ang maaari kong gawin ay ang maaari kong magkomento out ang huli. 779 00:38:29,730 --> 00:38:32,190 Ito ay magkomento out ang huli. 780 00:38:32,190 --> 00:38:36,760 At pagkatapos ay makikita ko bang ilagay ang isa dito, ilagay lahat ng nakahahamak na mga bagay-bagay dito. 781 00:38:36,760 --> 00:38:39,840 782 00:38:39,840 --> 00:38:42,630 >> Kaya ang user ay talagang inputting, tama? 783 00:38:42,630 --> 00:38:45,230 Hindi inputting Ang gumagamit ang mga bagay, i-right? 784 00:38:45,230 --> 00:38:47,430 Ito ay kung ano Pupunta ako sa input bilang ang taong sinusubukan mong makakuha sa loob. 785 00:38:47,430 --> 00:38:49,430 Pupunta ako sa ilalagay sa - 786 00:38:49,430 --> 00:38:59,290 787 00:38:59,290 --> 00:39:00,180 na isa panipi. 788 00:39:00,180 --> 00:39:01,760 Ito ay squiggly sa pamamagitan lamang ng pagkakamali. 789 00:39:01,760 --> 00:39:15,080 790 00:39:15,080 --> 00:39:19,400 At pagkatapos ay kung ano ang code ay pagpunta sa gawin - 791 00:39:19,400 --> 00:39:20,190 Paumanhin, ako pagpunta sa tumagal ito out. 792 00:39:20,190 --> 00:39:22,170 Ano ang code ay pagpunta sa gawin ay ito ay pagpunta sa magdagdag ng unang 793 00:39:22,170 --> 00:39:24,030 nagmamarka panipi dito. 794 00:39:24,030 --> 00:39:26,040 At ito ang nangyayari upang idagdag ang huling quotation mark pati na rin. 795 00:39:26,040 --> 00:39:29,350 796 00:39:29,350 --> 00:39:33,270 >> At itong ibang mapupuntahan din upang idagdag ang huling, huling panipi. 797 00:39:33,270 --> 00:39:37,380 Ngunit ako pagkomento sa mga panipi nagmamarka out, kaya wala silang tumakbo. 798 00:39:37,380 --> 00:39:41,440 At ako Tinatapos ito marks markahan sa paglipas dito. 799 00:39:41,440 --> 00:39:42,290 Huwag mong maunawaan? 800 00:39:42,290 --> 00:39:43,750 Nawala ka ba? 801 00:39:43,750 --> 00:39:45,880 Maaari kong magkomento sa huling panipi mark, at na ang bahala sa 802 00:39:45,880 --> 00:39:46,680 unang panipi. 803 00:39:46,680 --> 00:39:47,350 >> Madla: At matapos lamang ang unang isa. 804 00:39:47,350 --> 00:39:47,480 >> Luciano ARANGO: Oo. 805 00:39:47,480 --> 00:39:48,400 At matapos lang ang unang isa. 806 00:39:48,400 --> 00:39:48,790 Oo, na tama. 807 00:39:48,790 --> 00:39:50,800 Iyon ay kung ano ang maaari kong gawin. 808 00:39:50,800 --> 00:39:51,890 Oo. 809 00:39:51,890 --> 00:39:52,980 Anumang iba pang mga katanungan na tulad na? 810 00:39:52,980 --> 00:39:54,230 Iyon ay isang mahusay na tanong. 811 00:39:54,230 --> 00:39:56,960 812 00:39:56,960 --> 00:39:59,790 Hindi, oo, siguro. 813 00:39:59,790 --> 00:40:06,150 Sana, ka guys ay isang uri ng gumawa higit pang kahulugan kapag pag-aralan mo SQL at 814 00:40:06,150 --> 00:40:06,650 mga bagay tulad na. 815 00:40:06,650 --> 00:40:07,980 Ngunit tiyakin mo - 816 00:40:07,980 --> 00:40:10,340 panatilihin ang mga tool na ito sa panonood. 817 00:40:10,340 --> 00:40:12,760 Paumanhin, mga tool na ito sa paglipas dito. 818 00:40:12,760 --> 00:40:14,200 Mga tool na ito ay magaling. 819 00:40:14,200 --> 00:40:17,190 Kung sinuman ay may anumang mga katanungan, Maaari mo ring i-email sa akin. 820 00:40:17,190 --> 00:40:19,020 Ito ang aking normal email. 821 00:40:19,020 --> 00:40:25,015 At ito ang aking email sa trabaho, na ay kapag gumana ako sa mga dagat. 822 00:40:25,015 --> 00:40:26,040 >> OK, salamat. 823 00:40:26,040 --> 00:40:26,740 Salamat, guys. 824 00:40:26,740 --> 00:40:27,860 Ikaw ay handa na upang patakbuhin. 825 00:40:27,860 --> 00:40:28,830 Hindi mo na kailangang manatili dito. 826 00:40:28,830 --> 00:40:29,570 Huwag tunog ng kulog. 827 00:40:29,570 --> 00:40:30,170 Iyan ay kakaiba. 828 00:40:30,170 --> 00:40:31,420 OK, salamat, guys. 829 00:40:31,420 --> 00:40:32,320