1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:10,300 >> LUCIANO ARANGO: OK, gutter. 3 00:00:10,300 --> 00:00:11,550 Mit navn er Luciano Arango. 4 00:00:11,550 --> 00:00:13,915 Jeg er en sophomore i Adams House. 5 00:00:13,915 --> 00:00:17,550 Og vi kommer til at tale om web sikkerhed aktivt forsvar. 6 00:00:17,550 --> 00:00:24,220 Så jeg arbejder for Office of Information Sikkerhed i SEAS. 7 00:00:24,220 --> 00:00:28,670 Og i løbet af sommeren, jeg interneret på SeguraTec, som var en information 8 00:00:28,670 --> 00:00:31,310 vagtselskab, der tjente for Bank of Columbia. 9 00:00:31,310 --> 00:00:34,740 Det er for det meste hvor jeg lærte hvad jeg har lært indtil nu. 10 00:00:34,740 --> 00:00:37,990 >> Og så noget af det materiale, som vi kommer til at gå over i dag, har vi ikke 11 00:00:37,990 --> 00:00:39,670 virkelig talt om i klassen. 12 00:00:39,670 --> 00:00:40,410 Men vi vil snart. 13 00:00:40,410 --> 00:00:42,360 Det kommer til at være som SQL, JavaScript. 14 00:00:42,360 --> 00:00:44,870 Og vi har ikke rigtig gået over det. 15 00:00:44,870 --> 00:00:47,730 Så kan sortere Jeg søgning igennem det, og du måske ikke kender nogle ting. 16 00:00:47,730 --> 00:00:48,890 Men snart vil du lære det. 17 00:00:48,890 --> 00:00:52,080 Og det hele vil give mening. 18 00:00:52,080 --> 00:00:54,010 Også en anden ting - 19 00:00:54,010 --> 00:00:55,780 forblive etiske. 20 00:00:55,780 --> 00:01:00,560 Nogle af de ting, du lærer, kan du kunne bruge i ikke-etiske måder. 21 00:01:00,560 --> 00:01:01,950 >> Hvis det er din, helt sikkert prøve. 22 00:01:01,950 --> 00:01:04,500 Jeg absolut motivere jer at prøve dine egne servere, så prøv 23 00:01:04,500 --> 00:01:05,519 går inde i dem. 24 00:01:05,519 --> 00:01:08,500 Se om du kan trænge dem, hvis du kan få inde i dem. 25 00:01:08,500 --> 00:01:09,560 Men ikke nogen andens. 26 00:01:09,560 --> 00:01:12,390 Politiet kan ikke rigtig lide vittigheder og det hele, vi sætter denne her. 27 00:01:12,390 --> 00:01:14,040 Vi var rode rundt. 28 00:01:14,040 --> 00:01:15,780 De får virkelig vred. 29 00:01:15,780 --> 00:01:18,700 >> Så hovedet over til denne hjemmeside. 30 00:01:18,700 --> 00:01:23,560 Jeg har det åbnede lige her. 31 00:01:23,560 --> 00:01:26,780 Dette er en hjemmeside, og det har en masse eksempler. 32 00:01:26,780 --> 00:01:30,000 Hvad sker er, at det første eksempel er slags kommer til at være en hel del lettere 33 00:01:30,000 --> 00:01:33,470 end det sidste eksempel i en vis forstand at det første eksempel 34 00:01:33,470 --> 00:01:34,970 er fuldstændig usikker. 35 00:01:34,970 --> 00:01:40,850 Og den sidste er en slags, hvad en normal web sikkerhed person ville gøre. 36 00:01:40,850 --> 00:01:42,760 Men du kan stadig sortere af få omkring det. 37 00:01:42,760 --> 00:01:44,860 Og vi kommer til at fokusere på en og to eksempler et og to. 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 Lad os starte med cross-site scripting. 41 00:01:52,780 --> 00:01:56,100 JavaScript køres på kundens browser. 42 00:01:56,100 --> 00:01:59,980 Det er et programmeringssprog, som du bruger til at køre på kundens browser, så 43 00:01:59,980 --> 00:02:04,120 du behøver ikke at opdatere hjemmesiden og gå tilbage til serveren. 44 00:02:04,120 --> 00:02:04,940 Du har det kører. 45 00:02:04,940 --> 00:02:08,870 For eksempel Facebook, behøver du ikke at genindlæse hjemmesiden for nye status 46 00:02:08,870 --> 00:02:09,710 opdateringer til at komme op. 47 00:02:09,710 --> 00:02:12,170 Det er ved hjælp af JavaScript til at generere alle disse ting. 48 00:02:12,170 --> 00:02:16,290 Så vi kan injicere skadelig JavaScript ind i hjemmesider. 49 00:02:16,290 --> 00:02:20,890 Og på den måde, når vi sender et link til nogen, kunne vi slags sende det med 50 00:02:20,890 --> 00:02:23,050 nogle af koden, som vi ønsker. 51 00:02:23,050 --> 00:02:26,450 >> Der er vedholdende og ikke-vedvarende JavaScript - 52 00:02:26,450 --> 00:02:30,640 vedholdende og ikke-vedvarende cross-site scripting, mener jeg. 53 00:02:30,640 --> 00:02:33,760 Og den forskel, at vedvarende er JavaScript, der vil være 54 00:02:33,760 --> 00:02:36,060 gemt på hjemmesiden. 55 00:02:36,060 --> 00:02:39,780 Og ikke-vedvarende vil være JavaScript der vil faktisk bare ske én gang. 56 00:02:39,780 --> 00:02:41,795 Så lad os se på et eksempel virkelig hurtig. 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å denne hjemmeside, enkel, sker der ikke noget her. 60 00:02:51,620 --> 00:02:53,070 Og vi vil forsøge at indsætte nogle JavaScript. 61 00:02:53,070 --> 00:02:58,110 Så den måde, vi begynder at skrive JavaScript er vi starter med begyndelsen script. 62 00:02:58,110 --> 00:03:00,570 Og vi lukker den med script. 63 00:03:00,570 --> 00:03:03,770 Vi er simpelthen kommer til at sætte en besked - 64 00:03:03,770 --> 00:03:05,410 Jeg vil vise dig - 65 00:03:05,410 --> 00:03:06,500 alarm. 66 00:03:06,500 --> 00:03:11,150 Alert er en funktion, JavaScript bruger til at vise noget. 67 00:03:11,150 --> 00:03:12,400 Så lad os prøve det rigtig hurtig. 68 00:03:12,400 --> 00:03:15,600 69 00:03:15,600 --> 00:03:18,944 Jeg har tænkt mig at gå, alarm hej. 70 00:03:18,944 --> 00:03:20,400 Nå, jeg glemte at sætte - 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 er simpelt. 74 00:03:26,540 --> 00:03:28,730 >> Vi lægger JavaScript på en hjemmeside, og det kom op. 75 00:03:28,730 --> 00:03:31,200 Og det slags kun sker på vores hjemmeside, right? 76 00:03:31,200 --> 00:03:33,040 Så det ser ud som om det ikke er et problem, right? 77 00:03:33,040 --> 00:03:34,920 Jeg mener, hvordan kunne du bruge dette skadeligt? 78 00:03:34,920 --> 00:03:39,930 Så den måde, at hackere gøre dette er meget simpelt. 79 00:03:39,930 --> 00:03:40,970 De kommer til at få fat i det. 80 00:03:40,970 --> 00:03:43,750 De kan sende dette link til dig. 81 00:03:43,750 --> 00:03:46,780 Hvis jeg sender dette link til dig lige nu, og du åbner det op, går det til 82 00:03:46,780 --> 00:03:51,620 sige, hej, siger, at min hjemmeside fortæller dig hej. 83 00:03:51,620 --> 00:03:57,280 >> Og så hvis jeg skulle sige noget lidt smartere, hvis jeg trækker op en 84 00:03:57,280 --> 00:03:59,880 JavaScript-funktionen Jeg slags af allerede skrev - 85 00:03:59,880 --> 00:04:03,940 men hvis man ser på det, vil jeg gå Over det, før jeg skrev det. 86 00:04:03,940 --> 00:04:06,650 Så vi kommer til at sætte en timeout. 87 00:04:06,650 --> 00:04:08,450 Vi kommer til at vente på et par sekunder. 88 00:04:08,450 --> 00:04:13,970 Faktisk, vi kommer til at vente på, hvis Jeg ikke tager fejl fem sekunder. 89 00:04:13,970 --> 00:04:15,870 Dette går i millisekunder. 90 00:04:15,870 --> 00:04:18,640 Og så hvad vi vil gøre, er at vi er kommer til at advare, at logon 91 00:04:18,640 --> 00:04:21,459 timeout for at logge ind igen 92 00:04:21,459 --> 00:04:23,990 Og vi kommer til at ændre den placering til en anden placering. 93 00:04:23,990 --> 00:04:30,370 94 00:04:30,370 --> 00:04:32,970 >> Så hvis jeg sender dette websted til nogen, de kommer til at være 95 00:04:32,970 --> 00:04:34,380 surfe rundt, rolig. 96 00:04:34,380 --> 00:04:35,650 Der sker ikke noget. 97 00:04:35,650 --> 00:04:38,550 Og fem sekunder, går det at sige, dit login timeout. 98 00:04:38,550 --> 00:04:40,200 Du skal logge ind igen 99 00:04:40,200 --> 00:04:43,400 Når de klikker på OK, vil jeg tage dem til en anden hjemmeside. 100 00:04:43,400 --> 00:04:45,980 Formentlig er hjemmesiden kommer til at svare til det websted, 101 00:04:45,980 --> 00:04:47,280 de var i før. 102 00:04:47,280 --> 00:04:50,770 Og de kommer til at logge deres legitimationsoplysninger til min hjemmeside i stedet for 103 00:04:50,770 --> 00:04:51,850 deres hjemmeside. 104 00:04:51,850 --> 00:04:54,780 >> Og så jeg kan sende folk en e-mail med dette link. 105 00:04:54,780 --> 00:04:56,240 Jeg siger, åh, her er et link. 106 00:04:56,240 --> 00:04:57,290 Dette er en bank, for eksempel. 107 00:04:57,290 --> 00:05:01,390 Jeg siger, her, gå på dette link. 108 00:05:01,390 --> 00:05:03,730 Og når de sender det, de er kommer til at surfe rundt. 109 00:05:03,730 --> 00:05:07,560 Jeg kan vente i 15 sekunder, 20 sekunder og derefter pop, at du logge tilbage i 110 00:05:07,560 --> 00:05:08,840 underskrive igen. 111 00:05:08,840 --> 00:05:10,120 Du fyre kan prøve det med en masse flere ting. 112 00:05:10,120 --> 00:05:13,190 Det er kompliceret, fordi du fyre har ikke set JavaScript, så du kan 113 00:05:13,190 --> 00:05:14,750 ikke kender nogle funktioner. 114 00:05:14,750 --> 00:05:18,625 Men alt hvad du skal gøre er at starte med script, ender med script. 115 00:05:18,625 --> 00:05:22,105 116 00:05:22,105 --> 00:05:25,510 Og du kan sætte noget i midten. 117 00:05:25,510 --> 00:05:27,350 >> Alert er en funktion, vent. 118 00:05:27,350 --> 00:05:29,365 Vindue placering tager dig til en ny placering. 119 00:05:29,365 --> 00:05:31,370 Men du kan gøre så meget mere. 120 00:05:31,370 --> 00:05:32,630 Og så er ideen, at vi tager den fra. 121 00:05:32,630 --> 00:05:39,350 Hvis jeg går til eksempel to, og jeg sat i samme kode, er det 122 00:05:39,350 --> 00:05:40,210 ikke kommer til at fungere. 123 00:05:40,210 --> 00:05:43,620 Så det er at udskrive alt ud, fordi hvad dette website oprindelig 124 00:05:43,620 --> 00:05:50,350 gør, er, hvis jeg sætte noget her, det vil printe det ud lige her. 125 00:05:50,350 --> 00:05:52,390 Så det er ikke udskrives noget ud. 126 00:05:52,390 --> 00:05:55,560 Dette eksempel er faktisk kontrol for at se om script er der. 127 00:05:55,560 --> 00:05:57,163 Så ja, gå videre. 128 00:05:57,163 --> 00:05:57,606 Spørg mig. 129 00:05:57,606 --> 00:05:59,560 >> PUBLIKUM: Er ikke sende a få eller sende anmodning? 130 00:05:59,560 --> 00:06:00,670 >> LUCIANO ARANGO: Ja. de er sende en GET-anmodning. 131 00:06:00,670 --> 00:06:01,350 >> PUBLIKUM: Det er? 132 00:06:01,350 --> 00:06:02,490 >> LUCIANO ARANGO: Ja. 133 00:06:02,490 --> 00:06:04,030 Også browsere bruger post-anmodninger. 134 00:06:04,030 --> 00:06:07,470 Men jeg forsøger at vise får anmodninger så vi kan se, hvad der er 135 00:06:07,470 --> 00:06:10,760 faktisk foregår. 136 00:06:10,760 --> 00:06:12,880 Og så hvis vi ser på denne kode - så det fungerer ikke længere. 137 00:06:12,880 --> 00:06:24,870 Og hvis vi tager et kig på denne kode, det kommer til at være i eksempel to. 138 00:06:24,870 --> 00:06:29,300 Hvad denne person gør, er den person ansvaret for denne browser - 139 00:06:29,300 --> 00:06:35,370 åbne op, OK - 140 00:06:35,370 --> 00:06:39,290 erstatter ordet script. 141 00:06:39,290 --> 00:06:42,850 Det er PHP, som du fyre måske har set en lille smule af endnu. 142 00:06:42,850 --> 00:06:46,250 >> Han er bare at erstatte Ordet script med navn. 143 00:06:46,250 --> 00:06:50,895 Så men hvis jeg går videre og bare sætte i - 144 00:06:50,895 --> 00:06:58,520 145 00:06:58,520 --> 00:07:02,360 hvis jeg fat i min kode igen, og jeg har tænkt mig at ændre det bare en lille smule. 146 00:07:02,360 --> 00:07:15,010 I stedet for script, jeg kommer til at ændre det for script med en kapital R. And 147 00:07:15,010 --> 00:07:16,390 vi kommer til at se, om denne kode virker. 148 00:07:16,390 --> 00:07:19,090 Så det ikke printe det ud, hvilket er et godt tegn. 149 00:07:19,090 --> 00:07:21,990 Og forhåbentlig i to sekunder mere, det kommer til at dukke op. 150 00:07:21,990 --> 00:07:22,820 >> Dit login timeout. 151 00:07:22,820 --> 00:07:23,210 OK. 152 00:07:23,210 --> 00:07:24,460 Det er ok. 153 00:07:24,460 --> 00:07:27,670 Så kontrollerer for script måske ikke nødvendigvis arbejde. 154 00:07:27,670 --> 00:07:28,130 Den person - 155 00:07:28,130 --> 00:07:32,290 det kan også tjekke for script store bogstaver, script små bogstaver, str. sag 156 00:07:32,290 --> 00:07:34,180 sammenligne, sørg for at de er den samme. 157 00:07:34,180 --> 00:07:38,480 Men hackeren kan stadig gøre slags hvad vi gjorde i Vigenere da vi flyttede 158 00:07:38,480 --> 00:07:40,620 tilbage et par karakterer, bevæge sig fremad. 159 00:07:40,620 --> 00:07:43,470 Og det kan finde ud af at sætte script tilbage i der, så det kan injicere 160 00:07:43,470 --> 00:07:44,460 at script. 161 00:07:44,460 --> 00:07:50,370 >> Så hvad du vil bruge er htmlspecialchars til 162 00:07:50,370 --> 00:07:51,330 beskytte dit websted. 163 00:07:51,330 --> 00:07:56,490 Og hvad det betyder er det gør sikker på, at hvad du putter i - 164 00:07:56,490 --> 00:07:59,610 for eksempel, citater eller dette større eller mindre end - 165 00:07:59,610 --> 00:08:04,701 erstattes med noget der vil ikke være - 166 00:08:04,701 --> 00:08:05,951 lad mig zoome ind her - 167 00:08:05,951 --> 00:08:08,730 168 00:08:08,730 --> 00:08:09,685 selve tegnet. 169 00:08:09,685 --> 00:08:13,420 Det vil erstatte de særlige HTML tegn, som vi vil se, når vi er 170 00:08:13,420 --> 00:08:14,670 taler om - 171 00:08:14,670 --> 00:08:18,635 172 00:08:18,635 --> 00:08:20,740 åh, det kommer til at tage mig tilbage til - 173 00:08:20,740 --> 00:08:24,220 174 00:08:24,220 --> 00:08:25,380 disse tegn lige her. 175 00:08:25,380 --> 00:08:28,180 >> Disse betyde, at noget er på vej. 176 00:08:28,180 --> 00:08:31,570 For HTML, der begynder beslag fortæller os, at noget 177 00:08:31,570 --> 00:08:33,299 HTML relaterede kommer. 178 00:08:33,299 --> 00:08:33,980 Og vi ønsker at slippe af med det. 179 00:08:33,980 --> 00:08:36,200 Vi ønsker ikke at sætte HTML ind i en website.k Vi ønsker ikke, at brugeren 180 00:08:36,200 --> 00:08:40,260 stand til at sætte noget i deres hjemmeside der kan påvirke deres hjemmeside, ligesom 181 00:08:40,260 --> 00:08:43,480 script eller HTML eller noget lignende. 182 00:08:43,480 --> 00:08:53,090 Hvad der er vigtigt er, at du rense brugerens input. 183 00:08:53,090 --> 00:08:54,720 >> Så brugerne kan indtaste mange ting. 184 00:08:54,720 --> 00:08:58,110 Han kan indtaste en masse ting at prøve at narre din browser i stadig 185 00:08:58,110 --> 00:08:59,410 kører dette script kode. 186 00:08:59,410 --> 00:09:02,870 Hvad du ønsker at gøre, er ikke bare se for scriptet, men se for alt 187 00:09:02,870 --> 00:09:04,250 der kunne være skadelig. 188 00:09:04,250 --> 00:09:06,800 Og htmlspecialchars vil gøre det for dig, så du ikke behøver 189 00:09:06,800 --> 00:09:07,340 at bekymre sig om det. 190 00:09:07,340 --> 00:09:12,280 Men du skal ikke forsøge at gøre ved dig selv slags med din egen kode. 191 00:09:12,280 --> 00:09:14,055 Er alle klar på XSS? 192 00:09:14,055 --> 00:09:14,370 >> OK. 193 00:09:14,370 --> 00:09:16,355 Lad os gå til SQL-injektion. 194 00:09:16,355 --> 00:09:21,010 Så SQL-injektion er nok den nummer et sårbarhed 195 00:09:21,010 --> 00:09:22,490 i forskellige hjemmesider. 196 00:09:22,490 --> 00:09:24,350 Jeg mener, et godt eksempel - 197 00:09:24,350 --> 00:09:27,350 Jeg var bare forske længst for denne ting. 198 00:09:27,350 --> 00:09:34,430 Og jeg fandt denne awesome artikel, hvor Jeg så, at Harvard er blevet tilsidesat, 199 00:09:34,430 --> 00:09:35,390 blev hacket. 200 00:09:35,390 --> 00:09:37,370 Og jeg tænkte, ja, hvordan ville de gøre det? 201 00:09:37,370 --> 00:09:41,660 Harvard er den mest awesome, mest sikre universitet nogensinde. 202 00:09:41,660 --> 00:09:43,850 Right? 203 00:09:43,850 --> 00:09:45,410 Nå, bryder de servere, hackere brugte en 204 00:09:45,410 --> 00:09:47,710 teknik kaldet SQL-injektion. 205 00:09:47,710 --> 00:09:50,250 >> Så det sker på en dag til dag basis. 206 00:09:50,250 --> 00:09:53,590 Mennesker glemmer at tage hensyn til for SQL-injektion. 207 00:09:53,590 --> 00:09:54,930 Harvard gør. 208 00:09:54,930 --> 00:10:00,050 Jeg tror, ​​det siger her, Princeton, Stanford, Cornell. 209 00:10:00,050 --> 00:10:03,550 Så hvordan gør vi - så hvad er denne SQL injektion, der bringer alle disse 210 00:10:03,550 --> 00:10:05,668 folk ned? 211 00:10:05,668 --> 00:10:08,010 OK. 212 00:10:08,010 --> 00:10:12,090 Så SQL er et programmeringssprog, der vi bruger til at få adgang til databaser. 213 00:10:12,090 --> 00:10:14,560 Hvad vi gør, er at vi vælger - 214 00:10:14,560 --> 00:10:18,510 så hvad det lyder lige nu, er at vælge alt fra tabellen. 215 00:10:18,510 --> 00:10:22,640 >> SQL, det ændrer i disse databaser der har tabeller fuld af oplysninger. 216 00:10:22,640 --> 00:10:26,550 Så vælg alt fra brugere hvor navnet er brugernavnet. 217 00:10:26,550 --> 00:10:28,120 Right? 218 00:10:28,120 --> 00:10:30,770 Simpelt nok. 219 00:10:30,770 --> 00:10:34,490 Ideen med SQL-injektion er, at vi indsætte nogle ondsindet kode, der ville 220 00:10:34,490 --> 00:10:37,270 narre serveren til at køre noget anderledes end hvad det 221 00:10:37,270 --> 00:10:38,430 oprindeligt kørte. 222 00:10:38,430 --> 00:10:44,970 Så lad os sige om brugernavn, vi sætter i eller 1 er lig med 1. 223 00:10:44,970 --> 00:10:46,700 Så vi sætter i eller 1 er lig med 1. 224 00:10:46,700 --> 00:10:49,890 Den måde, det vil læse nu vil være at vælge fra brugerne, alt fra 225 00:10:49,890 --> 00:10:51,360 brugere - dette er alt - 226 00:10:51,360 --> 00:10:55,880 hvor navn er brugernavn, men brugernavn er eller 1 er lig med 1. 227 00:10:55,880 --> 00:11:01,760 >> Så navn er ingenting eller 1 er lig med 1. 228 00:11:01,760 --> 00:11:04,060 1 er lig med 1 er altid sandt. 229 00:11:04,060 --> 00:11:07,690 Så dette vil altid returnere oplysninger fra brugerne. 230 00:11:07,690 --> 00:11:08,100 OK. 231 00:11:08,100 --> 00:11:10,030 Vi behøver ikke at have den rigtige brugernavn. 232 00:11:10,030 --> 00:11:14,240 Vi kan bare have noget, som vi vil, og det vil returnere oplysninger 233 00:11:14,240 --> 00:11:15,690 at vi har brug for. 234 00:11:15,690 --> 00:11:17,160 Lad os se på et andet eksempel. 235 00:11:17,160 --> 00:11:22,720 >> Hvis vi har at vælge alt fra brugeren, hvor navn er DROP TABLE brugere - 236 00:11:22,720 --> 00:11:26,420 så hvad gør du tror, ​​det vil gøre, hvis jeg sætter i brugernavnet 237 00:11:26,420 --> 00:11:29,560 som DROP TABLE brugere? 238 00:11:29,560 --> 00:11:30,230 Nogen der har en idé? 239 00:11:30,230 --> 00:11:31,050 Ja. 240 00:11:31,050 --> 00:11:32,470 >> PUBLIKUM: Det kommer til at fortælle det at dumpe alle tabeller. 241 00:11:32,470 --> 00:11:35,460 >> LUCIANO ARANGO: Det kommer til at fortælle os at dumpe alt på hjemmesiden, 242 00:11:35,460 --> 00:11:38,290 alt i databasen. 243 00:11:38,290 --> 00:11:41,910 Og hvad folk bruger det til - så Jeg har tænkt mig at vise jer. 244 00:11:41,910 --> 00:11:45,462 Jeg deaktiveret droppe tabellerne fordi jeg ikke vil have dig 245 00:11:45,462 --> 00:11:48,240 fyrene at droppe mine tabeller. 246 00:11:48,240 --> 00:11:49,850 Lad os tage et kig på dette. 247 00:11:49,850 --> 00:11:54,410 Så dette blot trækker op oplysninger for en bestemt person. 248 00:11:54,410 --> 00:11:57,550 Så hvordan kan vi vide, om dette er påvirket af SQL-injektion. 249 00:11:57,550 --> 00:12:01,545 Vi kommer til at tjekke hurtig hvis vi kan sætte noget - 250 00:12:01,545 --> 00:12:04,990 251 00:12:04,990 --> 00:12:06,080 lad mig kopiere denne kode. 252 00:12:06,080 --> 00:12:08,140 Jeg har tænkt mig at gå over det i en anden. 253 00:12:08,140 --> 00:12:12,210 Jeg har tænkt mig at sætte rod og 1 er lig med 1. 254 00:12:12,210 --> 00:12:15,510 >> Denne ret her, det procenttegn 23 - 255 00:12:15,510 --> 00:12:19,970 hvad det egentlig er, hvis jeg se lige her på - 256 00:12:19,970 --> 00:12:23,820 den måde, HTML tager i tal, hvis du tage et kig på når jeg sætter i et rum 257 00:12:23,820 --> 00:12:28,380 her - hvis jeg var til rummet noget her, skifter det til en procent 2. 258 00:12:28,380 --> 00:12:31,420 Har du fyre ser dette lige her når jeg sætter i et rum? 259 00:12:31,420 --> 00:12:36,710 Den måde det virker er, at du kun kan sende ASCII værdier gennem HTML. 260 00:12:36,710 --> 00:12:40,330 Så det erstatter, for eksempel, et rum med procent 20. 261 00:12:40,330 --> 00:12:41,970 Jeg ved ikke, hvis du fyre har set det før. 262 00:12:41,970 --> 00:12:45,100 >> Den erstatter et hashtag med procent 23. 263 00:12:45,100 --> 00:12:50,840 Vi har brug for et hashtag i slutningen af ​​eller sætningen, så vi kan fortælle 264 00:12:50,840 --> 00:13:00,885 database til at glemme at udkommentere denne sidste semikolon i slutningen. 265 00:13:00,885 --> 00:13:03,060 Vi ønsker, at det ikke tænke over. 266 00:13:03,060 --> 00:13:05,980 Vi skal bare have det til at køre alt at vi har i forvejen, og 267 00:13:05,980 --> 00:13:07,450 kommentere det ud. 268 00:13:07,450 --> 00:13:08,710 Lad os tage et kig på det. 269 00:13:08,710 --> 00:13:14,670 >> Så hvis jeg skulle sætte noget forkert - lad os sige for eksempel, jeg sætte 2 ligeværdige 270 00:13:14,670 --> 00:13:15,690 1, betyder det ikke give mig noget. 271 00:13:15,690 --> 00:13:22,930 Når jeg sætter i 1 er lig med 1, og det gør returnere noget, det fortæller mig, at 272 00:13:22,930 --> 00:13:24,660 dette er sårbar over for en SQL-injektion. 273 00:13:24,660 --> 00:13:29,090 Jeg ved nu, at uanset hvad Jeg sætter efter dette - 274 00:13:29,090 --> 00:13:39,110 og for eksempel slette tabeller eller sådan noget 275 00:13:39,110 --> 00:13:41,190 vil helt sikkert arbejde. 276 00:13:41,190 --> 00:13:44,350 Jeg ved, det er sårbar over for SQL-injektion fordi jeg ved, at 277 00:13:44,350 --> 00:13:49,850 under hætten, er det at lade mig gøre det 1 er lig med 1 ting. 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 >> Og hvis vi ser på disse andre dem, nummer to og nummer tre, er det 281 00:13:56,540 --> 00:13:59,110 kommer til at gøre en lille smule mere kontrollere under 282 00:13:59,110 --> 00:14:03,680 hætte af, hvad det er. 283 00:14:03,680 --> 00:14:07,425 Så enhver mulighed drop noget endnu eller prøvet? 284 00:14:07,425 --> 00:14:08,760 Har du fyre slags få SQL endnu? 285 00:14:08,760 --> 00:14:10,430 Fordi jeg kender jer ikke har set det endnu, så det er lidt 286 00:14:10,430 --> 00:14:11,759 forvirrende for jer. 287 00:14:11,759 --> 00:14:16,160 288 00:14:16,160 --> 00:14:18,480 Lad os tage et kig. 289 00:14:18,480 --> 00:14:21,270 Så hvad er den måde at forhindre SQLI? 290 00:14:21,270 --> 00:14:21,390 OK. 291 00:14:21,390 --> 00:14:23,330 Så det er virkelig vigtigt, fordi du fyre helt sikkert ønsker at undgå 292 00:14:23,330 --> 00:14:24,090 dette i dine hjemmesider. 293 00:14:24,090 --> 00:14:28,040 >> Hvis ikke, er alle dine venner går til gøre det sjovt for dig, når de falder alle 294 00:14:28,040 --> 00:14:29,390 dine tabeller. 295 00:14:29,390 --> 00:14:36,150 Så ideen er, at du reparere SQL på en bestemt måde, mens du matche 296 00:14:36,150 --> 00:14:41,940 hvad brugeren indgange med en bestemt streng. 297 00:14:41,940 --> 00:14:46,120 Så den måde det virker er du forberede databasen. 298 00:14:46,120 --> 00:14:50,830 Du vælger navnet, farven og kalorier fra en database kaldet frugt. 299 00:14:50,830 --> 00:14:53,580 Og så hvor kalorier er mindre end, og vi sætter et spørgsmålstegn der 300 00:14:53,580 --> 00:14:56,530 sige, at vi kommer til at indtaste noget i en anden. 301 00:14:56,530 --> 00:14:58,850 >> Og farve er lig med, og vi stillede et spørgsmål mark siger vi kommer til at 302 00:14:58,850 --> 00:15:00,913 input noget i en anden så godt. 303 00:15:00,913 --> 00:15:02,660 OK? 304 00:15:02,660 --> 00:15:09,920 Og så skal vi udføre det, at sætte i 150 og rød. 305 00:15:09,920 --> 00:15:12,820 Og det vil tjekke for at sikker på, at disse to - 306 00:15:12,820 --> 00:15:15,300 dette array vil kontrollere, at disse to er et helt tal, og 307 00:15:15,300 --> 00:15:16,550 at dette er en streng. 308 00:15:16,550 --> 00:15:18,810 309 00:15:18,810 --> 00:15:20,890 Så går vi, og vi henter alt, vi sætte det i rødt. 310 00:15:20,890 --> 00:15:21,964 Det betyder, at vi henter alle. 311 00:15:21,964 --> 00:15:26,790 Det betyder, at vi faktisk udføre SQL erklæring og sætte det tilbage i rødt. 312 00:15:26,790 --> 00:15:30,530 Her gør vi det samme, men vi gøre det samme for gul. 313 00:15:30,530 --> 00:15:32,490 Og vi hente alle. 314 00:15:32,490 --> 00:15:36,140 >> Og på denne måde forhindrer vi brugeren fra at være i stand til at indtaste noget 315 00:15:36,140 --> 00:15:41,710 det er ikke, hvad vi angivet, en streng eller et helt tal, for eksempel. 316 00:15:41,710 --> 00:15:45,100 317 00:15:45,100 --> 00:15:46,610 Jeg talte tidligere om afhængige af andre. 318 00:15:46,610 --> 00:15:50,010 Når du fyre starter dit projekt, er du absolut vil bruge 319 00:15:50,010 --> 00:15:52,310 bootstrap eller noget lignende. 320 00:15:52,310 --> 00:15:53,490 Har du fyre nogensinde brugt Wordpress? 321 00:15:53,490 --> 00:15:57,170 Sandsynligvis du fyre har brugt Wordpress mest sandsynlige. 322 00:15:57,170 --> 00:16:00,050 Så problemet med at bruge andre folks ting - 323 00:16:00,050 --> 00:16:05,940 Jeg skal bare gå til Google virkelig hurtig Wordpress sårbarhed. 324 00:16:05,940 --> 00:16:07,495 >> Hvis jeg trække dette op lige nu - 325 00:16:07,495 --> 00:16:08,995 Jeg bogstaveligt talt gjorde to sekunders Google. 326 00:16:08,995 --> 00:16:12,300 327 00:16:12,300 --> 00:16:13,800 Vi kan se, at Wordpress - 328 00:16:13,800 --> 00:16:17,450 dette er dateret i september '12. 329 00:16:17,450 --> 00:16:19,120 26 er opdateret. 330 00:16:19,120 --> 00:16:23,620 Standardkonfigurationen for Wordpress før 3.6 ikke forhindrer disse 331 00:16:23,620 --> 00:16:27,110 visse uploads, hvilket kan gøre det lettere for 332 00:16:27,110 --> 00:16:29,790 cross-site scripting angreb. 333 00:16:29,790 --> 00:16:34,530 Så en hurtig historie, når vi arbejdede med - så jeg var i sommer, der arbejder en 334 00:16:34,530 --> 00:16:34,970 praktikken. 335 00:16:34,970 --> 00:16:40,400 Og vi arbejdede med en slags som et stort kreditkortselskab. 336 00:16:40,400 --> 00:16:42,020 >> Og de er afhængige af noget, der hedder - 337 00:16:42,020 --> 00:16:45,740 Jeg ved ikke, hvis du fyre nogensinde har spillet med et produkt kaldet Joomla. 338 00:16:45,740 --> 00:16:51,750 Joomla er et produkt, der anvendes til kontrol - slags ligner 339 00:16:51,750 --> 00:16:54,340 Wordpress, der anvendes til at bygge websites. 340 00:16:54,340 --> 00:16:56,060 Så de havde deres hjemmeside arbejder på Joomla. 341 00:16:56,060 --> 00:16:59,290 Dette er faktisk et kreditkort selskab i Colombia. 342 00:16:59,290 --> 00:17:01,000 Jeg tager dig til deres website hurtigt. 343 00:17:01,000 --> 00:17:04,550 344 00:17:04,550 --> 00:17:05,400 >> Så de brugte Joomla. 345 00:17:05,400 --> 00:17:08,630 Og de havde ikke opdateret Joomla til den nyeste tilføjelse. 346 00:17:08,630 --> 00:17:12,160 Og så når vi var at tage et kig på deres kode, kunne vi faktisk 347 00:17:12,160 --> 00:17:18,430 gå inde i deres kode og stjæle alle de kreditkortoplysninger, at de havde, 348 00:17:18,430 --> 00:17:21,670 alle de numre kreditkort, navne, adresser. 349 00:17:21,670 --> 00:17:22,740 Og det var netop - 350 00:17:22,740 --> 00:17:23,569 og deres kode var helt fint. 351 00:17:23,569 --> 00:17:24,710 De havde stor kode. 352 00:17:24,710 --> 00:17:25,389 Det var alt sikkerhed. 353 00:17:25,389 --> 00:17:26,520 De tjekkede alle databaser. 354 00:17:26,520 --> 00:17:29,020 De sørgede for cross-site scripting var fint. 355 00:17:29,020 --> 00:17:34,390 >> Men de brugte noget, der ikke var opdateret, det var ikke sikker. 356 00:17:34,390 --> 00:17:36,940 Og så førte dem til - så du fyre er helt sikkert vil bruge andre 357 00:17:36,940 --> 00:17:40,650 folks kode, andre folks rammer at opbygge din hjemmeside. 358 00:17:40,650 --> 00:17:43,860 Sørg for, at de er sikker, fordi nogle gange er det ikke dig, den ene, der 359 00:17:43,860 --> 00:17:44,480 laver en fejl. 360 00:17:44,480 --> 00:17:47,440 Men nogen laver en fejl, og så du falder ned på grund af det. 361 00:17:47,440 --> 00:17:51,190 362 00:17:51,190 --> 00:17:53,885 >> Adgangskoder og PII. 363 00:17:53,885 --> 00:17:56,820 Så adgangskoder. 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 Lad os tage et kig på passwords virkelig hurtig. 367 00:18:04,230 --> 00:18:04,590 OK. 368 00:18:04,590 --> 00:18:06,520 Fortæl mig, at alle bruger sikker - 369 00:18:06,520 --> 00:18:09,030 Jeg håber alle her bruger sikre passwords. 370 00:18:09,030 --> 00:18:12,890 Jeg er bare at lade det i som en antagelse. 371 00:18:12,890 --> 00:18:14,850 Så du fyre er helt sikkert vil opbevare adgangskoder til dine hjemmesider. 372 00:18:14,850 --> 00:18:17,440 Du kommer til at gøre noget lignende et login eller noget lignende. 373 00:18:17,440 --> 00:18:19,610 Hvad der er vigtigt er at ikke opbevares adgangskoder i almindelig tekst. 374 00:18:19,610 --> 00:18:20,860 Dette er yderst vigtigt. 375 00:18:20,860 --> 00:18:23,960 Du behøver ikke ønsker at gemme en adgangskode som almindelig tekst. 376 00:18:23,960 --> 00:18:27,370 >> Og du absolut ikke virkelig ønsker at gemme det i en ensrettet hash. 377 00:18:27,370 --> 00:18:32,440 Så hvad en envejs hash er, at når du generere et ord, når du lægger denne 378 00:18:32,440 --> 00:18:36,200 ord i en hash-funktion, vil det generere tilbage en slags kryptisk 379 00:18:36,200 --> 00:18:39,390 besked eller kryptiske sæt nøgler. 380 00:18:39,390 --> 00:18:40,640 Jeg vil vise dig et eksempel. 381 00:18:40,640 --> 00:18:44,620 382 00:18:44,620 --> 00:18:50,250 Jeg har tænkt mig at hash de ord password1. 383 00:18:50,250 --> 00:18:55,280 Så MD5 Hash vil vende mig en slags underlige oplysninger. 384 00:18:55,280 --> 00:18:59,140 >> Problemet er, at folk derude der kan lide at gå ind i hjemmesider har 385 00:18:59,140 --> 00:19:02,750 allerede regnet ud, sortere af alle MD5 hashes. 386 00:19:02,750 --> 00:19:06,030 Hvad de gjorde er, at de satte sig på deres computere, og de hashed hver 387 00:19:06,030 --> 00:19:09,660 enkelt mulig ordet derude indtil de fik en slags, hvad det er. 388 00:19:09,660 --> 00:19:11,420 Hvis jeg skulle se dette op - 389 00:19:11,420 --> 00:19:12,420 Jeg bare greb denne hash. 390 00:19:12,420 --> 00:19:14,120 Hvis jeg får denne hash fra - 391 00:19:14,120 --> 00:19:17,470 hvis jeg går ind i en hjemmeside, og jeg finder denne hash, fordi jeg kommer til 392 00:19:17,470 --> 00:19:24,100 databaser og jeg slå det op, nogen allerede regnet det ud for mig. 393 00:19:24,100 --> 00:19:28,600 394 00:19:28,600 --> 00:19:29,100 >> Ja. 395 00:19:29,100 --> 00:19:35,030 Så folk satte sig ned, og hvad md5 hash, du lægger i, er de vil 396 00:19:35,030 --> 00:19:37,760 vende tilbage til dig noget der er et ord. 397 00:19:37,760 --> 00:19:39,800 Hvis jeg hash et andet ord, som - 398 00:19:39,800 --> 00:19:42,410 Jeg ved det ikke - 399 00:19:42,410 --> 00:19:43,490 trees2. 400 00:19:43,490 --> 00:19:46,050 Jeg ønsker ikke at blive skuffet af min Google-søgninger. 401 00:19:46,050 --> 00:19:49,820 402 00:19:49,820 --> 00:19:52,780 Der er det, trees2. 403 00:19:52,780 --> 00:19:55,930 Så en masse hjemmesider stadig bruge md5 hash. 404 00:19:55,930 --> 00:19:57,730 De siger, åh, det er sikkert. 405 00:19:57,730 --> 00:19:58,570 Vi er ikke lagring i almindelig tekst. 406 00:19:58,570 --> 00:19:59,740 Vi har denne md5 hash. 407 00:19:59,740 --> 00:20:01,880 Og alt hvad jeg skal gøre er bare Google nummeret. 408 00:20:01,880 --> 00:20:03,940 >> Jeg behøver ikke engang at beregne selv. 409 00:20:03,940 --> 00:20:06,790 Jeg kan bare google det, og nogen allerede gjorde det for mig. 410 00:20:06,790 --> 00:20:08,010 Her er en flok af dem. 411 00:20:08,010 --> 00:20:09,260 Her er en flok af passwords. 412 00:20:09,260 --> 00:20:13,890 413 00:20:13,890 --> 00:20:18,680 Så absolut ikke bruge md5 hash, fordi alt hvad du skal 414 00:20:18,680 --> 00:20:19,140 gøre, er at Google det. 415 00:20:19,140 --> 00:20:20,390 Så hvad gør du ønsker at bruge i stedet? 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 Noget, der hedder saltning. 419 00:20:31,260 --> 00:20:32,460 Så hvad saltning er - 420 00:20:32,460 --> 00:20:36,280 tror du fyre huske, da vi var taler om tilfældige i - 421 00:20:36,280 --> 00:20:37,920 Jeg er ikke sikker på, hvad PSET det var - 422 00:20:37,920 --> 00:20:41,140 blev det PSET der eller fire? 423 00:20:41,140 --> 00:20:45,150 >> Vi talte om at finde nålen i høstakken. 424 00:20:45,150 --> 00:20:48,480 Og i PSET, siges det, at man kunne faktisk regne ud, hvad tilfældig 425 00:20:48,480 --> 00:20:51,840 genererer fordi nogen allerede har løb tilfældige en million gange og kun 426 00:20:51,840 --> 00:20:53,230 slags dannet hvad de genererer. 427 00:20:53,230 --> 00:20:55,840 Hvad du ønsker at gøre, er sat i en indgang. 428 00:20:55,840 --> 00:20:57,130 Så det er, hvad saltning slags er. 429 00:20:57,130 --> 00:21:00,900 De har allerede regnet ud, hvad saltning vender tilbage for hvert arbejde. 430 00:21:00,900 --> 00:21:04,750 >> Så hvad saltning gør, er du sætter en salt. 431 00:21:04,750 --> 00:21:06,160 Du lægger i et bestemt ord. 432 00:21:06,160 --> 00:21:09,720 Og det vil hash ordet afhængigt på hvad du putter i her. 433 00:21:09,720 --> 00:21:13,570 Så hvis jeg Hash Password ét med dette sætning, går det at hash 434 00:21:13,570 --> 00:21:17,180 anderledes, hvis jeg hash password1 med en anden sætning. 435 00:21:17,180 --> 00:21:21,670 Det giver den slags sted at starte for hashing at begynde. 436 00:21:21,670 --> 00:21:25,970 Så det er meget sværere at beregne, men du stadig kan beregne det, især 437 00:21:25,970 --> 00:21:26,830 hvis du bruger en dårlig salt. 438 00:21:26,830 --> 00:21:29,650 >> Folk har allerede også regnet ud fælles salte og regnet ud 439 00:21:29,650 --> 00:21:31,500 hvad det er. 440 00:21:31,500 --> 00:21:34,980 Tilfældige salte er meget bedre, men den bedste måde er at bruge 441 00:21:34,980 --> 00:21:38,160 noget, der hedder krypt. 442 00:21:38,160 --> 00:21:40,480 Og hvad krypt giver dig mulighed for at har - så er disse funktioner 443 00:21:40,480 --> 00:21:41,820 allerede bygget for dig. 444 00:21:41,820 --> 00:21:44,910 Mange mennesker glemmer det, eller de glemmer at bruge den. 445 00:21:44,910 --> 00:21:54,520 Men hvis jeg ser op krypt PHP, crypt allerede returnerer en hash streng for mig. 446 00:21:54,520 --> 00:21:58,790 Og det faktisk salte, det mange gange og hashes det mange gange. 447 00:21:58,790 --> 00:22:00,070 >> Så vi behøver ikke at gøre dette. 448 00:22:00,070 --> 00:22:04,790 Så alt du skal gøre er at sende det i krypten. 449 00:22:04,790 --> 00:22:08,170 Og det vil skabe en stor hash uden du skulle bekymre sig om salt 450 00:22:08,170 --> 00:22:08,990 eller noget. 451 00:22:08,990 --> 00:22:12,000 Fordi hvis du skulle salt det, du har at huske, hvad salt du har brugt 452 00:22:12,000 --> 00:22:13,800 fordi hvis ikke, kan du ikke få din adgangskode tilbage uden 453 00:22:13,800 --> 00:22:15,760 salt, som du brugte. 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 >> Og også personlig identificerende information. 457 00:22:23,150 --> 00:22:26,730 Så social sikkerhed, kreditkort - det er temmelig indlysende. 458 00:22:26,730 --> 00:22:31,880 Men nogle gange folk glemmer den måde, det værker er, hvor meget information gør du 459 00:22:31,880 --> 00:22:35,690 faktisk nødt til at finde nogle én person? 460 00:22:35,690 --> 00:22:37,740 Nogen gjorde en undersøgelse om dette en vej tilbage. 461 00:22:37,740 --> 00:22:40,870 Og det var ligesom, hvis du har fulde navn, kan du ikke finde 462 00:22:40,870 --> 00:22:41,610 nogen, der nemt. 463 00:22:41,610 --> 00:22:43,900 Men hvad nu hvis du har et fuldt navn og deres fødselsdato? 464 00:22:43,900 --> 00:22:47,770 Er det nok til at identificere nogen specielt? 465 00:22:47,770 --> 00:22:52,760 >> Hvad hvis du har deres navn og adresse, som de lever på? 466 00:22:52,760 --> 00:22:55,110 Er det nok til at finde nogen? 467 00:22:55,110 --> 00:23:02,490 Og det er, når de sætter spørgsmålstegn ved, hvad der er personlige identificerbare oplysninger, og 468 00:23:02,490 --> 00:23:05,360 hvad skal du bekymre dig om ikke at give væk? 469 00:23:05,360 --> 00:23:08,770 Hvis du giver væk personlig identificerbare oplysninger om, at nogen giver dig, 470 00:23:08,770 --> 00:23:11,420 du potentielt kunne blive sagsøgt. 471 00:23:11,420 --> 00:23:12,610 Og vi absolut ikke ønsker det. 472 00:23:12,610 --> 00:23:14,955 >> Så når du lægger din hjemmeside ud, og du har en virkelig cool 473 00:23:14,955 --> 00:23:17,230 design, forhåbentlig du har lavet en awesome afgangsprojekt. 474 00:23:17,230 --> 00:23:18,370 Enhver du slags ønsker at sætte det derude. 475 00:23:18,370 --> 00:23:21,420 Du ønsker at sikre, at uanset hvad du tager fra brugeren, hvis det er 476 00:23:21,420 --> 00:23:25,310 personlige identificerbare oplysninger, du ønsker at sikre, at du bliver virkelig 477 00:23:25,310 --> 00:23:26,560 forsigtig 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 tillader ubuden gæst til få adgang til din faktiske kommandolinje 482 00:23:37,590 --> 00:23:39,660 i din server. 483 00:23:39,660 --> 00:23:44,060 Og så er han i stand til at køre kode at du ikke kan kontrollere. 484 00:23:44,060 --> 00:23:49,560 Lad os tage et eksempel på dette perlerækken lige her. 485 00:23:49,560 --> 00:23:55,570 Hvis vi går ind på hjemmesiden igen, jeg er gå i kodeindlægning. 486 00:23:55,570 --> 00:23:58,910 Så hvad det gør, er - 487 00:23:58,910 --> 00:24:00,420 det er også, hvad vi var kigge på før. 488 00:24:00,420 --> 00:24:11,200 Vi lader brugeren sætte i uanset han vil, og det vil udskrive 489 00:24:11,200 --> 00:24:12,220 hvad du vil. 490 00:24:12,220 --> 00:24:13,890 >> Så jeg har tænkt mig at sætte et opkald. 491 00:24:13,890 --> 00:24:15,540 Hvad dette gør, er - 492 00:24:15,540 --> 00:24:16,940 vil det begynde ved at sammenkæde. 493 00:24:16,940 --> 00:24:19,520 Så det vil lade mig køre, hvad befale personens kørende 494 00:24:19,520 --> 00:24:21,500 før og min kommando. 495 00:24:21,500 --> 00:24:23,980 Og jeg kører et system kommando. 496 00:24:23,980 --> 00:24:27,310 Og disse sidste strenge er - husk hvad jeg talte til jer om, 497 00:24:27,310 --> 00:24:31,725 mens du er nødt til at indkode det i en URL-metode. 498 00:24:31,725 --> 00:24:35,010 499 00:24:35,010 --> 00:24:36,992 Hvis jeg køre dette nu - 500 00:24:36,992 --> 00:24:39,150 Jeg vil vise dig herovre - 501 00:24:39,150 --> 00:24:41,100 du vil se, at jeg endte op at køre en kommando. 502 00:24:41,100 --> 00:24:45,700 503 00:24:45,700 --> 00:24:49,320 >> Dette er faktisk den egentlige server at min hjemmeside kører på. 504 00:24:49,320 --> 00:24:55,840 505 00:24:55,840 --> 00:24:58,510 Så vi vil ikke have det, fordi jeg kan køre - 506 00:24:58,510 --> 00:25:00,320 denne server er ikke min. 507 00:25:00,320 --> 00:25:04,030 Så jeg ønsker ikke at rod op hans søster, Marcus server. 508 00:25:04,030 --> 00:25:07,470 Men du kan køre flere kommandoer der er farlige. 509 00:25:07,470 --> 00:25:11,885 Og potentielt, kan du slette filer, fjerne mapper. 510 00:25:11,885 --> 00:25:14,390 511 00:25:14,390 --> 00:25:17,970 Jeg kan fjerne en bestemt mappe, hvis Jeg ville, men jeg ønsker ikke 512 00:25:17,970 --> 00:25:19,530 at gøre det til Marcus. 513 00:25:19,530 --> 00:25:20,420 Han er en fin fyr. 514 00:25:20,420 --> 00:25:21,470 Han lod mig låne hans server. 515 00:25:21,470 --> 00:25:24,620 Så jeg har tænkt mig at lade ham off på den gode. 516 00:25:24,620 --> 00:25:32,280 >> Så det, vi ikke ønsker at bruge - det gør vi ikke ønsker at bruge eval eller systemet. 517 00:25:32,280 --> 00:25:34,755 Eval eller system gør det muligt for os at gøre disse systemet opkald. 518 00:25:34,755 --> 00:25:37,410 519 00:25:37,410 --> 00:25:38,410 Eval midler evaluere. 520 00:25:38,410 --> 00:25:40,790 Systemet betyder, hvad jeg løb. 521 00:25:40,790 --> 00:25:42,490 Det køres noget i systemet. 522 00:25:42,490 --> 00:25:46,730 Men vi kan forbyde disse ting i PHP, så vi ikke bruger dem. 523 00:25:46,730 --> 00:25:47,400 Og fil upload. 524 00:25:47,400 --> 00:25:49,180 Jeg skulle til at gøre en awesome ting med fil upload. 525 00:25:49,180 --> 00:25:52,740 Men som jeg sagde til jer, min fil upload ting fungerer ikke. 526 00:25:52,740 --> 00:25:54,590 Hvis jeg skulle uploade en fil lige nu - 527 00:25:54,590 --> 00:25:57,120 528 00:25:57,120 --> 00:26:00,830 hvis jeg skulle uploade en fil, og det er et billede - 529 00:26:00,830 --> 00:26:03,180 du har en upload ting det er et billede. 530 00:26:03,180 --> 00:26:03,660 Det er fint. 531 00:26:03,660 --> 00:26:04,280 Sker der intet. 532 00:26:04,280 --> 00:26:10,840 >> Men hvis du har en upload-fil, for eksempel, og brugeren rent faktisk uploads 533 00:26:10,840 --> 00:26:19,220 en PHP-fil eller en exe-fil eller noget lignende, så kunne du potentielt 534 00:26:19,220 --> 00:26:19,740 har et problem. 535 00:26:19,740 --> 00:26:21,390 Dette arbejdede før. 536 00:26:21,390 --> 00:26:25,202 Desværre for mig, det er ikke fungerer længere. 537 00:26:25,202 --> 00:26:30,230 Hvis jeg for eksempel uploade denne fil, er jeg ikke at få tilladelse til at uploade 538 00:26:30,230 --> 00:26:33,400 filen på grund serveren ikke er mine. 539 00:26:33,400 --> 00:26:38,670 Så fyr er virkelig smart. 540 00:26:38,670 --> 00:26:39,610 >> Så vi ønsker ikke at - 541 00:26:39,610 --> 00:26:40,130 Jeg har tænkt mig at vise jer - 542 00:26:40,130 --> 00:26:41,840 OK, det er nogle virkelig cool værktøjer. 543 00:26:41,840 --> 00:26:45,100 Så disse - 544 00:26:45,100 --> 00:26:47,715 gå ind i - hvis du fyre har Firefox - forhåbentlig du gør. 545 00:26:47,715 --> 00:26:54,260 Der er to tilføjelser kaldet SQL Inject Mig og Cross-Site Script Me. 546 00:26:54,260 --> 00:26:56,870 De åbner op så lidt side bjælker på siderne. 547 00:26:56,870 --> 00:27:01,480 Og hvis jeg skulle gå til CS60 for eksempel - 548 00:27:01,480 --> 00:27:04,210 så hvad det gør, er det ser for alle de formularer, - 549 00:27:04,210 --> 00:27:07,220 550 00:27:07,220 --> 00:27:08,760 forhåbentlig jeg ikke få i problemer for dette. 551 00:27:08,760 --> 00:27:09,190 >> Men OK. 552 00:27:09,190 --> 00:27:12,600 Her er stift system. 553 00:27:12,600 --> 00:27:18,946 Så når jeg begynder at lede efter huller i systemet, den første ting jeg gør, er 554 00:27:18,946 --> 00:27:21,820 åbne op for denne smukke lille værktøj på side. 555 00:27:21,820 --> 00:27:24,160 Og jeg har tænkt mig at teste formularer med auto-angreb. 556 00:27:24,160 --> 00:27:28,510 Og så hvad det gør, er det langsomt åbne op for en flok af browsere. 557 00:27:28,510 --> 00:27:29,930 Her er en flok af browsere. 558 00:27:29,930 --> 00:27:33,320 Og det forsøger hver enkelt kombination af cross-site scripting 559 00:27:33,320 --> 00:27:37,380 at der muligvis vil sige, hvis du ser på siden. 560 00:27:37,380 --> 00:27:42,080 >> Og det vil give mig et resultat slags hvad svaret er. 561 00:27:42,080 --> 00:27:42,860 Alle passere. 562 00:27:42,860 --> 00:27:43,910 Det er klart, at de alle passere. 563 00:27:43,910 --> 00:27:46,190 Jeg mener, de er rigtig smart folk deroppe. 564 00:27:46,190 --> 00:27:48,010 Men hvis jeg skulle køre - 565 00:27:48,010 --> 00:27:52,050 Jeg har haft gange før, når jeg kører denne de studerendes afgangsprojekter. 566 00:27:52,050 --> 00:27:56,080 Jeg blot køre SQL Sprøjt Mig med alle de forskellige angreb. 567 00:27:56,080 --> 00:28:00,080 Og det forsøger at SQL injicere denne pin-server. 568 00:28:00,080 --> 00:28:03,590 Så hvis vi rulle ned, for eksempel, det siger - 569 00:28:03,590 --> 00:28:04,960 dette er godt, hvis det vender tilbage. 570 00:28:04,960 --> 00:28:08,250 >> Så det testede nogle bestemte værdier. 571 00:28:08,250 --> 00:28:11,170 Og serveren returnerede en kode, der var negativ. 572 00:28:11,170 --> 00:28:11,780 Fjern midlertidigt. 573 00:28:11,780 --> 00:28:13,030 Det er godt. 574 00:28:13,030 --> 00:28:17,050 575 00:28:17,050 --> 00:28:20,750 Det forsøger alle disse tests. 576 00:28:20,750 --> 00:28:21,790 Så du kan bare køre - 577 00:28:21,790 --> 00:28:27,860 Jeg ville ønske jeg kunne finde en hjemmeside reel hurtigt, at ville lade mig - 578 00:28:27,860 --> 00:28:29,110 det CS50 butikken måske. 579 00:28:29,110 --> 00:28:43,890 580 00:28:43,890 --> 00:28:45,711 >> Wow, det kommer til at tage alt for lang tid. 581 00:28:45,711 --> 00:28:53,090 582 00:28:53,090 --> 00:28:55,130 Jeg vil lade den første test ikke afslutte højre. 583 00:28:55,130 --> 00:28:57,330 Så det er højlydt. 584 00:28:57,330 --> 00:28:58,470 Så disse tre ting. 585 00:28:58,470 --> 00:29:00,430 Disse værktøjer er gratis. 586 00:29:00,430 --> 00:29:03,960 Du kan downloade dem og køre dem på din hjemmeside, og det vil fortælle dig, hvis 587 00:29:03,960 --> 00:29:06,650 du har cross-site scripting, hvis du har SQL, hvis du har 588 00:29:06,650 --> 00:29:07,900 noget lignende. 589 00:29:07,900 --> 00:29:12,230 590 00:29:12,230 --> 00:29:14,500 Jeg slags rode op. 591 00:29:14,500 --> 00:29:15,550 >> Hvad der er vigtigt - 592 00:29:15,550 --> 00:29:17,900 OK, så aldrig har tillid til brugeren. 593 00:29:17,900 --> 00:29:21,920 Hvad brugeren input til dig, så du sørge for at rense det, du rense det, 594 00:29:21,920 --> 00:29:25,300 du kontrollere, om de rigtige ting, at det er at give dig, hvad du 595 00:29:25,300 --> 00:29:28,240 vil have ham til at give dig. 596 00:29:28,240 --> 00:29:32,460 Altid være opdateret på, hvad rammer at du rent faktisk bruger. 597 00:29:32,460 --> 00:29:34,630 Hvis du bruger noget som bootstrap - 598 00:29:34,630 --> 00:29:36,340 Jeg ved, du fyre vil bruge bootstrap fordi han kommer til at gå 599 00:29:36,340 --> 00:29:38,140 i denne snart i klassen - 600 00:29:38,140 --> 00:29:43,120 og Wordpress eller noget lignende, normalt dette kunne blive hacket. 601 00:29:43,120 --> 00:29:44,770 >> Og så skal du ikke engang kender. 602 00:29:44,770 --> 00:29:45,800 Du er bare at køre din hjemmeside. 603 00:29:45,800 --> 00:29:47,360 Og det er helt sikkert. 604 00:29:47,360 --> 00:29:51,730 Og du går ned. 605 00:29:51,730 --> 00:29:54,000 Så jeg fisker virkelig tidligt. 606 00:29:54,000 --> 00:29:55,770 Men jeg vil gerne takke Pentest Labs. 607 00:29:55,770 --> 00:29:58,140 Jeg har tænkt mig at vise jer noget kaldet Pentest Labs. 608 00:29:58,140 --> 00:30:05,000 Hvis du fyre er virkelig interesseret i hvad sikkerhed egentlig er, der er en 609 00:30:05,000 --> 00:30:07,300 hjemmesiden hedder Pentest Labs hvis du fyre gå til det lige nu. 610 00:30:07,300 --> 00:30:10,730 Åh, ja, det er ikke det. 611 00:30:10,730 --> 00:30:12,030 Jeg bare at køre det på denne måde. 612 00:30:12,030 --> 00:30:14,400 Google fortæller mig svaret. 613 00:30:14,400 --> 00:30:16,590 >> OK. 614 00:30:16,590 --> 00:30:19,030 Og det lærer at bruge dig - så det siger, lære web penetration 615 00:30:19,030 --> 00:30:21,060 teste den rigtige måde. 616 00:30:21,060 --> 00:30:23,650 Den lærer dig - 617 00:30:23,650 --> 00:30:25,150 Forhåbentlig er du en etisk person. 618 00:30:25,150 --> 00:30:29,200 Men det lærer dig, hvordan du kan se på hvordan du kan få indenfor hjemmesider. 619 00:30:29,200 --> 00:30:31,130 Og hvis du lærer, hvordan du kan få inde hjemmesider, kan du lære at 620 00:30:31,130 --> 00:30:34,960 beskytte dig selv fra at få inde hjemmesider. 621 00:30:34,960 --> 00:30:39,100 Lad mig zoome ind, fordi du måske fyre ikke ser på denne ret. 622 00:30:39,100 --> 00:30:46,350 >> Fra SQL-injektion til shell, så slags, hvordan jeg kan få fra SQL 623 00:30:46,350 --> 00:30:48,530 injektion til shell. 624 00:30:48,530 --> 00:30:53,890 Og du henter denne virtuelle maskine. 625 00:30:53,890 --> 00:30:55,690 Og den virtuelle maskine allerede kommer med det websted, du er 626 00:30:55,690 --> 00:30:56,780 kommer til at prøve det på. 627 00:30:56,780 --> 00:30:58,030 Du henter denne PDF. 628 00:30:58,030 --> 00:31:03,610 629 00:31:03,610 --> 00:31:08,370 Og det vil vise dig linje for linje, hvad du nødt til at gøre, hvad du tjekke. 630 00:31:08,370 --> 00:31:14,560 Dette er, hvad en hacker faktisk gør for at komme ind en hjemmeside. 631 00:31:14,560 --> 00:31:15,750 >> Og nogle af disse ting er kompliceret. 632 00:31:15,750 --> 00:31:17,520 Jeg ville ønske, jeg kunne gå over mere ting med jer. 633 00:31:17,520 --> 00:31:21,090 Men jeg bange for, at du fyre har ikke rigtig - 634 00:31:21,090 --> 00:31:23,090 dette er hvad jeg gik over med gutter, web tests 635 00:31:23,090 --> 00:31:26,830 til penetration test. 636 00:31:26,830 --> 00:31:33,540 Må ikke rigtig ved, hvad SQL er og hvad - 637 00:31:33,540 --> 00:31:35,960 Carl Jacksons seminar er awesome samt. 638 00:31:35,960 --> 00:31:37,360 Du fyre kender ikke sortere af hvad det er. 639 00:31:37,360 --> 00:31:39,450 Men hvis du går til denne hjemmeside, og du hente disse tutorials og disse 640 00:31:39,450 --> 00:31:43,290 PDF-filer, kan du tage et kig på slags hvad området sikkerhed virkelig 641 00:31:43,290 --> 00:31:46,940 i penetration test, se hvordan du kan få inde hjemmesider og beskytte 642 00:31:46,940 --> 00:31:48,020 dig selv fra det. 643 00:31:48,020 --> 00:31:56,360 >> Så hvis jeg laver en super hurtigt overblik Det vil være at forhindre cross-site scripting. 644 00:31:56,360 --> 00:32:00,160 Du ønsker at bruge htmlspecialchars hver gang brugeren indgange noget. 645 00:32:00,160 --> 00:32:01,580 Forhindre SQL-injektion. 646 00:32:01,580 --> 00:32:04,510 Hvis du gør det, du allerede bedre stillet end Harvard var 647 00:32:04,510 --> 00:32:06,530 da de blev overtrådt. 648 00:32:06,530 --> 00:32:10,510 Og sørg for dine adgangskoder ikke er i almindelig tekst. 649 00:32:10,510 --> 00:32:16,220 Sørg for at du ikke kun én måde hash dem, men at du bruger krypt, PHP 650 00:32:16,220 --> 00:32:18,670 funktion, som jeg viste jer. 651 00:32:18,670 --> 00:32:20,060 På den måde, skal du være god. 652 00:32:20,060 --> 00:32:25,830 >> Også, hvis dine venner lader dig køre SQL Sprøjt mig på deres hjemmesider. 653 00:32:25,830 --> 00:32:28,140 Kør cross-site scripting på deres hjemmesider. 654 00:32:28,140 --> 00:32:33,720 Og du vil se en masse af disse hjemmesider har et væld af sårbarheder. 655 00:32:33,720 --> 00:32:40,400 Det er utroligt, hvor meget folk glemmer at rense deres databaser eller gøre 656 00:32:40,400 --> 00:32:46,340 sikker på, hvad personens indlæser er ikke script kode. 657 00:32:46,340 --> 00:32:47,200 OK. 658 00:32:47,200 --> 00:32:49,182 Jeg slags endte virkelig tidligt. 659 00:32:49,182 --> 00:32:56,510 Men hvis nogen har spørgsmål om noget, kan du skyde mig et spørgsmål. 660 00:32:56,510 --> 00:32:56,630 Ja. 661 00:32:56,630 --> 00:32:56,970 Go, go. 662 00:32:56,970 --> 00:32:59,846 >> PUBLIKUM: Jeg vil bare spørge, kan du forklare hvordan filen 663 00:32:59,846 --> 00:33:03,160 uploade nøjagtig værker. 664 00:33:03,160 --> 00:33:03,480 >> LUCIANO ARANGO: Ja. 665 00:33:03,480 --> 00:33:06,350 Så lad mig vise dig filen uploade virkelig hurtig. 666 00:33:06,350 --> 00:33:11,300 Så fil upload - 667 00:33:11,300 --> 00:33:14,500 problemet wit fil upload lige nu er, at - 668 00:33:14,500 --> 00:33:18,541 Jeg har tænkt mig at åbne kode, så du fyre se koden bag kulisserne. 669 00:33:18,541 --> 00:33:22,390 670 00:33:22,390 --> 00:33:24,305 Og det er at uploade. 671 00:33:24,305 --> 00:33:28,030 672 00:33:28,030 --> 00:33:31,560 Her er en kode til filoverførsel. 673 00:33:31,560 --> 00:33:33,980 >> Vi forsøger at gå ind i dette bibliotek herovre. 674 00:33:33,980 --> 00:33:37,380 675 00:33:37,380 --> 00:33:44,880 Og vi prøver at, når vi input fil, isset fil - så når der er en 676 00:33:44,880 --> 00:33:50,900 fil i FILES, at billedet, så vi forsøger at flytte det her. 677 00:33:50,900 --> 00:33:51,910 Vi Grib fil herovre. 678 00:33:51,910 --> 00:33:58,350 Metoden er POST, type, billede, fil. 679 00:33:58,350 --> 00:33:59,630 Og vi sender denne fil. 680 00:33:59,630 --> 00:34:03,910 Og så når vi får det, så når filen har et billede, vi forsøger at sende det 681 00:34:03,910 --> 00:34:05,060 til denne mappe. 682 00:34:05,060 --> 00:34:09,814 >> Problemet er, at hjemmesiden ikke er at lade mig gå til denne mappe, 683 00:34:09,814 --> 00:34:12,239 fordi det ikke vil have mig til at gå tilbage. 684 00:34:12,239 --> 00:34:13,489 Det behøver ikke have mig til at gå - 685 00:34:13,489 --> 00:34:15,620 686 00:34:15,620 --> 00:34:17,070 Jeg nødt til at gå - så her er upload. 687 00:34:17,070 --> 00:34:17,639 Her er billeder. 688 00:34:17,639 --> 00:34:21,780 Jeg er nødt til at gå hele vejen tilbage til begynder og sætte det i der og derefter 689 00:34:21,780 --> 00:34:23,820 gå og sætte det ind i mappen. 690 00:34:23,820 --> 00:34:30,000 Så hvis jeg kørte en terminal vindue, og jeg ønskede at flytte en fil - 691 00:34:30,000 --> 00:34:30,409 [Uhørligt] 692 00:34:30,409 --> 00:34:32,159 kan se det. 693 00:34:32,159 --> 00:34:37,940 Hvis jeg ønskede at flytte en fil, jeg har at sætte filnavnet og derefter 694 00:34:37,940 --> 00:34:40,860 fuldstændige sti jeg ønsker at sende det til. 695 00:34:40,860 --> 00:34:45,110 >> Og så serveren er ikke at lade mig gå tilbage. 696 00:34:45,110 --> 00:34:46,929 Og så er det ikke at lade mig komme til denne fil. 697 00:34:46,929 --> 00:34:47,670 Men normalt - 698 00:34:47,670 --> 00:34:49,360 så der er en kode til uploade en fil. 699 00:34:49,360 --> 00:34:52,260 Så normalt hvad der vil ske, er, at person, er ikke at kontrollere, om min fil 700 00:34:52,260 --> 00:34:57,920 slutter med. jpeg, så jeg ønsker at kontrollere. 701 00:34:57,920 --> 00:35:00,054 Lad mig åbne et eksempel for hurtigt. 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 Denne person ret - 705 00:35:09,230 --> 00:35:11,980 så eksempel to er at kontrollere hvis preg_match - 706 00:35:11,980 --> 00:35:14,180 her er det herovre - 707 00:35:14,180 --> 00:35:19,660 at sørge for, der ender med PHP, hvilket er godt. 708 00:35:19,660 --> 00:35:20,580 Det er godt. 709 00:35:20,580 --> 00:35:22,820 Men der er en rigtig stor Problemet med dette. 710 00:35:22,820 --> 00:35:24,600 Det er godt. 711 00:35:24,600 --> 00:35:44,190 Men hvis jeg skulle sætte en fil kaldet myfavoritepicture.php.jpeg, jeg kunne 712 00:35:44,190 --> 00:35:50,060 stadig potentielt slippe af jpeg og køre it.k at PHP er farligt. 713 00:35:50,060 --> 00:35:53,850 Du ønsker ikke den person at være i stand at køre kode på din hjemmeside. 714 00:35:53,850 --> 00:35:55,750 >> Men da. Jpeg lader det passere. 715 00:35:55,750 --> 00:36:00,720 Ideen er, hvad du virkelig ønsker at gøre ikke tage filer, A., men OK, hvad 716 00:36:00,720 --> 00:36:07,500 du virkelig ønsker at gøre, er at sørge for, at du læser over hele verden. 717 00:36:07,500 --> 00:36:08,720 Og der er intet. PHP i det. 718 00:36:08,720 --> 00:36:10,500 Der er ingen. Php i Hele filnavn. 719 00:36:10,500 --> 00:36:12,780 >> PUBLIKUM: Men du kunne sætte. jpeg på enden. 720 00:36:12,780 --> 00:36:15,830 Serverne stadig køre koden. 721 00:36:15,830 --> 00:36:16,870 >> LUCIANO ARANGO: Nej, det vil ikke køres i begyndelsen. 722 00:36:16,870 --> 00:36:22,310 Du er nødt til at gå tilbage og prøve for at se, hvis du kan - 723 00:36:22,310 --> 00:36:24,210 >> PUBLIKUM: Så vi er nødt til - 724 00:36:24,210 --> 00:36:26,020 OK, bare et andet sæt, der involverer - 725 00:36:26,020 --> 00:36:26,936 >> LUCIANO ARANGO: Ja. 726 00:36:26,936 --> 00:36:29,230 >> PUBLIKUM: 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 Andre spørgsmål? 730 00:36:32,865 --> 00:36:33,180 OK. 731 00:36:33,180 --> 00:36:37,350 Jeg har tænkt mig at forlade dette op og sortere af prøve at se, hvis du fyre kan - 732 00:36:37,350 --> 00:36:40,490 de andre er en lille smule mere kompliceret, fordi de kræver meget 733 00:36:40,490 --> 00:36:44,050 mere viden om SQL end blot begyndende kendskab til web SQL er og 734 00:36:44,050 --> 00:36:47,010 hvad JavaScript er. 735 00:36:47,010 --> 00:36:49,730 Men jeg har tænkt mig at forsøge at holde dette op, og forhåbentlig jer vil lære 736 00:36:49,730 --> 00:36:53,230 om dette og forsøge at tage et kig på hvad du kan gøre, og hvor mange eksempler 737 00:36:53,230 --> 00:36:54,420 du kan komme igennem. 738 00:36:54,420 --> 00:36:56,020 >> Nogen der har nogen anden spørgsmål om det? 739 00:36:56,020 --> 00:36:59,387 740 00:36:59,387 --> 00:37:00,350 Værsgo. 741 00:37:00,350 --> 00:37:01,170 Ja, skyde, skyde. 742 00:37:01,170 --> 00:37:01,580 Ja, gå videre. 743 00:37:01,580 --> 00:37:01,850 Værsgo. 744 00:37:01,850 --> 00:37:02,310 >> PUBLIKUM: OK. 745 00:37:02,310 --> 00:37:08,870 Så jeg hørt om, hvordan Magic Quotes er ikke sikker nok. 746 00:37:08,870 --> 00:37:09,280 >> LUCIANO ARANGO: Hvad - 747 00:37:09,280 --> 00:37:10,110 Magic Quotes? 748 00:37:10,110 --> 00:37:10,595 >> PUBLIKUM: Ja. 749 00:37:10,595 --> 00:37:15,445 Så det tilføjer - så når du indtaster noget, er det altid tilføjer citater. 750 00:37:15,445 --> 00:37:15,930 >> LUCIANO ARANGO: Ja. 751 00:37:15,930 --> 00:37:16,000 Ja. 752 00:37:16,000 --> 00:37:16,496 OK. 753 00:37:16,496 --> 00:37:19,113 >> PUBLIKUM: Og så er jeg selv, der arbejdede, men da jeg søgte det op. 754 00:37:19,113 --> 00:37:21,648 Og det sagde, det er ikke godt. 755 00:37:21,648 --> 00:37:23,050 Men jeg er ikke sikker på, hvorfor. 756 00:37:23,050 --> 00:37:23,360 >> LUCIANO ARANGO: Ja. 757 00:37:23,360 --> 00:37:26,240 >> PUBLIKUM: Brug ikke Magic Citater, fordi det ikke er sikkert. 758 00:37:26,240 --> 00:37:26,360 >> LUCIANO ARANGO: OK. 759 00:37:26,360 --> 00:37:31,735 Så Magic Citater er, når du indsætter SQL og det allerede tilføjer citatet for dig. 760 00:37:31,735 --> 00:37:33,520 >> PUBLIKUM: Det tilføjer altid citater omkring hvad 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 det er, at - 763 00:37:37,190 --> 00:37:38,445 Jeg vil tage et kig på - 764 00:37:38,445 --> 00:37:41,390 >> PUBLIKUM: Hvordan erhverver SQL-sætningen? 765 00:37:41,390 --> 00:37:44,690 Eller jeg tror det kunne være ligesom citat vælger. 766 00:37:44,690 --> 00:37:49,030 >> LUCIANO ARANGO: Ja, du har brug for gode citater til SQL. 767 00:37:49,030 --> 00:37:52,900 >> PUBLIKUM: Nej, men serveren gør det for dig. 768 00:37:52,900 --> 00:37:54,460 >> LUCIANO ARANGO: Disse små citater lige her, disse små citater? 769 00:37:54,460 --> 00:37:55,670 >> PUBLIKUM: Ja. 770 00:37:55,670 --> 00:37:56,450 >> LUCIANO ARANGO: Ja. 771 00:37:56,450 --> 00:37:59,860 Problemet er, at du kan udkommentere den sidste - 772 00:37:59,860 --> 00:38:05,770 OK, så hvad jeg kan gøre, er at jeg kan kommentere ud - så lad os tage et kig på - lad mig 773 00:38:05,770 --> 00:38:07,920 åbne en tekstredigering fil. 774 00:38:07,920 --> 00:38:09,610 Lad mig blot redigere denne lige her direkte. 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 du fyre se, at klart? 778 00:38:23,710 --> 00:38:29,730 Hvad jeg kan gøre, er at jeg kan kommentere den sidste. 779 00:38:29,730 --> 00:38:32,190 Dette vil udkommentere den sidste. 780 00:38:32,190 --> 00:38:36,760 Og så vil jeg man sætte her, sætte alle ondsindede ting her. 781 00:38:36,760 --> 00:38:39,840 782 00:38:39,840 --> 00:38:42,630 >> Så brugeren er faktisk indtastning, right? 783 00:38:42,630 --> 00:38:45,230 Brugeren er ikke indtastning de ting, right? 784 00:38:45,230 --> 00:38:47,430 Dette er hvad jeg har tænkt mig at input den person, der forsøger at komme ind. 785 00:38:47,430 --> 00:38:49,430 Jeg har tænkt mig at sætte i - 786 00:38:49,430 --> 00:38:59,290 787 00:38:59,290 --> 00:39:00,180 det er en anførselstegn. 788 00:39:00,180 --> 00:39:01,760 Det er bare bølgede ved en fejltagelse. 789 00:39:01,760 --> 00:39:15,080 790 00:39:15,080 --> 00:39:19,400 Og hvad så koden kommer til at gøre - 791 00:39:19,400 --> 00:39:20,190 undskyld, jeg har tænkt mig at tage det ud. 792 00:39:20,190 --> 00:39:22,170 Hvad koden kommer til at gøre, er det kommer til at tilføje den første 793 00:39:22,170 --> 00:39:24,030 anførselstegn her. 794 00:39:24,030 --> 00:39:26,040 Og det kommer til at tilføje den sidste anførselstegn så godt. 795 00:39:26,040 --> 00:39:29,350 796 00:39:29,350 --> 00:39:33,270 >> Og det er også kommer til at tilføje den sidste, sidste anførselstegn. 797 00:39:33,270 --> 00:39:37,380 Men jeg kommentere disse tilbud markerer, så de ikke køre. 798 00:39:37,380 --> 00:39:41,440 Og jeg efterbehandling dette citat markere herovre. 799 00:39:41,440 --> 00:39:42,290 Forstår du? 800 00:39:42,290 --> 00:39:43,750 Er du faret vild? 801 00:39:43,750 --> 00:39:45,880 Jeg kan kommentere det sidste citat mark, og tage sig af 802 00:39:45,880 --> 00:39:46,680 første anførselstegn. 803 00:39:46,680 --> 00:39:47,350 >> PUBLIKUM: Og netop slut den første. 804 00:39:47,350 --> 00:39:47,480 >> LUCIANO ARANGO: Ja. 805 00:39:47,480 --> 00:39:48,400 Og bare afslutte første. 806 00:39:48,400 --> 00:39:48,790 Ja, det er rigtigt. 807 00:39:48,790 --> 00:39:50,800 Det er, hvad jeg kan gøre. 808 00:39:50,800 --> 00:39:51,890 Ja. 809 00:39:51,890 --> 00:39:52,980 Alle andre spørgsmål som det? 810 00:39:52,980 --> 00:39:54,230 Det er et godt spørgsmål. 811 00:39:54,230 --> 00:39:56,960 812 00:39:56,960 --> 00:39:59,790 Nej, ja, måske. 813 00:39:59,790 --> 00:40:06,150 Forhåbentlig vil du fyre slags gøre mere mening, når man studerer SQL og 814 00:40:06,150 --> 00:40:06,650 ting som. 815 00:40:06,650 --> 00:40:07,980 Men sørg for at du - 816 00:40:07,980 --> 00:40:10,340 holde disse værktøjer i vagt. 817 00:40:10,340 --> 00:40:12,760 Desværre, disse værktøjer herovre. 818 00:40:12,760 --> 00:40:14,200 Disse værktøjer er stor. 819 00:40:14,200 --> 00:40:17,190 Hvis nogen har spørgsmål, du kan også maile mig. 820 00:40:17,190 --> 00:40:19,020 Dette er min normale e-mail. 821 00:40:19,020 --> 00:40:25,015 Og det er mit arbejde e-mail, som er, når jeg arbejder på SEAS. 822 00:40:25,015 --> 00:40:26,040 >> OK, tak. 823 00:40:26,040 --> 00:40:26,740 Tak, gutter. 824 00:40:26,740 --> 00:40:27,860 Du er god til at gå. 825 00:40:27,860 --> 00:40:28,830 Du behøver ikke at bo her. 826 00:40:28,830 --> 00:40:29,570 Ikke klapper. 827 00:40:29,570 --> 00:40:30,170 Det er underligt. 828 00:40:30,170 --> 00:40:31,420 OK, tak, gutter. 829 00:40:31,420 --> 00:40:32,320