1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:10,300 >> LUCIANO Arango: OK, killar. 3 00:00:10,300 --> 00:00:11,550 Mitt namn är Luciano Arango. 4 00:00:11,550 --> 00:00:13,915 Jag är en sophomore i Adams House. 5 00:00:13,915 --> 00:00:17,550 Och vi kommer att tala om webbsäkerhet aktivt försvar. 6 00:00:17,550 --> 00:00:24,220 Så jag arbetar för myndigheten för informations Säkerhet i SEAS. 7 00:00:24,220 --> 00:00:28,670 Och under sommaren, internerade jag på SeguraTec, vilket var en informations 8 00:00:28,670 --> 00:00:31,310 säkerhetsföretag som tjänade för Bank of Columbia. 9 00:00:31,310 --> 00:00:34,740 Det är oftast där jag lärde mig vad jag har lärt mig hittills. 10 00:00:34,740 --> 00:00:37,990 >> Och så en del av det material som vi är kommer att gå över i dag, har vi inte 11 00:00:37,990 --> 00:00:39,670 verkligen talade om i klassen. 12 00:00:39,670 --> 00:00:40,410 Men vi kommer snart. 13 00:00:40,410 --> 00:00:42,360 Det kommer att bli som SQL, Javascript. 14 00:00:42,360 --> 00:00:44,870 Och vi har inte riktigt gått över den. 15 00:00:44,870 --> 00:00:47,730 Så jag kan sortera av flyg genom den, och du kanske inte vet vissa saker. 16 00:00:47,730 --> 00:00:48,890 Men snart får du lära dig det. 17 00:00:48,890 --> 00:00:52,080 Och det kommer alla vettigt. 18 00:00:52,080 --> 00:00:54,010 Också en annan sak - 19 00:00:54,010 --> 00:00:55,780 stanna etiskt. 20 00:00:55,780 --> 00:01:00,560 Några av de saker som du lär dig, du skulle kunna använda i icke-etiska sätt. 21 00:01:00,560 --> 00:01:01,950 >> Om det är din, definitivt prova. 22 00:01:01,950 --> 00:01:04,500 Jag motiverar definitivt ni att prova dina egna servrar, prova 23 00:01:04,500 --> 00:01:05,519 att gå i dem. 24 00:01:05,519 --> 00:01:08,500 Se om du kan tränga igenom dem, om du kan få i dem. 25 00:01:08,500 --> 00:01:09,560 Men inte någon annans. 26 00:01:09,560 --> 00:01:12,390 Cops egentligen inte gillar skämt och Sammantaget lägger vi det här. 27 00:01:12,390 --> 00:01:14,040 Vi messing. 28 00:01:14,040 --> 00:01:15,780 De blir riktigt arg. 29 00:01:15,780 --> 00:01:18,700 >> Så bege dig till denna webbplats. 30 00:01:18,700 --> 00:01:23,560 Jag har det öppnat här. 31 00:01:23,560 --> 00:01:26,780 Detta är en hemsida, och det har en massa exempel. 32 00:01:26,780 --> 00:01:30,000 Vad som händer är att det första exemplet är sorts kommer att bli mycket enklare 33 00:01:30,000 --> 00:01:33,470 än det sista exemplet i en mening att det första exemplet 34 00:01:33,470 --> 00:01:34,970 är helt osäker. 35 00:01:34,970 --> 00:01:40,850 Och den sista är typ av vad en normal webbsäkerhet person skulle göra. 36 00:01:40,850 --> 00:01:42,760 Men du kan fortfarande sortera för komma runt det. 37 00:01:42,760 --> 00:01:44,860 Och vi kommer att fokusera på ett och två, varvid exempel ett och två. 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 Låt oss börja med cross-site scripting. 41 00:01:52,780 --> 00:01:56,100 JavaScript körs på klientens webbläsare. 42 00:01:56,100 --> 00:01:59,980 Det är ett programmeringsspråk som du använder att köra på kundens webbläsare så 43 00:01:59,980 --> 00:02:04,120 du behöver inte uppdatera hemsidan och gå tillbaka till servern. 44 00:02:04,120 --> 00:02:04,940 Du har det igång. 45 00:02:04,940 --> 00:02:08,870 Till exempel Facebook, har du inte att ladda om webbsidan för ny status 46 00:02:08,870 --> 00:02:09,710 uppdateringar för att komma upp. 47 00:02:09,710 --> 00:02:12,170 Det använder Javascript för att generera alla dessa saker. 48 00:02:12,170 --> 00:02:16,290 Så vi kan injicera skadlig JavaScript i de webbplatser. 49 00:02:16,290 --> 00:02:20,890 Och på det sättet, när vi skickar en länk till någon, vi kunde sorts skicka det med 50 00:02:20,890 --> 00:02:23,050 en del av den kod som vi vill ha. 51 00:02:23,050 --> 00:02:26,450 >> Det är långlivade och icke-ihållande JavaScript - 52 00:02:26,450 --> 00:02:30,640 långlivade och icke-ihållande cross-site scripting, menar jag. 53 00:02:30,640 --> 00:02:33,760 Och skillnaden är att långlivade är JavaScript som kommer att vara 54 00:02:33,760 --> 00:02:36,060 sparas på webbplatsen. 55 00:02:36,060 --> 00:02:39,780 Och icke-ihållande blir JavaScript som egentligen bara händer en gång. 56 00:02:39,780 --> 00:02:41,795 Så låt oss titta på ett exempel riktigt snabbt. 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 Så denna webbplats, enkla, ingenting händer här. 60 00:02:51,620 --> 00:02:53,070 Och vi kommer att försöka sätt in lite JavaScript. 61 00:02:53,070 --> 00:02:58,110 Så hur vi börjar skriva JavaScript är börjar vi med början manus. 62 00:02:58,110 --> 00:03:00,570 Och vi stänger den med manus. 63 00:03:00,570 --> 00:03:03,770 Vi ska helt enkelt gå att sätta ett budskap - 64 00:03:03,770 --> 00:03:05,410 Jag ska visa dig - 65 00:03:05,410 --> 00:03:06,500 alert. 66 00:03:06,500 --> 00:03:11,150 Alert är en funktion som JavaScript använder för att visa något. 67 00:03:11,150 --> 00:03:12,400 Så låt oss prova det riktigt snabbt. 68 00:03:12,400 --> 00:03:15,600 69 00:03:15,600 --> 00:03:18,944 Jag ska gå, alert hej. 70 00:03:18,944 --> 00:03:20,400 Jo, jag glömde att sätta - 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 Så det är enkelt. 74 00:03:26,540 --> 00:03:28,730 >> Vi lägger JavaScript på en webbsida, och det kom upp. 75 00:03:28,730 --> 00:03:31,200 Och det slags bara händer på vår hemsida, eller hur? 76 00:03:31,200 --> 00:03:33,040 Så det verkar som om det inte är ett problem, eller hur? 77 00:03:33,040 --> 00:03:34,920 Jag menar, hur kan du använda detta skadligt? 78 00:03:34,920 --> 00:03:39,930 Så hur hackare göra det är verkligen enkelt. 79 00:03:39,930 --> 00:03:40,970 De kommer att ta tag i den. 80 00:03:40,970 --> 00:03:43,750 De kan skicka den här länken till dig. 81 00:03:43,750 --> 00:03:46,780 Om jag ska skicka den här länken för dig just nu, och du öppnar upp det, det kommer att 82 00:03:46,780 --> 00:03:51,620 säga, hej, säger att min hemsida säger till dig hej. 83 00:03:51,620 --> 00:03:57,280 >> Och så om jag skulle säga något lite smartare, om jag drar upp en 84 00:03:57,280 --> 00:03:59,880 JavaScript-funktionen jag typ av redan skrivit - 85 00:03:59,880 --> 00:04:03,940 men om man ser på det, jag ska gå över det innan jag skrev det. 86 00:04:03,940 --> 00:04:06,650 Så vi kommer att sätta en timeout. 87 00:04:06,650 --> 00:04:08,450 Vi kommer att vänta på ett par sekunder. 88 00:04:08,450 --> 00:04:13,970 I själva verket kommer vi att vänta på, om Jag inte misstar mig, fem sekunder. 89 00:04:13,970 --> 00:04:15,870 Detta går i millisekunder. 90 00:04:15,870 --> 00:04:18,640 Och vad vi ska göra är att vi är kommer att varna att inloggningen 91 00:04:18,640 --> 00:04:21,459 timeout för att logga in igen 92 00:04:21,459 --> 00:04:23,990 Och vi kommer att ändra platsen till en annan plats. 93 00:04:23,990 --> 00:04:30,370 94 00:04:30,370 --> 00:04:32,970 >> Så om jag skickar denna webbplats till någon, de ska vara 95 00:04:32,970 --> 00:04:34,380 surfa runt, lugn. 96 00:04:34,380 --> 00:04:35,650 Ingenting händer. 97 00:04:35,650 --> 00:04:38,550 Och i fem sekunder, det kommer att säga, tidsinställda inloggnings ut. 98 00:04:38,550 --> 00:04:40,200 Logga in igen 99 00:04:40,200 --> 00:04:43,400 När de klickar på OK, kommer jag att ta dem till en annan webbplats. 100 00:04:43,400 --> 00:04:45,980 Förmodligen är webbplatsen kommer att likna den webbplats som 101 00:04:45,980 --> 00:04:47,280 de var i innan. 102 00:04:47,280 --> 00:04:50,770 Och de ska logga sina referenser till min hemsida istället för 103 00:04:50,770 --> 00:04:51,850 deras hemsida. 104 00:04:51,850 --> 00:04:54,780 >> Och så jag kan skicka folk en e-post med den här länken. 105 00:04:54,780 --> 00:04:56,240 Jag säger, åh, här är en länk. 106 00:04:56,240 --> 00:04:57,290 Detta är en bank, exempelvis. 107 00:04:57,290 --> 00:05:01,390 Jag säger, här, gå på den här länken. 108 00:05:01,390 --> 00:05:03,730 Och när de väl skicka det, de är kommer att surfa runt. 109 00:05:03,730 --> 00:05:07,560 Jag kan vänta i 15 sekunder, 20 sekunder, och sedan pop att vänligen logga in igen 110 00:05:07,560 --> 00:05:08,840 underteckna igen. 111 00:05:08,840 --> 00:05:10,120 Ni kan prova med mycket mer saker. 112 00:05:10,120 --> 00:05:13,190 Det är komplicerat, eftersom ni har inte sett JavaScript, så du kanske 113 00:05:13,190 --> 00:05:14,750 vet vissa funktioner. 114 00:05:14,750 --> 00:05:18,625 Men allt du behöver göra är att starta med manus, sluta med manus. 115 00:05:18,625 --> 00:05:22,105 116 00:05:22,105 --> 00:05:25,510 Och du kan lägga något i mitten. 117 00:05:25,510 --> 00:05:27,350 >> Alert är en funktion, vänta. 118 00:05:27,350 --> 00:05:29,365 Fönster läge tar dig till en ny plats. 119 00:05:29,365 --> 00:05:31,370 Men du kan göra så mycket mer. 120 00:05:31,370 --> 00:05:32,630 Och så tanken är att Vi tar det bort. 121 00:05:32,630 --> 00:05:39,350 Om jag går till exempel två, och jag sätta in samma kod, det är 122 00:05:39,350 --> 00:05:40,210 inte kommer att fungera. 123 00:05:40,210 --> 00:05:43,620 Så det är att skriva ut allt eftersom vad denna webbplats som ursprungligen 124 00:05:43,620 --> 00:05:50,350 gör är om jag sätter något här, det ska skriva ut den här. 125 00:05:50,350 --> 00:05:52,390 Så det är inte att skriva ut något. 126 00:05:52,390 --> 00:05:55,560 Detta exempel är faktiskt kontroll för att se om skriptet är där. 127 00:05:55,560 --> 00:05:57,163 Så ja, sätt igång. 128 00:05:57,163 --> 00:05:57,606 Be mig. 129 00:05:57,606 --> 00:05:59,560 >> PUBLIK: Är inte skicka en få eller skicka förfrågan? 130 00:05:59,560 --> 00:06:00,670 >> LUCIANO Arango: Ja. de är sända en begäran få. 131 00:06:00,670 --> 00:06:01,350 >> PUBLIK: Det är? 132 00:06:01,350 --> 00:06:02,490 >> LUCIANO Arango: Ja. 133 00:06:02,490 --> 00:06:04,030 Även webbläsare använder POST-begäran. 134 00:06:04,030 --> 00:06:07,470 Men jag försöker att visa får förfrågningar så att vi kan se vad som är 135 00:06:07,470 --> 00:06:10,760 faktiskt pågår. 136 00:06:10,760 --> 00:06:12,880 Och så om vi tittar på den här koden - så det fungerar inte längre. 137 00:06:12,880 --> 00:06:24,870 Och om vi tar en titt på denna kod, det kommer att vara i exempel två. 138 00:06:24,870 --> 00:06:29,300 Vad den här personen gör, den person ansvarig för den här webbläsaren - 139 00:06:29,300 --> 00:06:35,370 öppna upp, OK - 140 00:06:35,370 --> 00:06:39,290 ersätter ordet manus. 141 00:06:39,290 --> 00:06:42,850 Detta är PHP, som ni kanske har sett lite av ännu. 142 00:06:42,850 --> 00:06:46,250 >> Han bara byter ut Ordet manus med namn. 143 00:06:46,250 --> 00:06:50,895 Så men om jag går vidare och bara sätta in - 144 00:06:50,895 --> 00:06:58,520 145 00:06:58,520 --> 00:07:02,360 Om jag ta min kod igen, och jag kommer att ändra det bara lite. 146 00:07:02,360 --> 00:07:15,010 I stället för manus, jag ska ändra den för manus med stort R. Och 147 00:07:15,010 --> 00:07:16,390 vi kommer att se om den här koden fungerar. 148 00:07:16,390 --> 00:07:19,090 Så det inte att skriva ut det, vilket är ett gott tecken. 149 00:07:19,090 --> 00:07:21,990 Och förhoppningsvis i två sekunder, det kommer att dyka upp. 150 00:07:21,990 --> 00:07:22,820 >> Din inloggning timeout. 151 00:07:22,820 --> 00:07:23,210 OK. 152 00:07:23,210 --> 00:07:24,460 Det är okej. 153 00:07:24,460 --> 00:07:27,670 Så kolla efter manus kanske inte nödvändigtvis fungerar. 154 00:07:27,670 --> 00:07:28,130 Personen - 155 00:07:28,130 --> 00:07:32,290 det kan också leta efter manus versaler, script gemener, str fall 156 00:07:32,290 --> 00:07:34,180 jämföra, se till att de är samma. 157 00:07:34,180 --> 00:07:38,480 Men hackaren kan fortfarande göra sorts vad vi gjorde i Vigenère när vi flyttade 158 00:07:38,480 --> 00:07:40,620 tillbaka ett par tecken, gå framåt. 159 00:07:40,620 --> 00:07:43,470 Och det kan lista ut hur man lägger skriptet tillbaka på det så det kan injicera 160 00:07:43,470 --> 00:07:44,460 att skriptet. 161 00:07:44,460 --> 00:07:50,370 >> Så vad du vill använda är htmlspecialchars till 162 00:07:50,370 --> 00:07:51,330 skydda din webbplats. 163 00:07:51,330 --> 00:07:56,490 Och vad detta innebär är det gör till att det du sätter in - 164 00:07:56,490 --> 00:07:59,610 till exempel offerter eller detta större än eller mindre än - 165 00:07:59,610 --> 00:08:04,701 är ersatt med något som inte kommer att vara - 166 00:08:04,701 --> 00:08:05,951 Låt mig zooma in här - 167 00:08:05,951 --> 00:08:08,730 168 00:08:08,730 --> 00:08:09,685 den verkliga ampersand. 169 00:08:09,685 --> 00:08:13,420 Den kommer att ersätta de speciella HTML tecken som vi får se när vi är 170 00:08:13,420 --> 00:08:14,670 talar om - 171 00:08:14,670 --> 00:08:18,635 172 00:08:18,635 --> 00:08:20,740 åh, det här kommer att ta mig tillbaka till - 173 00:08:20,740 --> 00:08:24,220 174 00:08:24,220 --> 00:08:25,380 dessa tecken här. 175 00:08:25,380 --> 00:08:28,180 >> Det betyder att något kommer. 176 00:08:28,180 --> 00:08:31,570 För HTML, som börjar fäste säger oss att något 177 00:08:31,570 --> 00:08:33,299 HTML-relaterade kommer. 178 00:08:33,299 --> 00:08:33,980 Och vi vill bli av med det. 179 00:08:33,980 --> 00:08:36,200 Vi vill inte sätta HTML i en website.k Vi vill inte att användaren ska 180 00:08:36,200 --> 00:08:40,260 kunna sätta något på deras hemsida som kan påverka deras hemsida, som 181 00:08:40,260 --> 00:08:43,480 skript eller HTML eller något liknande. 182 00:08:43,480 --> 00:08:53,090 Det viktiga är att du sanitize användarinmatningen. 183 00:08:53,090 --> 00:08:54,720 >> Så användarna får indata många saker. 184 00:08:54,720 --> 00:08:58,110 Han kan mata in en massa saker för att försöka att lura din webbläsare till ändå 185 00:08:58,110 --> 00:08:59,410 kör detta script. 186 00:08:59,410 --> 00:09:02,870 Vad du vill göra är att inte bara titta för manus, men leta efter allt 187 00:09:02,870 --> 00:09:04,250 som kan vara skadliga. 188 00:09:04,250 --> 00:09:06,800 Och htmlspecialchars kommer att göra det för dig, så att du inte behöver 189 00:09:06,800 --> 00:09:07,340 att oroa sig för det. 190 00:09:07,340 --> 00:09:12,280 Men försök inte att göra själv sorts med din egen kod. 191 00:09:12,280 --> 00:09:14,055 Är alla klara över XSS? 192 00:09:14,055 --> 00:09:14,370 >> OK. 193 00:09:14,370 --> 00:09:16,355 Låt oss gå till SQL-injektion. 194 00:09:16,355 --> 00:09:21,010 Så SQL-injektion är förmodligen den nummer ett sårbarhet 195 00:09:21,010 --> 00:09:22,490 på olika webbplatser. 196 00:09:22,490 --> 00:09:24,350 Jag menar, ett bra exempel - 197 00:09:24,350 --> 00:09:27,350 Jag bara forskar längst för denna sak. 198 00:09:27,350 --> 00:09:34,430 Och jag hittade den här härliga artikeln, där Jag såg att Harvard har åsidosatts, 199 00:09:34,430 --> 00:09:35,390 var hackad. 200 00:09:35,390 --> 00:09:37,370 Och jag undrar, ja, hur skulle de göra det? 201 00:09:37,370 --> 00:09:41,660 Harvard är det mest fantastiska, mest säkra universitet någonsin. 202 00:09:41,660 --> 00:09:43,850 Rätt? 203 00:09:43,850 --> 00:09:45,410 Jo, för att bryta mot servrarna, hackarna använde en 204 00:09:45,410 --> 00:09:47,710 teknik som kallas SQL-injektion. 205 00:09:47,710 --> 00:09:50,250 >> Så detta händer på en daglig basis. 206 00:09:50,250 --> 00:09:53,590 Folk glömmer att ta hänsyn för SQL-injektion. 207 00:09:53,590 --> 00:09:54,930 Harvard gör. 208 00:09:54,930 --> 00:10:00,050 Jag tror att det står här, Princeton, Stanford, Cornell. 209 00:10:00,050 --> 00:10:03,550 Så hur gör vi - så vad är det här SQL injektion som är att föra alla dessa 210 00:10:03,550 --> 00:10:05,668 människor ner? 211 00:10:05,668 --> 00:10:08,010 OK. 212 00:10:08,010 --> 00:10:12,090 Så SQL är ett programmeringsspråk som vi använder för att komma åt databaser. 213 00:10:12,090 --> 00:10:14,560 Vad vi gör är att vi väljer - 214 00:10:14,560 --> 00:10:18,510 så vad det läser just nu är att välja allt från bordet. 215 00:10:18,510 --> 00:10:22,640 >> SQL, ändrar det i dessa databaser som har tabeller full av information. 216 00:10:22,640 --> 00:10:26,550 Så väljer allt från användare där namnet är användarnamnet. 217 00:10:26,550 --> 00:10:28,120 Rätt? 218 00:10:28,120 --> 00:10:30,770 Enkelt nog. 219 00:10:30,770 --> 00:10:34,490 Idén om SQL-injektion är att vi sätta några skadlig kod som skulle 220 00:10:34,490 --> 00:10:37,270 lura servern till att köra något annorlunda än vad den 221 00:10:37,270 --> 00:10:38,430 ursprungligen kördes. 222 00:10:38,430 --> 00:10:44,970 Så låt oss säga för användarnamn, vi sätter in eller 1 är lika med 1. 223 00:10:44,970 --> 00:10:46,700 Så vi satte in eller 1 är lika med 1. 224 00:10:46,700 --> 00:10:49,890 Hur det kommer att läsa nu kommer att välja från användare, allt från 225 00:10:49,890 --> 00:10:51,360 användare - det är allt - 226 00:10:51,360 --> 00:10:55,880 där namn är användarnamn, men användarnamn är eller 1 är lika med 1. 227 00:10:55,880 --> 00:11:01,760 >> Så heter ingenting eller 1 är lika med 1. 228 00:11:01,760 --> 00:11:04,060 1 är lika med 1 är alltid sant. 229 00:11:04,060 --> 00:11:07,690 Så det här kommer alltid att returnera information från användarna. 230 00:11:07,690 --> 00:11:08,100 OK. 231 00:11:08,100 --> 00:11:10,030 Vi behöver inte ha rätt användarnamn. 232 00:11:10,030 --> 00:11:14,240 Vi kan bara ha något som vi vill ha, och det kommer att returnera information 233 00:11:14,240 --> 00:11:15,690 som vi behöver. 234 00:11:15,690 --> 00:11:17,160 Låt oss titta på ett annat exempel. 235 00:11:17,160 --> 00:11:22,720 >> Om vi ​​väljer allt från användare, där namn är DROP TABLE användare - 236 00:11:22,720 --> 00:11:26,420 så vad tror du att detta kommer att göra om jag sätter in användarnamnet 237 00:11:26,420 --> 00:11:29,560 som DROP TABLE användare? 238 00:11:29,560 --> 00:11:30,230 Någon som har en idé? 239 00:11:30,230 --> 00:11:31,050 Ja. 240 00:11:31,050 --> 00:11:32,470 >> PUBLIK: Det kommer att berätta det att dumpa alla tabeller. 241 00:11:32,470 --> 00:11:35,460 >> LUCIANO Arango: Det kommer att berätta för oss att dumpa allt på webbplatsen, 242 00:11:35,460 --> 00:11:38,290 allt i databasen. 243 00:11:38,290 --> 00:11:41,910 Och vad folk använder detta för - så Jag ska visa er. 244 00:11:41,910 --> 00:11:45,462 Jag inaktive släppa tabellerna för jag ville inte att du 245 00:11:45,462 --> 00:11:48,240 killar att släppa mina tabeller. 246 00:11:48,240 --> 00:11:49,850 Låt oss ta en titt på detta. 247 00:11:49,850 --> 00:11:54,410 Så här drar helt enkelt upp den information för en viss person. 248 00:11:54,410 --> 00:11:57,550 Så hur vet vi om det är påverkas av SQL-injektion. 249 00:11:57,550 --> 00:12:01,545 Vi ska checka snabbt om vi kan sätta något - 250 00:12:01,545 --> 00:12:04,990 251 00:12:04,990 --> 00:12:06,080 låt mig kopiera koden. 252 00:12:06,080 --> 00:12:08,140 Jag ska gå över den i en sekund. 253 00:12:08,140 --> 00:12:12,210 Jag ska sätta rot och 1 är lika med 1. 254 00:12:12,210 --> 00:12:15,510 >> Denna rätt här, detta procenttecken 23 - 255 00:12:15,510 --> 00:12:19,970 vad det egentligen är, om jag titta här på - 256 00:12:19,970 --> 00:12:23,820 hur HTML tar i siffror, om du ta en titt på när jag sätter i ett utrymme 257 00:12:23,820 --> 00:12:28,380 här - om jag skulle rymd något här, ändras den till en procent 2. 258 00:12:28,380 --> 00:12:31,420 Har ni ser detta just här när jag sätter i ett rum? 259 00:12:31,420 --> 00:12:36,710 Så det fungerar är att du bara kan skicka ASCII-värden via HTML. 260 00:12:36,710 --> 00:12:40,330 Så som det ersätter, till exempel, ett utrymme med procent 20. 261 00:12:40,330 --> 00:12:41,970 Jag vet inte om ni har sett det förut. 262 00:12:41,970 --> 00:12:45,100 >> Den ersätter en hashtag med procent 23. 263 00:12:45,100 --> 00:12:50,840 Vi behöver en hashtag i slutet av eller uttalande så att vi kan tala om 264 00:12:50,840 --> 00:13:00,885 databas för att glömma att kommentera ut denna sista semikolon i slutet. 265 00:13:00,885 --> 00:13:03,060 Vi vill att det ska inte tänka på det. 266 00:13:03,060 --> 00:13:05,980 Vi vill bara att den ska köras allt att vi i förväg och 267 00:13:05,980 --> 00:13:07,450 kommentera det ut. 268 00:13:07,450 --> 00:13:08,710 Låt oss ta en titt på det. 269 00:13:08,710 --> 00:13:14,670 >> Så om jag skulle sätta något fel - låt oss säga till exempel, satte jag två jämlikar 270 00:13:14,670 --> 00:13:15,690 1, inte ger mig någonting. 271 00:13:15,690 --> 00:13:22,930 När jag satte in 1 är lika med 1, och det gör tillbaka något, säger mig detta att 272 00:13:22,930 --> 00:13:24,660 detta är utsatta för en SQL-injektion. 273 00:13:24,660 --> 00:13:29,090 Jag vet nu att vad Jag satte efter detta - 274 00:13:29,090 --> 00:13:39,110 och till exempel, DROP BORD eller något liknande 275 00:13:39,110 --> 00:13:41,190 kommer definitivt att fungera. 276 00:13:41,190 --> 00:13:44,350 Jag vet att det är sårbart för SQL-injektion eftersom jag vet att 277 00:13:44,350 --> 00:13:49,850 under huven, det låter mig göra 1 är lika med 1 sak. 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 >> Och om vi tittar på de andra, nummer två och nummer tre, är det 281 00:13:56,540 --> 00:13:59,110 kommer att göra lite mer av kontroll under 282 00:13:59,110 --> 00:14:03,680 huven på vad det är. 283 00:14:03,680 --> 00:14:07,425 Så vem som helst göra det möjligt för droppe något ännu eller provat? 284 00:14:07,425 --> 00:14:08,760 Har ni sorts få SQL än? 285 00:14:08,760 --> 00:14:10,430 Eftersom jag vet att ni inte har sett det än, så det är typ av 286 00:14:10,430 --> 00:14:11,759 förvirrande för er. 287 00:14:11,759 --> 00:14:16,160 288 00:14:16,160 --> 00:14:18,480 Låt oss ta en titt. 289 00:14:18,480 --> 00:14:21,270 Så vad är sätt att förebygga SQLI? 290 00:14:21,270 --> 00:14:21,390 OK. 291 00:14:21,390 --> 00:14:23,330 Så det här är verkligen viktigt att du killar definitivt vill undvika 292 00:14:23,330 --> 00:14:24,090 detta i dina webbplatser. 293 00:14:24,090 --> 00:14:28,040 >> Om inte, är alla dina vänner att gå till göra narr av dig när de släpper alla 294 00:14:28,040 --> 00:14:29,390 dina tabeller. 295 00:14:29,390 --> 00:14:36,150 Så tanken är att du reparerar SQL på ett visst sätt, medan du matchar 296 00:14:36,150 --> 00:14:41,940 vad användaren ingångar med en viss sträng. 297 00:14:41,940 --> 00:14:46,120 Så hur detta fungerar är du förbereda databasen. 298 00:14:46,120 --> 00:14:50,830 Du väljer namn, färg och kalorier från en databas som heter frukt. 299 00:14:50,830 --> 00:14:53,580 Och sedan när kalorier är mindre än, och vi sätter ett frågetecken där 300 00:14:53,580 --> 00:14:56,530 säger vi ska ingång något i en sekund. 301 00:14:56,530 --> 00:14:58,850 >> Och färg är lika, och vi ställde en fråga märke som säger att vi ska 302 00:14:58,850 --> 00:15:00,913 input något i en andra också. 303 00:15:00,913 --> 00:15:02,660 OK? 304 00:15:02,660 --> 00:15:09,920 Och då kan vi köra det, att sätta i 150 och rött. 305 00:15:09,920 --> 00:15:12,820 Och detta kommer att kontrollera att Se till att dessa två - 306 00:15:12,820 --> 00:15:15,300 denna samling kommer att kontrollera att dessa två är ett heltal och 307 00:15:15,300 --> 00:15:16,550 att detta är en sträng. 308 00:15:16,550 --> 00:15:18,810 309 00:15:18,810 --> 00:15:20,890 Sedan går vi, och vi hämtar allt, sätter vi den i rött. 310 00:15:20,890 --> 00:15:21,964 Det betyder att vi hämta alla. 311 00:15:21,964 --> 00:15:26,790 Det betyder att vi faktiskt köra SQL uttalande och lägger tillbaka den i rött. 312 00:15:26,790 --> 00:15:30,530 Här gör vi samma sak, men vi göra samma sak för gult. 313 00:15:30,530 --> 00:15:32,490 Och vi hämta alla. 314 00:15:32,490 --> 00:15:36,140 >> Och på detta sätt kan vi förhindra att användaren från att kunna ingång något 315 00:15:36,140 --> 00:15:41,710 det är inte vad vi specificerat, en sträng eller ett heltal, till exempel. 316 00:15:41,710 --> 00:15:45,100 317 00:15:45,100 --> 00:15:46,610 Jag talade tidigare om förlita sig på andra. 318 00:15:46,610 --> 00:15:50,010 När ni startar ditt projekt, du är absolut kommer att använda 319 00:15:50,010 --> 00:15:52,310 bootstrap eller något liknande. 320 00:15:52,310 --> 00:15:53,490 Har ni någonsin använt Wordpress? 321 00:15:53,490 --> 00:15:57,170 Förmodligen ni har använt Word troligast. 322 00:15:57,170 --> 00:16:00,050 Så problemet med hjälp av andras saker - 323 00:16:00,050 --> 00:16:05,940 Jag ska bara Google riktigt snabbt Wordpress sårbarhet. 324 00:16:05,940 --> 00:16:07,495 >> Om jag drar upp det just nu - 325 00:16:07,495 --> 00:16:08,995 Jag gjorde bokstavligen två sekunders Google. 326 00:16:08,995 --> 00:16:12,300 327 00:16:12,300 --> 00:16:13,800 Vi kan se att Wordpress - 328 00:16:13,800 --> 00:16:17,450 detta är daterat i september '12. 329 00:16:17,450 --> 00:16:19,120 26 uppdateras. 330 00:16:19,120 --> 00:16:23,620 Standardkonfigurationen för Wordpress före 3.6 inte hindrar dessa 331 00:16:23,620 --> 00:16:27,110 vissa uppladdade, vilket kan göra det lättare för 332 00:16:27,110 --> 00:16:29,790 cross-site scripting-attacker. 333 00:16:29,790 --> 00:16:34,530 Så en snabb historia, när vi arbetade med - så jag var, på sommaren, arbetar en 334 00:16:34,530 --> 00:16:34,970 praktikplats. 335 00:16:34,970 --> 00:16:40,400 Och vi arbetade med slags som en stor kreditkortsföretag. 336 00:16:40,400 --> 00:16:42,020 >> Och de är beroende av något som kallas - 337 00:16:42,020 --> 00:16:45,740 Jag vet inte om ni någonsin spelat med en produkt som heter Joomla. 338 00:16:45,740 --> 00:16:51,750 Joomla är en produkt som används för att kontroll - slags liknar 339 00:16:51,750 --> 00:16:54,340 Wordpress, som används för att bygga webbplatser. 340 00:16:54,340 --> 00:16:56,060 Så de hade deras hemsida arbetar med Joomla. 341 00:16:56,060 --> 00:16:59,290 Detta är faktiskt ett kreditkort företag i Colombia. 342 00:16:59,290 --> 00:17:01,000 Jag tar dig till deras hemsida riktigt snabbt. 343 00:17:01,000 --> 00:17:04,550 344 00:17:04,550 --> 00:17:05,400 >> Så de använde Joomla. 345 00:17:05,400 --> 00:17:08,630 Och de hade inte uppdaterat Joomla till det senaste tillskottet. 346 00:17:08,630 --> 00:17:12,160 Och så när vi tar en titt på deras kod, kunde vi faktiskt 347 00:17:12,160 --> 00:17:18,430 gå in sin kod och stjäla alla kreditkortsinformation som de hade, 348 00:17:18,430 --> 00:17:21,670 alla kreditkortsnummer, namn, adresser. 349 00:17:21,670 --> 00:17:22,740 Och det var bara - 350 00:17:22,740 --> 00:17:23,569 och deras kod var helt bra. 351 00:17:23,569 --> 00:17:24,710 De hade stor kod. 352 00:17:24,710 --> 00:17:25,389 Det var allt säkerhet. 353 00:17:25,389 --> 00:17:26,520 De kontrollerade alla databaser. 354 00:17:26,520 --> 00:17:29,020 De såg till cross-site skript var bra. 355 00:17:29,020 --> 00:17:34,390 >> Men de använde något som inte var uppdateras, det var inte säker. 356 00:17:34,390 --> 00:17:36,940 Och så som ledde dem till - så ni kommer definitivt att använda andra 357 00:17:36,940 --> 00:17:40,650 människors kod, andras ramar för att bygga upp din webbplats. 358 00:17:40,650 --> 00:17:43,860 Se till att de är säkra eftersom ibland är det inte du, den som 359 00:17:43,860 --> 00:17:44,480 gör ett misstag. 360 00:17:44,480 --> 00:17:47,440 Men någon annan gör ett misstag, och då du faller ner på grund av det. 361 00:17:47,440 --> 00:17:51,190 362 00:17:51,190 --> 00:17:53,885 >> Lösenord och PII. 363 00:17:53,885 --> 00:17:56,820 So lösenord. 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 Låt oss ta en titt på lösenord riktigt snabbt. 367 00:18:04,230 --> 00:18:04,590 OK. 368 00:18:04,590 --> 00:18:06,520 Tala om för mig att alla använder säker - 369 00:18:06,520 --> 00:18:09,030 Jag hoppas alla här använder säkra lösenord. 370 00:18:09,030 --> 00:18:12,890 Jag bara låta det in som ett antagande. 371 00:18:12,890 --> 00:18:14,850 Så ni är definitivt kommer att lagra lösenord för dina webbplatser. 372 00:18:14,850 --> 00:18:17,440 Du kommer att göra något liknande en inloggning eller något liknande. 373 00:18:17,440 --> 00:18:19,610 Det viktiga är att inte förvara lösenord i klartext. 374 00:18:19,610 --> 00:18:20,860 Detta är oerhört viktigt. 375 00:18:20,860 --> 00:18:23,960 Du vill inte att lagra en lösenord i klartext. 376 00:18:23,960 --> 00:18:27,370 >> Och du definitivt inte verkligen vill att förvara den i ett ett sätt hash. 377 00:18:27,370 --> 00:18:32,440 Så vad en one way hash är att när du generera ett ord, när du sätter denna 378 00:18:32,440 --> 00:18:36,200 ord till en hash-funktion, kommer det generera tillbaka något slags kryptisk 379 00:18:36,200 --> 00:18:39,390 meddelande eller kryptiska uppsättning nycklar. 380 00:18:39,390 --> 00:18:40,640 Jag ska visa dig ett exempel. 381 00:18:40,640 --> 00:18:44,620 382 00:18:44,620 --> 00:18:50,250 Jag ska hash de ord password1. 383 00:18:50,250 --> 00:18:55,280 Så MD5-hash kommer att återvända mig något slags konstig information. 384 00:18:55,280 --> 00:18:59,140 >> Problemet är att människor där ute att vilja gå in på webbplatser har 385 00:18:59,140 --> 00:19:02,750 redan räknat ut sorterings av samtliga MD5-hashar. 386 00:19:02,750 --> 00:19:06,030 Vad de gjorde är att de satte sig på sin datorer, och de hashas varje 387 00:19:06,030 --> 00:19:09,660 enda möjliga ord där ute tills de fick typ av vad det här är. 388 00:19:09,660 --> 00:19:11,420 Om jag skulle slå upp detta - 389 00:19:11,420 --> 00:19:12,420 Jag tog denna hash. 390 00:19:12,420 --> 00:19:14,120 Om jag får det här hash från - 391 00:19:14,120 --> 00:19:17,470 om jag går till en webbplats, och jag tycker denna hash för att jag får till 392 00:19:17,470 --> 00:19:24,100 databaser, och jag slå upp det, någon redan listat ut det för mig. 393 00:19:24,100 --> 00:19:28,600 394 00:19:28,600 --> 00:19:29,100 >> Yeah. 395 00:19:29,100 --> 00:19:35,030 Så att folk satte sig ner, och vad md5 hash som du sätter in, kommer de att 396 00:19:35,030 --> 00:19:37,760 tillbaka till dig något det är ett ord. 397 00:19:37,760 --> 00:19:39,800 Om jag hash annat ord, som - 398 00:19:39,800 --> 00:19:42,410 Jag vet inte - 399 00:19:42,410 --> 00:19:43,490 trees2. 400 00:19:43,490 --> 00:19:46,050 Jag vill inte bli besviken av mina Google-sökningar. 401 00:19:46,050 --> 00:19:49,820 402 00:19:49,820 --> 00:19:52,780 Där är det, trees2. 403 00:19:52,780 --> 00:19:55,930 Så en hel del webbplatser fortfarande använda md5 hash. 404 00:19:55,930 --> 00:19:57,730 De säger, åh, det är säkert. 405 00:19:57,730 --> 00:19:58,570 Vi kommer inte att lagra i klartext. 406 00:19:58,570 --> 00:19:59,740 Vi har denna md5 hash. 407 00:19:59,740 --> 00:20:01,880 Och allt jag behöver göra är att bara Googla numret. 408 00:20:01,880 --> 00:20:03,940 >> Jag behöver inte ens att beräkna själv. 409 00:20:03,940 --> 00:20:06,790 Jag kan bara Google det, och någon redan gjorde det för mig. 410 00:20:06,790 --> 00:20:08,010 Här är ett gäng av dem. 411 00:20:08,010 --> 00:20:09,260 Här är ett gäng lösenord. 412 00:20:09,260 --> 00:20:13,890 413 00:20:13,890 --> 00:20:18,680 Så definitivt inte använder md5 hash, eftersom allt du behöver 414 00:20:18,680 --> 00:20:19,140 göra är Google det. 415 00:20:19,140 --> 00:20:20,390 Så vad vill du vill använda i stället? 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 Något som kallas saltning. 419 00:20:31,260 --> 00:20:32,460 Så vad saltning är - 420 00:20:32,460 --> 00:20:36,280 tror ni ihåg när vi var talar om slump - 421 00:20:36,280 --> 00:20:37,920 Jag är inte säker på vad pset det var - 422 00:20:37,920 --> 00:20:41,140 var det pset där eller fyra? 423 00:20:41,140 --> 00:20:45,150 >> Vi pratade om att hitta nålen i höstacken. 424 00:20:45,150 --> 00:20:48,480 Och i pset, sa det att man kunde faktiskt räkna ut vad random 425 00:20:48,480 --> 00:20:51,840 genererar för att någon har redan sprang slumpmässiga en miljon gånger och bara 426 00:20:51,840 --> 00:20:53,230 sorts bildade vad de genererar. 427 00:20:53,230 --> 00:20:55,840 Vad du vill göra är att sätta på en ingång. 428 00:20:55,840 --> 00:20:57,130 Så det är vad saltning sorts är. 429 00:20:57,130 --> 00:21:00,900 De har redan listat ut vad saltning återgår för varje arbete. 430 00:21:00,900 --> 00:21:04,750 >> Så vad saltning gör är du sätter i ett salt. 431 00:21:04,750 --> 00:21:06,160 Du sätter in ett visst ord. 432 00:21:06,160 --> 00:21:09,720 Och det kommer att hash ordet beroende på vad du lägger in här. 433 00:21:09,720 --> 00:21:13,570 Så om jag hash lösenord en med detta mening, det kommer att hash 434 00:21:13,570 --> 00:21:17,180 annorlunda om jag hash password1 med en annan mening. 435 00:21:17,180 --> 00:21:21,670 Det ger det slags någonstans att start för hashing att börja. 436 00:21:21,670 --> 00:21:25,970 Så det är mycket svårare att beräkna, men du kan fortfarande beräkna det, särskilt 437 00:21:25,970 --> 00:21:26,830 om du använder en dålig salt. 438 00:21:26,830 --> 00:21:29,650 >> Folk har redan också räknat ut gemensamma salter och räknat ut 439 00:21:29,650 --> 00:21:31,500 vad det är. 440 00:21:31,500 --> 00:21:34,980 Random salter är mycket bättre, men det bästa sättet är att använda 441 00:21:34,980 --> 00:21:38,160 något som kallas krypta. 442 00:21:38,160 --> 00:21:40,480 Och vad kryptan kan du gör - så dessa funktioner är 443 00:21:40,480 --> 00:21:41,820 redan byggt för dig. 444 00:21:41,820 --> 00:21:44,910 Många glömmer att, eller De har glömt att använda den. 445 00:21:44,910 --> 00:21:54,520 Men om jag ser upp crypt PHP, crypt redan returnerar en hash-sträng för mig. 446 00:21:54,520 --> 00:21:58,790 Och det faktiskt salter det många gånger och hashar det många gånger. 447 00:21:58,790 --> 00:22:00,070 >> Så vi behöver inte göra det här. 448 00:22:00,070 --> 00:22:04,790 Så allt du behöver göra är skicka in den i kryptan. 449 00:22:04,790 --> 00:22:08,170 Och det kommer att skapa en stor hash utan att du behöver oroa dig för salt 450 00:22:08,170 --> 00:22:08,990 eller vad som helst. 451 00:22:08,990 --> 00:22:12,000 För om du skulle salt det, har du att komma ihåg vad salt du använt 452 00:22:12,000 --> 00:22:13,800 för om inte, kan du inte få din lösenord tillbaka utan 453 00:22:13,800 --> 00:22:15,760 salt som du använt. 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 >> Och även personlig identifierbar information. 457 00:22:23,150 --> 00:22:26,730 Så social trygghet, kreditkort - det är ganska uppenbart. 458 00:22:26,730 --> 00:22:31,880 Men ibland glömmer hur det verk är, hur mycket information som gör att du 459 00:22:31,880 --> 00:22:35,690 faktiskt måste hitta någon enda person? 460 00:22:35,690 --> 00:22:37,740 Någon gjorde en studie om detta en väg tillbaka. 461 00:22:37,740 --> 00:22:40,870 Och det var som om du har ett fullständigt namn, kan du inte hitta 462 00:22:40,870 --> 00:22:41,610 någon som lätt. 463 00:22:41,610 --> 00:22:43,900 Men om du har ett fullständigt namn och deras födelsedatum? 464 00:22:43,900 --> 00:22:47,770 Är det tillräckligt för att identifiera någon specifikt? 465 00:22:47,770 --> 00:22:52,760 >> Vad händer om du har deras namn och gatuadress som de lever på? 466 00:22:52,760 --> 00:22:55,110 Är det tillräckligt för att hitta någon? 467 00:22:55,110 --> 00:23:02,490 Och det är då de ifrågasätter, vad är personlig information, och 468 00:23:02,490 --> 00:23:05,360 vad ska du oroa dig inte ge bort? 469 00:23:05,360 --> 00:23:08,770 Om du ger bort personlig identifierbar information som någon ger dig, 470 00:23:08,770 --> 00:23:11,420 du skulle kunna bli stämd. 471 00:23:11,420 --> 00:23:12,610 Och vi vill definitivt inte det. 472 00:23:12,610 --> 00:23:14,955 >> Så när du lägger din webbplats ut, och du har en riktigt cool 473 00:23:14,955 --> 00:23:17,230 design, förhoppningsvis du gjort en fantastisk slutprojekt. 474 00:23:17,230 --> 00:23:18,370 Någon du slags vill lägga den där ute. 475 00:23:18,370 --> 00:23:21,420 Du vill vara säker på att vad du tar från användaren, om det är 476 00:23:21,420 --> 00:23:25,310 personlig information, du vill se till att du är riktigt 477 00:23:25,310 --> 00:23:26,560 försiktig med det. 478 00:23:26,560 --> 00:23:29,670 479 00:23:29,670 --> 00:23:31,080 >> Shell injektion. 480 00:23:31,080 --> 00:23:31,350 OK. 481 00:23:31,350 --> 00:23:37,590 Shell injektion gör att inkräktare att få tillgång till din faktiska kommandorad 482 00:23:37,590 --> 00:23:39,660 på din server. 483 00:23:39,660 --> 00:23:44,060 Och så han kan köra kod att du inte kan kontrollera. 484 00:23:44,060 --> 00:23:49,560 Låt oss ta ett exempel på detta vacker sträng här. 485 00:23:49,560 --> 00:23:55,570 Om vi ​​går in på webbplatsen igen, jag är gå in kod injektion. 486 00:23:55,570 --> 00:23:58,910 Vad detta innebär är - 487 00:23:58,910 --> 00:24:00,420 det är också vad vi var titta på tidigare. 488 00:24:00,420 --> 00:24:11,200 Vi ska låta användaren sätta i vad han vill, och det kommer att skriva ut 489 00:24:11,200 --> 00:24:12,220 vad du vill. 490 00:24:12,220 --> 00:24:13,890 >> Så jag kommer att sätta ett samtal. 491 00:24:13,890 --> 00:24:15,540 Vad detta innebär är - 492 00:24:15,540 --> 00:24:16,940 Det börjar med att sammanfoga. 493 00:24:16,940 --> 00:24:19,520 Så det kommer att låta mig köra vad som helst kommandot personens igång 494 00:24:19,520 --> 00:24:21,500 före och mitt kommando. 495 00:24:21,500 --> 00:24:23,980 Och jag kör ett kommando-system. 496 00:24:23,980 --> 00:24:27,310 Och de sista strängar är - kom ihåg vad jag pratade med er om, 497 00:24:27,310 --> 00:24:31,725 medan du måste koda den i en URL-metod. 498 00:24:31,725 --> 00:24:35,010 499 00:24:35,010 --> 00:24:36,992 Om jag kör det här nu - 500 00:24:36,992 --> 00:24:39,150 Jag ska visa dig hit - 501 00:24:39,150 --> 00:24:41,100 så ser du att jag slutade upp kör ett kommando. 502 00:24:41,100 --> 00:24:45,700 503 00:24:45,700 --> 00:24:49,320 >> Detta är faktiskt själva servern att min hemsida är igång på. 504 00:24:49,320 --> 00:24:55,840 505 00:24:55,840 --> 00:24:58,510 Så vi inte vill ha det, eftersom jag kan köra - 506 00:24:58,510 --> 00:25:00,320 denna server är inte min. 507 00:25:00,320 --> 00:25:04,030 Så jag vill inte förstöra hans syster, Marcus server. 508 00:25:04,030 --> 00:25:07,470 Men du kan köra flera kommandon som är farliga. 509 00:25:07,470 --> 00:25:11,885 Och potentiellt, kan du ta bort filer, ta bort kataloger. 510 00:25:11,885 --> 00:25:14,390 511 00:25:14,390 --> 00:25:17,970 Jag kan ta bort en viss katalog om Jag ville, men jag vill inte 512 00:25:17,970 --> 00:25:19,530 att göra det till Marcus. 513 00:25:19,530 --> 00:25:20,420 Han är en trevlig kille. 514 00:25:20,420 --> 00:25:21,470 Han lät mig låna hans server. 515 00:25:21,470 --> 00:25:24,620 Så jag ska låta honom av på bra. 516 00:25:24,620 --> 00:25:32,280 >> Så vad vi inte vill använda - vi gör inte vill använda eval eller systemet. 517 00:25:32,280 --> 00:25:34,755 Eval eller systemet tillåter oss att göra dessa systemanrop. 518 00:25:34,755 --> 00:25:37,410 519 00:25:37,410 --> 00:25:38,410 Eval sätt utvärdera. 520 00:25:38,410 --> 00:25:40,790 Systemet innebär vad jag sprang. 521 00:25:40,790 --> 00:25:42,490 Det drivs något i systemet. 522 00:25:42,490 --> 00:25:46,730 Men vi kan förbjuda dessa saker i PHP, så att vi inte använder dem. 523 00:25:46,730 --> 00:25:47,400 Och filuppladdning. 524 00:25:47,400 --> 00:25:49,180 Jag skulle göra en fantastisk sak med filuppladdning. 525 00:25:49,180 --> 00:25:52,740 Men som jag sa till er, min fil uppladdnings sak fungerar inte. 526 00:25:52,740 --> 00:25:54,590 Om jag skulle ladda upp en fil just nu - 527 00:25:54,590 --> 00:25:57,120 528 00:25:57,120 --> 00:26:00,830 om jag skulle ladda upp en fil, och det är en bild - 529 00:26:00,830 --> 00:26:03,180 du har en uppladdning sak det är en bild. 530 00:26:03,180 --> 00:26:03,660 Det är bra. 531 00:26:03,660 --> 00:26:04,280 Ingenting händer. 532 00:26:04,280 --> 00:26:10,840 >> Men om du har en uppladdning fil, för exempel, och användaren faktiskt uppladdningar 533 00:26:10,840 --> 00:26:19,220 en PHP-fil eller en exe-fil eller något så där, då du kunde potentiellt 534 00:26:19,220 --> 00:26:19,740 har ett problem. 535 00:26:19,740 --> 00:26:21,390 Detta fungerade tidigare. 536 00:26:21,390 --> 00:26:25,202 Tyvärr för mig, det är inte fungerar längre. 537 00:26:25,202 --> 00:26:30,230 Om jag till exempel ladda upp denna fil, jag är att inte få tillåtelse att ladda upp 538 00:26:30,230 --> 00:26:33,400 filen på grund av att servern inte är mina. 539 00:26:33,400 --> 00:26:38,670 Så killen är riktigt smart. 540 00:26:38,670 --> 00:26:39,610 >> Så vi vill inte - 541 00:26:39,610 --> 00:26:40,130 Jag ska visa er - 542 00:26:40,130 --> 00:26:41,840 OK, det är några riktigt coola verktyg. 543 00:26:41,840 --> 00:26:45,100 Så dessa - 544 00:26:45,100 --> 00:26:47,715 gå in i - om ni har Firefox - förhoppningsvis du gör. 545 00:26:47,715 --> 00:26:54,260 Det finns två tillägg som kallas SQL Inject Jag och Cross-Site Script mig. 546 00:26:54,260 --> 00:26:56,870 De öppnar upp så liten sida fälten på sidan. 547 00:26:56,870 --> 00:27:01,480 Och om jag skulle gå till CS60 till exempel - 548 00:27:01,480 --> 00:27:04,210 så vad den gör är det ser ut för alla de former som - 549 00:27:04,210 --> 00:27:07,220 550 00:27:07,220 --> 00:27:08,760 förhoppningsvis kommer jag inte att få i trubbel för detta. 551 00:27:08,760 --> 00:27:09,190 >> Men OK. 552 00:27:09,190 --> 00:27:12,600 Här är stiftet systemet. 553 00:27:12,600 --> 00:27:18,946 Så när jag börjar leta efter hål i systemet, är det första jag gör 554 00:27:18,946 --> 00:27:21,820 öppna upp denna vackra lilla verktyget på sidan. 555 00:27:21,820 --> 00:27:24,160 Och jag kommer att testa formulär med auto-attacker. 556 00:27:24,160 --> 00:27:28,510 Och så vad detta innebär är att det kommer sakta öppna upp en massa webbläsare. 557 00:27:28,510 --> 00:27:29,930 Här är ett gäng webbläsare. 558 00:27:29,930 --> 00:27:33,320 Och det försöker varje kombination av cross-site scripting 559 00:27:33,320 --> 00:27:37,380 att det möjligen är, om du ser på sidan. 560 00:27:37,380 --> 00:27:42,080 >> Och det kommer att ge mig ett resultat typ av vad svaret är. 561 00:27:42,080 --> 00:27:42,860 Alla pass. 562 00:27:42,860 --> 00:27:43,910 Självklart, de alla passerar. 563 00:27:43,910 --> 00:27:46,190 Jag menar, de är riktigt smarta folk upp där. 564 00:27:46,190 --> 00:27:48,010 Men om jag skulle köra - 565 00:27:48,010 --> 00:27:52,050 Jag har haft gånger tidigare när jag kör det här på elevernas slutprojekt. 566 00:27:52,050 --> 00:27:56,080 Jag kör helt enkelt SQL Inject Me med alla olika attacker. 567 00:27:56,080 --> 00:28:00,080 Och det försöker SQL injicera detta stift server. 568 00:28:00,080 --> 00:28:03,590 Så om vi rulla ner, för Exempelvis står det - 569 00:28:03,590 --> 00:28:04,960 det är bra om den återvänder. 570 00:28:04,960 --> 00:28:08,250 >> Så det testade några vissa värden. 571 00:28:08,250 --> 00:28:11,170 Och servern return kod som var negativt. 572 00:28:11,170 --> 00:28:11,780 Ta bort tillfälligt. 573 00:28:11,780 --> 00:28:13,030 Detta är bra. 574 00:28:13,030 --> 00:28:17,050 575 00:28:17,050 --> 00:28:20,750 Den försöker alla dessa tester. 576 00:28:20,750 --> 00:28:21,790 Så du kan helt enkelt köra - 577 00:28:21,790 --> 00:28:27,860 Jag önskar att jag kunde hitta en hemsida verklig snabb som skulle låta mig - 578 00:28:27,860 --> 00:28:29,110 kanske CS50 butiken. 579 00:28:29,110 --> 00:28:43,890 580 00:28:43,890 --> 00:28:45,711 >> Wow, detta kommer att tar alldeles för lång tid. 581 00:28:45,711 --> 00:28:53,090 582 00:28:53,090 --> 00:28:55,130 Jag låter det första testet inte avsluta rätt. 583 00:28:55,130 --> 00:28:57,330 Så det klagar. 584 00:28:57,330 --> 00:28:58,470 Så dessa tre saker. 585 00:28:58,470 --> 00:29:00,430 Dessa verktyg är gratis. 586 00:29:00,430 --> 00:29:03,960 Du kan ladda ner dem och köra dem på din webbplats, och det kommer att berätta om 587 00:29:03,960 --> 00:29:06,650 du har cross-site scripting, om du har SQL, om du har 588 00:29:06,650 --> 00:29:07,900 något liknande. 589 00:29:07,900 --> 00:29:12,230 590 00:29:12,230 --> 00:29:14,500 Jag sorts stöka. 591 00:29:14,500 --> 00:29:15,550 >> Vad är viktigt - 592 00:29:15,550 --> 00:29:17,900 OK, så lita aldrig på användaren. 593 00:29:17,900 --> 00:29:21,920 Oavsett användaren matar in till dig, göra att du sanera det, rengör du den, 594 00:29:21,920 --> 00:29:25,300 du kontrollera om rätt saker, att det ger dig vad du 595 00:29:25,300 --> 00:29:28,240 vill att han ska ge dig. 596 00:29:28,240 --> 00:29:32,460 Alltid vara uppdaterad om vad ramar att du faktiskt använder. 597 00:29:32,460 --> 00:29:34,630 Om du använder något som bootstrap - 598 00:29:34,630 --> 00:29:36,340 Jag vet att ni kommer att använda bootstrap eftersom han kommer att gå 599 00:29:36,340 --> 00:29:38,140 över detta snart i klassen - 600 00:29:38,140 --> 00:29:43,120 och Wordpress eller något liknande, normalt detta skulle kunna hacka. 601 00:29:43,120 --> 00:29:44,770 >> Och då du inte ens vet. 602 00:29:44,770 --> 00:29:45,800 Du är bara att köra din webbplats. 603 00:29:45,800 --> 00:29:47,360 Och det är helt säkert. 604 00:29:47,360 --> 00:29:51,730 Och du går ner. 605 00:29:51,730 --> 00:29:54,000 Så jag fiskar riktigt tidigt. 606 00:29:54,000 --> 00:29:55,770 Men jag vill tacka Pentest Labs. 607 00:29:55,770 --> 00:29:58,140 Jag ska visa er något heter Pentest Labs. 608 00:29:58,140 --> 00:30:05,000 Om ni verkligen är intresserade av vad säkerhet egentligen är, det finns en 609 00:30:05,000 --> 00:30:07,300 hemsida som heter Pentest Labs om ni går till det just nu. 610 00:30:07,300 --> 00:30:10,730 Oh, ja, det är inte det. 611 00:30:10,730 --> 00:30:12,030 Jag kommer bara att köra det så här. 612 00:30:12,030 --> 00:30:14,400 Google säger mig svaret. 613 00:30:14,400 --> 00:30:16,590 >> OK. 614 00:30:16,590 --> 00:30:19,030 Och det lär använda dig - så det säger, lära web penetration 615 00:30:19,030 --> 00:30:21,060 testa på rätt sätt. 616 00:30:21,060 --> 00:30:23,650 Den lär dig - 617 00:30:23,650 --> 00:30:25,150 förhoppningsvis, du är en etisk person. 618 00:30:25,150 --> 00:30:29,200 Men det lär dig hur du kan titta på hur du kan få inne webbplatser. 619 00:30:29,200 --> 00:30:31,130 Och om du lär dig hur du kan komma in webbplatser, kan du lära dig att 620 00:30:31,130 --> 00:30:34,960 skydda dig från att bli inuti webbplatser. 621 00:30:34,960 --> 00:30:39,100 Låt mig zooma in, därför kanske ni inte tittar på denna rätt. 622 00:30:39,100 --> 00:30:46,350 >> Från SQL-injektion skal, så typ av hur jag kan få från SQL 623 00:30:46,350 --> 00:30:48,530 injektion skal. 624 00:30:48,530 --> 00:30:53,890 Och du ladda ner denna virtuella maskin. 625 00:30:53,890 --> 00:30:55,690 Och den virtuella maskinen redan kommer med den webbplats som du är 626 00:30:55,690 --> 00:30:56,780 kommer att prova på. 627 00:30:56,780 --> 00:30:58,030 Du ladda ner PDF. 628 00:30:58,030 --> 00:31:03,610 629 00:31:03,610 --> 00:31:08,370 Och det kommer att visa dig rad för rad vad du måste göra, vad du kolla. 630 00:31:08,370 --> 00:31:14,560 Detta är vad en angripare faktiskt gör för att komma in en webbplats. 631 00:31:14,560 --> 00:31:15,750 >> Och en del av det här är komplicerat. 632 00:31:15,750 --> 00:31:17,520 Jag önskar att jag kunde gå över mer saker med er. 633 00:31:17,520 --> 00:31:21,090 Men jag är rädd att ni har inte riktigt - 634 00:31:21,090 --> 00:31:23,090 detta är vad jag gick över med ni, webbtester 635 00:31:23,090 --> 00:31:26,830 för penetrationstester. 636 00:31:26,830 --> 00:31:33,540 Vet inte riktigt vad SQL är och vad - 637 00:31:33,540 --> 00:31:35,960 Carl Jackson seminarium är fantastisk också. 638 00:31:35,960 --> 00:31:37,360 Ni vet inte sorterar av vad detta är. 639 00:31:37,360 --> 00:31:39,450 Men om du går till denna webbplats, och du ladda ner dessa tutorials och dessa 640 00:31:39,450 --> 00:31:43,290 PDF-filer, kan du ta en titt på sorts vad det gäller säkerhet verkligen 641 00:31:43,290 --> 00:31:46,940 i penetrationstester, se hur du kan komma in webbplatser och skydda 642 00:31:46,940 --> 00:31:48,020 dig från det. 643 00:31:48,020 --> 00:31:56,360 >> Så om jag gör en super snabb överblick, det ska förhindra cross-site scripting. 644 00:31:56,360 --> 00:32:00,160 Du vill använda htmlspecialchars varje gång användaren ingångar något. 645 00:32:00,160 --> 00:32:01,580 Förhindra SQL-injektion. 646 00:32:01,580 --> 00:32:04,510 Om du gör det, är du redan bättre än Harvard var 647 00:32:04,510 --> 00:32:06,530 när de fick brutit. 648 00:32:06,530 --> 00:32:10,510 Och se till att dina lösenord inte i klartext. 649 00:32:10,510 --> 00:32:16,220 Se till att du inte bara ett sätt hash dem men att du använder krypta, PHP 650 00:32:16,220 --> 00:32:18,670 funktion som jag visade er. 651 00:32:18,670 --> 00:32:20,060 På så sätt, bör du vara bra. 652 00:32:20,060 --> 00:32:25,830 >> Dessutom, om dina vänner kan du, kör SQL Inject Me på sina webbplatser. 653 00:32:25,830 --> 00:32:28,140 Kör cross-site scripting på sina webbplatser. 654 00:32:28,140 --> 00:32:33,720 Och du kommer att se en hel del av dessa webbplatser har en ton av sårbarheter. 655 00:32:33,720 --> 00:32:40,400 Det är otroligt hur mycket folk glömmer att desinficera sina databaser eller för att göra 656 00:32:40,400 --> 00:32:46,340 säker på vad personens inmatning är inte script. 657 00:32:46,340 --> 00:32:47,200 OK. 658 00:32:47,200 --> 00:32:49,182 Jag slags slutade riktigt tidigt. 659 00:32:49,182 --> 00:32:56,510 Men om någon har några frågor om vad som helst, kan du skjuta mig en fråga. 660 00:32:56,510 --> 00:32:56,630 Yeah. 661 00:32:56,630 --> 00:32:56,970 Gå, gå. 662 00:32:56,970 --> 00:32:59,846 >> PUBLIK: Jag vill bara fråga, kan du förklara hur filen 663 00:32:59,846 --> 00:33:03,160 ladda upp exakt verk. 664 00:33:03,160 --> 00:33:03,480 >> LUCIANO Arango: Ja. 665 00:33:03,480 --> 00:33:06,350 Så låt mig visa dig den filen ladda upp riktigt snabbt. 666 00:33:06,350 --> 00:33:11,300 Så filuppladdning - 667 00:33:11,300 --> 00:33:14,500 problemet wit den filuppladdning just nu är det - 668 00:33:14,500 --> 00:33:18,541 Jag ska öppna koden så ni se koden bakom kulisserna. 669 00:33:18,541 --> 00:33:22,390 670 00:33:22,390 --> 00:33:24,305 Och det är att ladda upp. 671 00:33:24,305 --> 00:33:28,030 672 00:33:28,030 --> 00:33:31,560 Här är en kod för filuppladdare. 673 00:33:31,560 --> 00:33:33,980 >> Vi försöker att gå in i denna katalog över här. 674 00:33:33,980 --> 00:33:37,380 675 00:33:37,380 --> 00:33:44,880 Och vi försöker, när vi mata in fil, isset fil - så när det finns en 676 00:33:44,880 --> 00:33:50,900 fil i filer, den bilden, då Vi försöker att flytta den hit. 677 00:33:50,900 --> 00:33:51,910 Vi tar tag i filen hit. 678 00:33:51,910 --> 00:33:58,350 Metoden är POST, typ, bild, fil. 679 00:33:58,350 --> 00:33:59,630 Och vi skickar filen. 680 00:33:59,630 --> 00:34:03,910 Och sedan när vi får det, så när filen har en bild, vi försöker att skicka det 681 00:34:03,910 --> 00:34:05,060 till den här katalogen. 682 00:34:05,060 --> 00:34:09,814 >> Problemet är att webbplatsen inte är låta mig gå till denna katalog, 683 00:34:09,814 --> 00:34:12,239 eftersom den inte vill att jag ska gå tillbaka. 684 00:34:12,239 --> 00:34:13,489 Det är inte att jag ska gå - 685 00:34:13,489 --> 00:34:15,620 686 00:34:15,620 --> 00:34:17,070 Jag måste gå - så här är att ladda upp. 687 00:34:17,070 --> 00:34:17,639 Här är bilderna. 688 00:34:17,639 --> 00:34:21,780 Jag måste gå hela vägen tillbaka till början och lägga den i det och då 689 00:34:21,780 --> 00:34:23,820 gå och lägg den i katalogen. 690 00:34:23,820 --> 00:34:30,000 Så om jag kör ett terminalfönster, och jag ville flytta en fil - 691 00:34:30,000 --> 00:34:30,409 [OHÖRBAR] 692 00:34:30,409 --> 00:34:32,159 kan se det. 693 00:34:32,159 --> 00:34:37,940 Om jag ville flytta en fil, har jag att sätta filnamnet och sedan 694 00:34:37,940 --> 00:34:40,860 fullständig sökväg Jag vill skicka det till. 695 00:34:40,860 --> 00:34:45,110 >> Och då servern inte Att låta mig gå tillbaka. 696 00:34:45,110 --> 00:34:46,929 Och så det är inte att låta mig att komma till den filen. 697 00:34:46,929 --> 00:34:47,670 Men normalt - 698 00:34:47,670 --> 00:34:49,360 så det finns en kod för ladda upp en fil. 699 00:34:49,360 --> 00:34:52,260 Så normalt vad som kommer att hända är att den personen är inte kontrollera om min fil 700 00:34:52,260 --> 00:34:57,920 slutar med. jpeg, så jag skulle vilja kolla. 701 00:34:57,920 --> 00:35:00,054 Låt mig öppna ett exempel för riktigt snabbt. 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 Denna person rätt - 705 00:35:09,230 --> 00:35:11,980 så exempel två kontrollerar om preg_match - 706 00:35:11,980 --> 00:35:14,180 här är det här borta - 707 00:35:14,180 --> 00:35:19,660 att se till att avslutas med PHP, vilket är bra. 708 00:35:19,660 --> 00:35:20,580 Detta är bra. 709 00:35:20,580 --> 00:35:22,820 Men det finns en riktigt stor problem med detta. 710 00:35:22,820 --> 00:35:24,600 Detta är bra. 711 00:35:24,600 --> 00:35:44,190 Men om jag skulle lägga en fil som heter myfavoritepicture.php.jpeg, jag kunde 712 00:35:44,190 --> 00:35:50,060 fortfarande potentiellt bli av med jpeg och kör it.k Att PHP är farligt. 713 00:35:50,060 --> 00:35:53,850 Du vill inte att personen ska kunna för att köra kod på din hemsida. 714 00:35:53,850 --> 00:35:55,750 >> Men sedan. Jpeg låter det passera. 715 00:35:55,750 --> 00:36:00,720 Tanken är vad du verkligen vill göra inte ta filer, A. Men, OK, vad 716 00:36:00,720 --> 00:36:07,500 du verkligen vill göra är att se till att du läst över hela världen. 717 00:36:07,500 --> 00:36:08,720 Och det finns ingenting. Php på det. 718 00:36:08,720 --> 00:36:10,500 Det finns ingen. Php i Hela filnamn. 719 00:36:10,500 --> 00:36:12,780 >> PUBLIK: Men du kunde sätta. jpeg på slutet. 720 00:36:12,780 --> 00:36:15,830 Servrarna fortfarande köra koden. 721 00:36:15,830 --> 00:36:16,870 >> LUCIANO Arango: Nej, det gör det inte genomföras i början. 722 00:36:16,870 --> 00:36:22,310 Du måste gå tillbaka och försök för att se om du kan - 723 00:36:22,310 --> 00:36:24,210 >> PUBLIK: Så vi måste - 724 00:36:24,210 --> 00:36:26,020 OK, bara en annan uppsättning som innebär - 725 00:36:26,020 --> 00:36:26,936 >> LUCIANO Arango: Ja. 726 00:36:26,936 --> 00:36:29,230 >> PUBLIK: OK. 727 00:36:29,230 --> 00:36:31,486 >> LUCIANO Arango: Ja. 728 00:36:31,486 --> 00:36:31,900 OK. 729 00:36:31,900 --> 00:36:32,865 Fler frågor? 730 00:36:32,865 --> 00:36:33,180 OK. 731 00:36:33,180 --> 00:36:37,350 Jag kommer att lämna detta upp och sortera av försök att se om ni kan - 732 00:36:37,350 --> 00:36:40,490 de andra är lite mer komplicerade, eftersom de kräver mycket 733 00:36:40,490 --> 00:36:44,050 mer kunskaper om SQL än bara början kunskap om webb SQL är och 734 00:36:44,050 --> 00:36:47,010 vad JavaScript är. 735 00:36:47,010 --> 00:36:49,730 Men jag ska försöka hålla upp detta, och förhoppningsvis ni kommer att lära 736 00:36:49,730 --> 00:36:53,230 om detta och försöka ta en titt på vad du kan göra och hur många exempel 737 00:36:53,230 --> 00:36:54,420 du kan få igenom. 738 00:36:54,420 --> 00:36:56,020 >> Någon som har någon annan frågor om det? 739 00:36:56,020 --> 00:36:59,387 740 00:36:59,387 --> 00:37:00,350 Varsågod. 741 00:37:00,350 --> 00:37:01,170 Ja, skjuta, skjuta. 742 00:37:01,170 --> 00:37:01,580 Ja, gå vidare. 743 00:37:01,580 --> 00:37:01,850 Varsågod. 744 00:37:01,850 --> 00:37:02,310 >> PUBLIK: OK. 745 00:37:02,310 --> 00:37:08,870 Jag hörde om hur Magiska citat är inte tillräckligt säker. 746 00:37:08,870 --> 00:37:09,280 >> LUCIANO Arango: Vad - 747 00:37:09,280 --> 00:37:10,110 Magiska citat? 748 00:37:10,110 --> 00:37:10,595 >> PUBLIK: Ja. 749 00:37:10,595 --> 00:37:15,445 Så det tillför - så när du matar något, alltid lägger det citat. 750 00:37:15,445 --> 00:37:15,930 >> LUCIANO Arango: Ja. 751 00:37:15,930 --> 00:37:16,000 Yeah. 752 00:37:16,000 --> 00:37:16,496 OK. 753 00:37:16,496 --> 00:37:19,113 >> PUBLIK: Och sedan jag fast det fungerade, men då jag sökte upp den. 754 00:37:19,113 --> 00:37:21,648 Och det sa att det är inte bra. 755 00:37:21,648 --> 00:37:23,050 Men jag är inte säker på varför. 756 00:37:23,050 --> 00:37:23,360 >> LUCIANO Arango: Ja. 757 00:37:23,360 --> 00:37:26,240 >> PUBLIK: Använd inte Magiska Quotes, eftersom det inte är säkert. 758 00:37:26,240 --> 00:37:26,360 >> LUCIANO Arango: OK. 759 00:37:26,360 --> 00:37:31,735 Så Magiska citat är när du sätter SQL och det redan lägger offert för dig. 760 00:37:31,735 --> 00:37:33,520 >> PUBLIK: Det lägger alltid citat kring vad du lägger i. 761 00:37:33,520 --> 00:37:34,210 >> LUCIANO Arango: Ja. 762 00:37:34,210 --> 00:37:37,190 Så problemet med detta är att - 763 00:37:37,190 --> 00:37:38,445 Jag tar en titt på - 764 00:37:38,445 --> 00:37:41,390 >> PUBLIK: Hur fungerar det förvärvar SQL-satsen? 765 00:37:41,390 --> 00:37:44,690 Eller jag antar att det kan vara liknande citat väljer. 766 00:37:44,690 --> 00:37:49,030 >> LUCIANO Arango: Ja, du behöver bra citat för SQL. 767 00:37:49,030 --> 00:37:52,900 >> PUBLIK: Nej, men servern gör det åt dig. 768 00:37:52,900 --> 00:37:54,460 >> LUCIANO Arango: Dessa små citat just här, dessa små citat? 769 00:37:54,460 --> 00:37:55,670 >> PUBLIK: Ja. 770 00:37:55,670 --> 00:37:56,450 >> LUCIANO Arango: Ja. 771 00:37:56,450 --> 00:37:59,860 Problemet är att du kan kommentera ut den sista - 772 00:37:59,860 --> 00:38:05,770 OK, så vad jag kan göra är att jag kan kommentera ut - så låt oss ta en titt på - låt mig 773 00:38:05,770 --> 00:38:07,920 öppna en textredigeringsfilen. 774 00:38:07,920 --> 00:38:09,610 Låt mig bara redigera här direkt. 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 Kan ni se det klart? 778 00:38:23,710 --> 00:38:29,730 Vad jag kan göra är att jag kan kommentera ut den sista. 779 00:38:29,730 --> 00:38:32,190 Detta kommer att kommentera ut den sista. 780 00:38:32,190 --> 00:38:36,760 Och så kommer jag lägga en här, satte alla skadliga saker här. 781 00:38:36,760 --> 00:38:39,840 782 00:38:39,840 --> 00:38:42,630 >> Så användaren faktiskt mata in, eller hur? 783 00:38:42,630 --> 00:38:45,230 Användaren är inte mata saker, eller hur? 784 00:38:45,230 --> 00:38:47,430 Detta är vad jag ska inmatning som den person som försöker komma in. 785 00:38:47,430 --> 00:38:49,430 Jag kommer att sätta in - 786 00:38:49,430 --> 00:38:59,290 787 00:38:59,290 --> 00:39:00,180 det är en citattecken. 788 00:39:00,180 --> 00:39:01,760 Det är bara snirklig av misstag. 789 00:39:01,760 --> 00:39:15,080 790 00:39:15,080 --> 00:39:19,400 Och sedan vad koden är ska göra - 791 00:39:19,400 --> 00:39:20,190 förlåt, jag ska ta ut det. 792 00:39:20,190 --> 00:39:22,170 Vad koden kommer att göra är det kommer att lägga till den första 793 00:39:22,170 --> 00:39:24,030 citattecken här. 794 00:39:24,030 --> 00:39:26,040 Och det kommer att lägga till den sista citattecken också. 795 00:39:26,040 --> 00:39:29,350 796 00:39:29,350 --> 00:39:33,270 >> Och det kommer också att lägga till sist, sista citattecken. 797 00:39:33,270 --> 00:39:37,380 Men jag kommentera dessa citat markerar ut, så att de inte kör. 798 00:39:37,380 --> 00:39:41,440 Och jag avslutar detta citat markera hit. 799 00:39:41,440 --> 00:39:42,290 Förstår du? 800 00:39:42,290 --> 00:39:43,750 Är du förlorat? 801 00:39:43,750 --> 00:39:45,880 Jag kan kommentera det sista citatet märke, och ta hand om den 802 00:39:45,880 --> 00:39:46,680 första citattecknet. 803 00:39:46,680 --> 00:39:47,350 >> PUBLIK: Och bara yta den första. 804 00:39:47,350 --> 00:39:47,480 >> LUCIANO Arango: Ja. 805 00:39:47,480 --> 00:39:48,400 Och bara avsluta den första. 806 00:39:48,400 --> 00:39:48,790 Ja, det stämmer. 807 00:39:48,790 --> 00:39:50,800 Det är vad jag kan göra. 808 00:39:50,800 --> 00:39:51,890 Yeah. 809 00:39:51,890 --> 00:39:52,980 Alla andra frågor som det? 810 00:39:52,980 --> 00:39:54,230 Det är en stor fråga. 811 00:39:54,230 --> 00:39:56,960 812 00:39:56,960 --> 00:39:59,790 Nej, ja, kanske. 813 00:39:59,790 --> 00:40:06,150 Förhoppningsvis kommer ni sorts göra mer känsla när du studerar SQL och 814 00:40:06,150 --> 00:40:06,650 sånt. 815 00:40:06,650 --> 00:40:07,980 Men se till att du - 816 00:40:07,980 --> 00:40:10,340 hålla dessa verktyg i klockan. 817 00:40:10,340 --> 00:40:12,760 Tyvärr, de här verktygen över här. 818 00:40:12,760 --> 00:40:14,200 Dessa verktyg är stora. 819 00:40:14,200 --> 00:40:17,190 Om någon har några frågor, Du kan också maila mig. 820 00:40:17,190 --> 00:40:19,020 Det här är min normala e-post. 821 00:40:19,020 --> 00:40:25,015 Och det här är mitt arbete e-post, vilket är när jag arbetar på SEAS. 822 00:40:25,015 --> 00:40:26,040 >> OK, tack. 823 00:40:26,040 --> 00:40:26,740 Tack, killar. 824 00:40:26,740 --> 00:40:27,860 Du är bra att gå. 825 00:40:27,860 --> 00:40:28,830 Du behöver inte bo här. 826 00:40:28,830 --> 00:40:29,570 Inte klappa. 827 00:40:29,570 --> 00:40:30,170 Det är konstigt. 828 00:40:30,170 --> 00:40:31,420 OK, tack, grabbar. 829 00:40:31,420 --> 00:40:32,320