1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:10,300 >> LUCIANO Arango: OK, folkens. 3 00:00:10,300 --> 00:00:11,550 Mitt 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 å snakke om websikkerhet aktiv forsvar. 6 00:00:17,550 --> 00:00:24,220 Så jeg jobber for Office of Information Sikkerhet i SEAS. 7 00:00:24,220 --> 00:00:28,670 Og i løpet av sommeren, internert jeg på SeguraTec, som var en informasjon 8 00:00:28,670 --> 00:00:31,310 vaktselskap som tjente for Bank of Columbia. 9 00:00:31,310 --> 00:00:34,740 Det er stort sett der jeg lærte hva jeg har lært så langt. 10 00:00:34,740 --> 00:00:37,990 >> Og så noe av materialet som vi er kommer til å gå over i dag, ikke har vi 11 00:00:37,990 --> 00:00:39,670 egentlig snakket 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 å være som SQL, Javascript. 14 00:00:42,360 --> 00:00:44,870 Og vi har egentlig gått over det. 15 00:00:44,870 --> 00:00:47,730 Så jeg kan sortere på flukt gjennom det, og du kan ikke vite noen 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 vil gi mening. 18 00:00:52,080 --> 00:00:54,010 Også en annen ting - 19 00:00:54,010 --> 00:00:55,780 holde etisk. 20 00:00:55,780 --> 00:01:00,560 Noen av de tingene som du lærer, du kunne bruke i ikke-etiske måter. 21 00:01:00,560 --> 00:01:01,950 >> Hvis det er din, definitivt prøve. 22 00:01:01,950 --> 00:01:04,500 Jeg definitivt motivere dere å prøve dine egne servere, prøve 23 00:01:04,500 --> 00:01:05,519 kommer inni dem. 24 00:01:05,519 --> 00:01:08,500 Se om du kan trenge dem, hvis du kan få inni dem. 25 00:01:08,500 --> 00:01:09,560 Men ikke andres. 26 00:01:09,560 --> 00:01:12,390 Politimenn har egentlig ikke liker vitser og hele, setter vi dette her. 27 00:01:12,390 --> 00:01:14,040 Vi var messing rundt. 28 00:01:14,040 --> 00:01:15,780 De får virkelig sint. 29 00:01:15,780 --> 00:01:18,700 >> Så ta turen over til denne nettsiden. 30 00:01:18,700 --> 00:01:23,560 Jeg har det åpnet rett her. 31 00:01:23,560 --> 00:01:26,780 Dette er en nettside, og det har en haug med eksempler. 32 00:01:26,780 --> 00:01:30,000 Hva som skjer er at det første eksempelet er liksom kommer til å bli mye enklere 33 00:01:30,000 --> 00:01:33,470 enn det siste eksempel i en forstand at det første eksempelet 34 00:01:33,470 --> 00:01:34,970 er helt usikkert. 35 00:01:34,970 --> 00:01:40,850 Og den siste er liksom hva en normal web sikkerhet person ville gjøre. 36 00:01:40,850 --> 00:01:42,760 Men du kan fortsatt slag av komme seg rundt det. 37 00:01:42,760 --> 00:01:44,860 Og vi kommer til å fokusere på ett og to, en og to eksempler. 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 La oss starte med cross-site scripting. 41 00:01:52,780 --> 00:01:56,100 Javascript kjøres på klientens nettleser. 42 00:01:56,100 --> 00:01:59,980 Det er et programmeringsspråk som du bruker å kjøre på klientens nettleser så 43 00:01:59,980 --> 00:02:04,120 du trenger ikke å oppdatere nettsiden og gå tilbake til serveren. 44 00:02:04,120 --> 00:02:04,940 Du har den i gang. 45 00:02:04,940 --> 00:02:08,870 For eksempel Facebook, har du ikke å laste nettsiden for ny status 46 00:02:08,870 --> 00:02:09,710 oppdateringer for å komme opp. 47 00:02:09,710 --> 00:02:12,170 Det er ved hjelp av Javascript for å generere alle disse tingene. 48 00:02:12,170 --> 00:02:16,290 Så vi kan injisere ondsinnet Java inn i nettsteder. 49 00:02:16,290 --> 00:02:20,890 Og på den måten, når vi sender en link til noen, vi kunne liksom sende den med 50 00:02:20,890 --> 00:02:23,050 noen av koden som vi ønsker. 51 00:02:23,050 --> 00:02:26,450 >> Det er vedvarende og ikke-persistent Java - 52 00:02:26,450 --> 00:02:30,640 vedvarende og ikke-vedvarende cross-site scripting, mener jeg. 53 00:02:30,640 --> 00:02:33,760 Og den forskjell at vedvarende er Javascript som vil være 54 00:02:33,760 --> 00:02:36,060 lagret på nettsiden. 55 00:02:36,060 --> 00:02:39,780 Og ikke-vedvarende vil være Java som faktisk vil bare skje én gang. 56 00:02:39,780 --> 00:02:41,795 Så la oss se på et eksempel virkelig rask. 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å dette nettstedet, enkel, ingenting skjer her. 60 00:02:51,620 --> 00:02:53,070 Og vi kommer til å prøve å sette noen Javascript. 61 00:02:53,070 --> 00:02:58,110 Så måten vi begynner å skrive Java er vi begynne med begynnelsen script. 62 00:02:58,110 --> 00:03:00,570 Og vi lukker den med manuset. 63 00:03:00,570 --> 00:03:03,770 Vi er rett og slett kommer til å sette en melding - 64 00:03:03,770 --> 00:03:05,410 Jeg skal vise deg - 65 00:03:05,410 --> 00:03:06,500 alert. 66 00:03:06,500 --> 00:03:11,150 Alert er en funksjon som Java bruker til å vise noe. 67 00:03:11,150 --> 00:03:12,400 Så la oss prøve det virkelig rask. 68 00:03:12,400 --> 00:03:15,600 69 00:03:15,600 --> 00:03:18,944 Jeg kommer til å gå, våken hallo. 70 00:03:18,944 --> 00:03:20,400 Vel, jeg glemte å sette - 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 enkelt. 74 00:03:26,540 --> 00:03:28,730 >> Vi legger Javascript på en nettside, og det kom opp. 75 00:03:28,730 --> 00:03:31,200 Og det liksom bare skjer på nettsiden vår, ikke sant? 76 00:03:31,200 --> 00:03:33,040 Så det virker som det ikke er et problem, ikke sant? 77 00:03:33,040 --> 00:03:34,920 Jeg mener, hvordan kan du bruke dette skadelig? 78 00:03:34,920 --> 00:03:39,930 Så måten at hackere gjøre dette er veldig enkelt. 79 00:03:39,930 --> 00:03:40,970 De kommer til å ta tak i det. 80 00:03:40,970 --> 00:03:43,750 De kan sende denne linken til deg. 81 00:03:43,750 --> 00:03:46,780 Hvis jeg skal sende denne linken til deg akkurat nå, og du åpner den opp, kommer det til å 82 00:03:46,780 --> 00:03:51,620 si, hallo, å si at min hjemmeside forteller deg god dag. 83 00:03:51,620 --> 00:03:57,280 >> Og så hvis jeg skulle si noe litt smartere, hvis jeg trekke opp en 84 00:03:57,280 --> 00:03:59,880 Javascript-funksjonen jeg kind av allerede skrev - 85 00:03:59,880 --> 00:04:03,940 men hvis du 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 å sette en timeout. 87 00:04:06,650 --> 00:04:08,450 Vi kommer til å vente på et par sekunder. 88 00:04:08,450 --> 00:04:13,970 Faktisk, vi kommer til å vente på, hvis Jeg ikke tar feil, 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 hva skal vi gjøre da er vi er kommer til å varsle at innlogging 91 00:04:18,640 --> 00:04:21,459 tidsavbrudd for å logge inn igjen 92 00:04:21,459 --> 00:04:23,990 Og vi kommer til å endre plasseringen til et annet sted. 93 00:04:23,990 --> 00:04:30,370 94 00:04:30,370 --> 00:04:32,970 >> Så hvis jeg sender dette nettstedet til noen, de kommer til å være 95 00:04:32,970 --> 00:04:34,380 surfer rundt, rolig. 96 00:04:34,380 --> 00:04:35,650 Ingenting skjer. 97 00:04:35,650 --> 00:04:38,550 Og i fem sekunder, det kommer å si, påloggingen timet ut. 98 00:04:38,550 --> 00:04:40,200 Vennligst logge på igjen 99 00:04:40,200 --> 00:04:43,400 Når de klikker på OK, kommer jeg til å ta dem til en annen nettside. 100 00:04:43,400 --> 00:04:45,980 Antagelig er nettsiden kommer til å være lik den nettsiden som 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 å logge sin legitimasjon til hjemmesiden min 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-post med denne linken. 105 00:04:54,780 --> 00:04:56,240 Jeg sier, oh, her er en 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 sier, her, gå på denne linken. 108 00:05:01,390 --> 00:05:03,730 Og når de sender det, er de kommer til å være surfer rundt. 109 00:05:03,730 --> 00:05:07,560 Jeg kan vente i 15 sekunder, 20 sekunder, og deretter pop som kan logge på igjen 110 00:05:07,560 --> 00:05:08,840 logger på igjen. 111 00:05:08,840 --> 00:05:10,120 Dere kan prøve det med mange flere ting. 112 00:05:10,120 --> 00:05:13,190 Det er komplisert fordi dere har ikke sett Javascript, slik at du kanskje 113 00:05:13,190 --> 00:05:14,750 ikke vet enkelte funksjoner. 114 00:05:14,750 --> 00:05:18,625 Men alt du trenger å gjøre er å starte med manus, ender med manuset. 115 00:05:18,625 --> 00:05:22,105 116 00:05:22,105 --> 00:05:25,510 Og du kan sette noe i midten. 117 00:05:25,510 --> 00:05:27,350 >> Alert er en funksjon, må du vente. 118 00:05:27,350 --> 00:05:29,365 Vindu plassering tar deg til et nytt sted. 119 00:05:29,365 --> 00:05:31,370 Men du kan gjøre så mye mer. 120 00:05:31,370 --> 00:05:32,630 Og så tanken er at vi ta det av. 121 00:05:32,630 --> 00:05:39,350 Hvis jeg går til eksempel to, og jeg satt i denne samme koden, er det 122 00:05:39,350 --> 00:05:40,210 ikke kommer til å fungere. 123 00:05:40,210 --> 00:05:43,620 Så det å skrive alt ut fordi hva denne nettsiden opprinnelig 124 00:05:43,620 --> 00:05:50,350 gjør er hvis jeg legger noe her, det vil skrive den ut her. 125 00:05:50,350 --> 00:05:52,390 Så det er ikke å skrive noe ut. 126 00:05:52,390 --> 00:05:55,560 Dette eksempelet er faktisk sjekker for å se om skriptet 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ør meg. 129 00:05:57,606 --> 00:05:59,560 >> PUBLIKUM: Er ikke sende en får eller poste forespørsel? 130 00:05:59,560 --> 00:06:00,670 >> LUCIANO Arango: Yeah. de er sende en GET-forespørsel. 131 00:06:00,670 --> 00:06:01,350 >> PUBLIKUM: Det er? 132 00:06:01,350 --> 00:06:02,490 >> LUCIANO Arango: Yeah. 133 00:06:02,490 --> 00:06:04,030 Også nettlesere bruker POST-forespørsler. 134 00:06:04,030 --> 00:06:07,470 Men jeg prøver å vise få forespørsler slik at vi kan se hva som er 135 00:06:07,470 --> 00:06:10,760 faktisk skjer. 136 00:06:10,760 --> 00:06:12,880 Og så hvis vi ser på denne koden - så er det ikke fungerer lenger. 137 00:06:12,880 --> 00:06:24,870 Og hvis vi tar en titt på denne koden, det kommer til å være i eksempel to. 138 00:06:24,870 --> 00:06:29,300 Hva denne personen gjør, personen ansvarlig for denne nettleseren - 139 00:06:29,300 --> 00:06:35,370 åpne opp, OK - 140 00:06:35,370 --> 00:06:39,290 er å erstatte ordet script. 141 00:06:39,290 --> 00:06:42,850 Dette er PHP, som dere kanskje har sett litt av ennå. 142 00:06:42,850 --> 00:06:46,250 >> Han bare erstatte Ordet script med navn. 143 00:06:46,250 --> 00:06:50,895 Så men hvis jeg går videre og bare sette i - 144 00:06:50,895 --> 00:06:58,520 145 00:06:58,520 --> 00:07:02,360 hvis jeg hente min kode igjen, og jeg kommer å endre det bare en liten bit. 146 00:07:02,360 --> 00:07:15,010 I stedet for manus, kommer jeg til å endre det for script med en kapital R. Og 147 00:07:15,010 --> 00:07:16,390 vi kommer til å se om denne koden fungerer. 148 00:07:16,390 --> 00:07:19,090 Så det ikke skrive det ut, som er et godt tegn. 149 00:07:19,090 --> 00:07:21,990 Og forhåpentligvis i to sekunder, det kommer til å dukke opp. 150 00:07:21,990 --> 00:07:22,820 >> Logg inn ditt timet ut. 151 00:07:22,820 --> 00:07:23,210 OK. 152 00:07:23,210 --> 00:07:24,460 Alt i orden. 153 00:07:24,460 --> 00:07:27,670 Så sjekker for script kanskje ikke nødvendigvis fungere. 154 00:07:27,670 --> 00:07:28,130 Personen - 155 00:07:28,130 --> 00:07:32,290 det kan også sjekke for manus store bokstaver, script små bokstaver, str saken 156 00:07:32,290 --> 00:07:34,180 sammenligne, sørg for at de er de samme. 157 00:07:34,180 --> 00:07:38,480 Men hackeren kan fortsatt gjøre liksom hva vi gjorde i Vigenère da vi flyttet 158 00:07:38,480 --> 00:07:40,620 tilbake et par tegn, bevege seg fremover. 159 00:07:40,620 --> 00:07:43,470 Og det kan finne ut hvordan å sette script tilbake i det så det kan injisere 160 00:07:43,470 --> 00:07:44,460 skriptet. 161 00:07:44,460 --> 00:07:50,370 >> Så hva du ønsker å bruke er htmlspecialchars til 162 00:07:50,370 --> 00:07:51,330 beskytte ditt nettsted. 163 00:07:51,330 --> 00:07:56,490 Og hva dette gjør er det som gjør sikker på at det du legger i - 164 00:07:56,490 --> 00:07:59,610 for eksempel, sitater eller dette større enn eller mindre enn - 165 00:07:59,610 --> 00:08:04,701 er erstattet med noe som ikke vil være - 166 00:08:04,701 --> 00:08:05,951 la meg zoome inn 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 spesielle HTML tegn på at vi får se når vi er 170 00:08:13,420 --> 00:08:14,670 snakker om - 171 00:08:14,670 --> 00:08:18,635 172 00:08:18,635 --> 00:08:20,740 oh, dette kommer til å ta meg tilbake til - 173 00:08:20,740 --> 00:08:24,220 174 00:08:24,220 --> 00:08:25,380 disse tegnene rett her. 175 00:08:25,380 --> 00:08:28,180 >> Disse bety at noe kommer. 176 00:08:28,180 --> 00:08:31,570 For HTML, som begynner brakett forteller oss at noe 177 00:08:31,570 --> 00:08:33,299 HTML relatert kommer. 178 00:08:33,299 --> 00:08:33,980 Og vi ønsker å bli kvitt det. 179 00:08:33,980 --> 00:08:36,200 Vi ønsker ikke å sette HTML inn i en website.k Vi ønsker ikke at brukeren skal 180 00:08:36,200 --> 00:08:40,260 stand til å sette noe på deres hjemmeside som kan påvirke deres hjemmeside, som 181 00:08:40,260 --> 00:08:43,480 skript eller HTML eller noe sånt. 182 00:08:43,480 --> 00:08:53,090 Det viktigste er at du rense brukerundersøkelser. 183 00:08:53,090 --> 00:08:54,720 >> Slik at brukerne kan legge inn mange ting. 184 00:08:54,720 --> 00:08:58,110 Han kan legge inn en haug med ting for å prøve å lure nettleseren din til fortsatt 185 00:08:58,110 --> 00:08:59,410 kjører denne skriptkode. 186 00:08:59,410 --> 00:09:02,870 Hva du ønsker å gjøre er å ikke bare se for manus, men se etter alt 187 00:09:02,870 --> 00:09:04,250 som kan være skadelig. 188 00:09:04,250 --> 00:09:06,800 Og htmlspecialchars vil gjøre det for deg, slik at du ikke trenger 189 00:09:06,800 --> 00:09:07,340 å bekymre deg for det. 190 00:09:07,340 --> 00:09:12,280 Men ikke prøv å gjøre selv liksom med din egen kode. 191 00:09:12,280 --> 00:09:14,055 Er alle klare på XSS? 192 00:09:14,055 --> 00:09:14,370 >> OK. 193 00:09:14,370 --> 00:09:16,355 La oss gå til SQL-injeksjon. 194 00:09:16,355 --> 00:09:21,010 Så SQL-injeksjon er trolig den nummer én sårbarhet 195 00:09:21,010 --> 00:09:22,490 i forskjellige nettsteder. 196 00:09:22,490 --> 00:09:24,350 Jeg mener, et godt eksempel - 197 00:09:24,350 --> 00:09:27,350 Jeg ble bare forske lengst for denne tingen. 198 00:09:27,350 --> 00:09:34,430 Og jeg fant denne awesome artikkelen, der Jeg så at Harvard ble brutt, 199 00:09:34,430 --> 00:09:35,390 ble hacket. 200 00:09:35,390 --> 00:09:37,370 Og jeg lurte på, vel, hvordan skulle de gjøre det? 201 00:09:37,370 --> 00:09:41,660 Harvard er den råeste, mest sikre universitetet noensinne. 202 00:09:41,660 --> 00:09:43,850 Høyre? 203 00:09:43,850 --> 00:09:45,410 Vel, å bryte serverne, hackere benyttet en 204 00:09:45,410 --> 00:09:47,710 teknikk som kalles SQL-injeksjon. 205 00:09:47,710 --> 00:09:50,250 >> Så dette skjer på en dag til dag basis. 206 00:09:50,250 --> 00:09:53,590 Folk glemmer å ta hensyn for SQL-injeksjon. 207 00:09:53,590 --> 00:09:54,930 Harvard gjør. 208 00:09:54,930 --> 00:10:00,050 Jeg tror det står her, Princeton, Stanford, Cornell. 209 00:10:00,050 --> 00:10:03,550 Så hvordan skal vi - så hva er dette SQL injeksjon som er å bringe 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 programmeringsspråk som vi bruker for å få tilgang til databaser. 213 00:10:12,090 --> 00:10:14,560 Hva vi gjør er vi velge - 214 00:10:14,560 --> 00:10:18,510 så hva dette leser akkurat nå er å velge alt fra bordet. 215 00:10:18,510 --> 00:10:22,640 >> SQL, endrer det inn i disse databasene som har tabeller som er full av informasjon. 216 00:10:22,640 --> 00:10:26,550 Så velger du alt fra brukere der navnet er brukernavn. 217 00:10:26,550 --> 00:10:28,120 Høyre? 218 00:10:28,120 --> 00:10:30,770 Enkelt nok. 219 00:10:30,770 --> 00:10:34,490 Ideen om SQL-injeksjon er at vi sette noen ondsinnet kode som ville 220 00:10:34,490 --> 00:10:37,270 lure serveren til å kjøre noe annerledes enn hva det 221 00:10:37,270 --> 00:10:38,430 opprinnelig var i gang. 222 00:10:38,430 --> 00:10:44,970 Så la oss si for brukernavn, vi satt i, eller en lik en. 223 00:10:44,970 --> 00:10:46,700 Så vi satt i, eller en lik en. 224 00:10:46,700 --> 00:10:49,890 Måten det vil lese nå vil være å velge fra brukere, alt fra 225 00:10:49,890 --> 00:10:51,360 brukere - dette er alt - 226 00:10:51,360 --> 00:10:55,880 der navn er brukernavn, men Brukernavnet er eller en lik en. 227 00:10:55,880 --> 00:11:01,760 >> Så navn er ingenting eller en lik en. 228 00:11:01,760 --> 00:11:04,060 1 er lik 1 er alltid sant. 229 00:11:04,060 --> 00:11:07,690 Så dette vil alltid returnere informasjon fra brukerne. 230 00:11:07,690 --> 00:11:08,100 OK. 231 00:11:08,100 --> 00:11:10,030 Vi trenger ikke å ha riktig brukernavn. 232 00:11:10,030 --> 00:11:14,240 Vi kan bare ha noe som vi ønsker, og det vil returnere informasjon 233 00:11:14,240 --> 00:11:15,690 at vi trenger. 234 00:11:15,690 --> 00:11:17,160 La oss se på et annet eksempel. 235 00:11:17,160 --> 00:11:22,720 >> Hvis vi har å velge alt fra brukeren, der navn er DROP TABLE brukere - 236 00:11:22,720 --> 00:11:26,420 så hva tror du dette vil gjøre hvis jeg legger inn brukernavnet 237 00:11:26,420 --> 00:11:29,560 som DROP TABLE brukere? 238 00:11:29,560 --> 00:11:30,230 Alle som 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 å fortelle det å dumpe alle tabellene. 241 00:11:32,470 --> 00:11:35,460 >> LUCIANO Arango: Det kommer til å fortelle oss å dumpe alt på nettstedet, 242 00:11:35,460 --> 00:11:38,290 alt i databasen. 243 00:11:38,290 --> 00:11:41,910 Og hva folk bruker dette for - så Jeg kommer til å vise dere. 244 00:11:41,910 --> 00:11:45,462 Jeg deaktivert slippe tabellene fordi jeg ikke vil at du 245 00:11:45,462 --> 00:11:48,240 gutta å slippe mine tabeller. 246 00:11:48,240 --> 00:11:49,850 La oss ta en titt på denne. 247 00:11:49,850 --> 00:11:54,410 Så dette bare trekker opp den informasjonen for en bestemt person. 248 00:11:54,410 --> 00:11:57,550 Så hvordan vet vi om dette er påvirket av SQL-injeksjon. 249 00:11:57,550 --> 00:12:01,545 Vi kommer til å sjekke virkelig rask hvis vi kan sette noe - 250 00:12:01,545 --> 00:12:04,990 251 00:12:04,990 --> 00:12:06,080 la meg kopiere denne koden. 252 00:12:06,080 --> 00:12:08,140 Jeg kommer til å gå over det i et sekund. 253 00:12:08,140 --> 00:12:12,210 Jeg kommer til å sette rot og en lik en. 254 00:12:12,210 --> 00:12:15,510 >> Denne retten her, dette prosenttegn 23 - 255 00:12:15,510 --> 00:12:19,970 hva det egentlig er, hvis jeg se her på - 256 00:12:19,970 --> 00:12:23,820 hvordan HTML tar i tall, hvis du ta en titt på når jeg satt i et rom 257 00:12:23,820 --> 00:12:28,380 her - hvis jeg skulle plass noe her, endrer det til en prosent to. 258 00:12:28,380 --> 00:12:31,420 Har dere se dette her når jeg satt i et rom? 259 00:12:31,420 --> 00:12:36,710 Måten det fungerer på er at du bare kan sende ASCII-verdier gjennom HTML. 260 00:12:36,710 --> 00:12:40,330 Så det erstatter, f.eks en plass med prosent 20. 261 00:12:40,330 --> 00:12:41,970 Jeg vet ikke om dere har sett det før. 262 00:12:41,970 --> 00:12:45,100 >> Den erstatter en hashtag med prosent 23. 263 00:12:45,100 --> 00:12:50,840 Vi trenger en hashtag på slutten av eller setningen slik at vi kan fortelle 264 00:12:50,840 --> 00:13:00,885 database for å glemme å kommentere ut denne siste semikolon ved enden. 265 00:13:00,885 --> 00:13:03,060 Vi vil at det skal ikke tenke på det. 266 00:13:03,060 --> 00:13:05,980 Vi vil bare det å kjøre alt at vi har på forhånd og 267 00:13:05,980 --> 00:13:07,450 kommentere det ut. 268 00:13:07,450 --> 00:13:08,710 La oss ta en titt på det. 269 00:13:08,710 --> 00:13:14,670 >> Så hvis jeg skulle sette noe galt - la oss si for eksempel, satte jeg to lik 270 00:13:14,670 --> 00:13:15,690 En, er det ikke gir meg noe. 271 00:13:15,690 --> 00:13:22,930 Da jeg satt i en lik en, og det gjør returnere noe, forteller dette meg at 272 00:13:22,930 --> 00:13:24,660 Dette er sårbart overfor en SQL-injeksjon. 273 00:13:24,660 --> 00:13:29,090 Jeg vet nå at uansett Jeg legger etter dette - 274 00:13:29,090 --> 00:13:39,110 og for eksempel slette tabeller eller noe sånt 275 00:13:39,110 --> 00:13:41,190 vil definitivt fungere. 276 00:13:41,190 --> 00:13:44,350 Jeg vet at det er utsatt for SQL-injeksjon fordi jeg vet at 277 00:13:44,350 --> 00:13:49,850 under panseret, er det å la meg til å gjøre det en lik en 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, nummer to og nummer tre, er det 281 00:13:56,540 --> 00:13:59,110 kommer til å gjøre litt mer av kontroll under 282 00:13:59,110 --> 00:14:03,680 panseret på hva det er. 283 00:14:03,680 --> 00:14:07,425 Så hvem som helst aktivere dråpe noe ennå, eller prøvd? 284 00:14:07,425 --> 00:14:08,760 Har dere liksom få SQL ennå? 285 00:14:08,760 --> 00:14:10,430 Fordi jeg vet at dere har ikke sett den ennå, så det er litt av 286 00:14:10,430 --> 00:14:11,759 forvirrende for dere. 287 00:14:11,759 --> 00:14:16,160 288 00:14:16,160 --> 00:14:18,480 La oss ta en titt. 289 00:14:18,480 --> 00:14:21,270 Så hva er den måten å hindre SQLi? 290 00:14:21,270 --> 00:14:21,390 OK. 291 00:14:21,390 --> 00:14:23,330 Så dette er veldig viktig fordi du Gutta vil definitivt å hindre 292 00:14:23,330 --> 00:14:24,090 dette i dine nettsteder. 293 00:14:24,090 --> 00:14:28,040 >> Hvis ikke, blir alle dine venner kommer til å gjøre narr av deg når de slippe alt 294 00:14:28,040 --> 00:14:29,390 tabellene. 295 00:14:29,390 --> 00:14:36,150 Så ideen er at du reparere SQL på en bestemt måte, mens du matche 296 00:14:36,150 --> 00:14:41,940 hva brukeren innganger med en bestemt streng. 297 00:14:41,940 --> 00:14:46,120 Så hvordan dette fungerer er at du klar databasen. 298 00:14:46,120 --> 00:14:50,830 Du velger navn, farge og kalorier fra en database som kalles frukt. 299 00:14:50,830 --> 00:14:53,580 Og så hvor kalorier er mindre enn, og vi setter et spørsmålstegn der 300 00:14:53,580 --> 00:14:56,530 sier vi skal innspill noe i et sekund. 301 00:14:56,530 --> 00:14:58,850 >> Og fargen er lik, og vi satt et spørsmåls mark sier vi skal 302 00:14:58,850 --> 00:15:00,913 inngang noe i et sekund, så vel. 303 00:15:00,913 --> 00:15:02,660 OK? 304 00:15:02,660 --> 00:15:09,920 Og da vi utføre det, sette i 150 og rød. 305 00:15:09,920 --> 00:15:12,820 Og dette vil du kontrollere sikker på at disse to - 306 00:15:12,820 --> 00:15:15,300 denne matrisen vil kontrollere at disse to er et helt tall, 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å vi går, og vi hente alle, satte vi den i rødt. 310 00:15:20,890 --> 00:15:21,964 Det betyr at vi henter alle. 311 00:15:21,964 --> 00:15:26,790 Det betyr at vi faktisk kjøre SQL uttalelse og sette den tilbake i rødt. 312 00:15:26,790 --> 00:15:30,530 Her gjør vi det samme, men vi gjøre det samme for gult. 313 00:15:30,530 --> 00:15:32,490 Og vi hente alt. 314 00:15:32,490 --> 00:15:36,140 >> Og på denne måten, hindrer vi at brukeren fra å være i stand til innspill noe 315 00:15:36,140 --> 00:15:41,710 det er ikke hva vi har angitt, en streng eller et helt tall, f.eks. 316 00:15:41,710 --> 00:15:45,100 317 00:15:45,100 --> 00:15:46,610 Jeg snakket tidligere om å stole på andre. 318 00:15:46,610 --> 00:15:50,010 Når dere starter prosjektet ditt, er du mest definitivt kommer til å bruke 319 00:15:50,010 --> 00:15:52,310 bootstrap eller noe lignende. 320 00:15:52,310 --> 00:15:53,490 Har dere noen gang brukt Wordpress? 321 00:15:53,490 --> 00:15:57,170 Sannsynligvis dere har brukt Wordpress mest sannsynlig. 322 00:15:57,170 --> 00:16:00,050 Så problemet med å bruke andres ting - 323 00:16:00,050 --> 00:16:05,940 Jeg skal bare Google virkelig rask Wordpress sårbarhet. 324 00:16:05,940 --> 00:16:07,495 >> Hvis jeg trekker dette opp akkurat nå - 325 00:16:07,495 --> 00:16:08,995 Jeg bokstavelig talt gjorde en to andre 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 datert som i september '12. 329 00:16:17,450 --> 00:16:19,120 26 er oppdatert. 330 00:16:19,120 --> 00:16:23,620 Standardkonfigurasjonen av Wordpress før 3.6 er ikke til hinder disse 331 00:16:23,620 --> 00:16:27,110 visse opplasting, noe som kan gjøre det enklere for 332 00:16:27,110 --> 00:16:29,790 cross-site scripting-angrep. 333 00:16:29,790 --> 00:16:34,530 Så en rask historie, når vi arbeider med - så jeg var i sommer, jobber en 334 00:16:34,530 --> 00:16:34,970 internship. 335 00:16:34,970 --> 00:16:40,400 Og vi jobbet med liksom som en stor kredittkortselskapet. 336 00:16:40,400 --> 00:16:42,020 >> Og de er avhengige av noe som kalles - 337 00:16:42,020 --> 00:16:45,740 Jeg vet ikke om dere noen gang spilt med et produkt som heter Joomla. 338 00:16:45,740 --> 00:16:51,750 Joomla er et produkt som brukes til å kontroll - liksom lik 339 00:16:51,750 --> 00:16:54,340 Wordpress, som brukes til å bygge nettsteder. 340 00:16:54,340 --> 00:16:56,060 Så de hadde deres hjemmeside jobber med Joomla. 341 00:16:56,060 --> 00:16:59,290 Dette er faktisk et kredittkort selskapet i Colombia. 342 00:16:59,290 --> 00:17:01,000 Jeg skal ta deg med til deres nettside virkelig rask. 343 00:17:01,000 --> 00:17:04,550 344 00:17:04,550 --> 00:17:05,400 >> Så brukte de Joomla. 345 00:17:05,400 --> 00:17:08,630 Og de hadde ikke oppdatert Joomla til det nyeste tilskuddet. 346 00:17:08,630 --> 00:17:12,160 Og så når vi tok en titt på koden sin, kunne vi faktisk 347 00:17:12,160 --> 00:17:18,430 gå inn koden sin og stjele alle kredittkortinformasjon som de hadde, 348 00:17:18,430 --> 00:17:21,670 alle kredittkortnumre, navnene, adressene. 349 00:17:21,670 --> 00:17:22,740 Og dette var bare - 350 00:17:22,740 --> 00:17:23,569 og deres kode var helt greit. 351 00:17:23,569 --> 00:17:24,710 De hadde stor kode. 352 00:17:24,710 --> 00:17:25,389 Det var all sikkerhet. 353 00:17:25,389 --> 00:17:26,520 De sjekket alle databasene. 354 00:17:26,520 --> 00:17:29,020 De sørget for cross-site scripting var fint. 355 00:17:29,020 --> 00:17:34,390 >> Men de brukte noe som ikke var oppdatert, det var ikke sikker. 356 00:17:34,390 --> 00:17:36,940 Og slik som førte dem til - så dere er definitivt kommer til å bruke andre 357 00:17:36,940 --> 00:17:40,650 folks kode, andres rammer å bygge opp ditt nettsted. 358 00:17:40,650 --> 00:17:43,860 Pass på at de er sikre fordi noen ganger er det ikke, den som 359 00:17:43,860 --> 00:17:44,480 gjør en feil. 360 00:17:44,480 --> 00:17:47,440 Men noen andre gjør en feil, og så du faller ned på grunn av det. 361 00:17:47,440 --> 00:17:51,190 362 00:17:51,190 --> 00:17:53,885 >> Passord og PII. 363 00:17:53,885 --> 00:17:56,820 Så passord. 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 La oss ta en titt på passord virkelig rask. 367 00:18:04,230 --> 00:18:04,590 OK. 368 00:18:04,590 --> 00:18:06,520 Vennligst fortell meg at alle bruker sikker - 369 00:18:06,520 --> 00:18:09,030 Jeg håper alle her bruker sikre passord. 370 00:18:09,030 --> 00:18:12,890 Jeg bare la det inn som en forutsetning. 371 00:18:12,890 --> 00:18:14,850 Så dere er definitivt kommer til å lagre passord for nettsteder. 372 00:18:14,850 --> 00:18:17,440 Du kommer til å gjøre noe sånt en innlogging eller noe sånt. 373 00:18:17,440 --> 00:18:19,610 Det viktigste er å ikke oppbevare passord i klartekst. 374 00:18:19,610 --> 00:18:20,860 Dette er ekstremt viktig. 375 00:18:20,860 --> 00:18:23,960 Du ønsker ikke å lagre et passord i klartekst. 376 00:18:23,960 --> 00:18:27,370 >> Og du definitivt ikke egentlig ønsker å lagre den i en enveis hash. 377 00:18:27,370 --> 00:18:32,440 Så hva en enveis hash er at når du generere et ord, når du setter dette 378 00:18:32,440 --> 00:18:36,200 ord i en hash-funksjon, vil det generere tilbake noen form for kryptisk 379 00:18:36,200 --> 00:18:39,390 melding eller kryptisk sett med nøkler. 380 00:18:39,390 --> 00:18:40,640 Jeg skal vise deg et eksempel. 381 00:18:40,640 --> 00:18:44,620 382 00:18:44,620 --> 00:18:50,250 Jeg kommer til hasj de ord password1. 383 00:18:50,250 --> 00:18:55,280 Så MD5-hash kommer til å returnere meg en slags rare informasjon. 384 00:18:55,280 --> 00:18:59,140 >> Problemet er at folk der ute som liker å gå inn i nettsteder har 385 00:18:59,140 --> 00:19:02,750 allerede funnet ut liksom av alle MD5 hashes. 386 00:19:02,750 --> 00:19:06,030 Det de gjorde er de satte seg på sin datamaskiner, og de utydeliggjorte hvert 387 00:19:06,030 --> 00:19:09,660 eneste mulige ord ut der til de fikk liksom hva dette er. 388 00:19:09,660 --> 00:19:11,420 Hvis jeg skulle se dette opp - 389 00:19:11,420 --> 00:19:12,420 Jeg bare tok dette 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 inn i en nettside, og jeg synes denne hash fordi jeg får til 392 00:19:17,470 --> 00:19:24,100 databaser, og jeg ser det opp, noen allerede funnet det ut for meg. 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å folk satte seg ned, og uansett md5 hash som du putter i, de kommer til å 396 00:19:35,030 --> 00:19:37,760 tilbake til deg noe som er et ord. 397 00:19:37,760 --> 00:19:39,800 Hvis jeg hasj et annet ord, som - 398 00:19:39,800 --> 00:19:42,410 Jeg vet ikke - 399 00:19:42,410 --> 00:19:43,490 trees2. 400 00:19:43,490 --> 00:19:46,050 Jeg ønsker ikke å være skuffet av mine Google-søk. 401 00:19:46,050 --> 00:19:49,820 402 00:19:49,820 --> 00:19:52,780 Det er det, trees2. 403 00:19:52,780 --> 00:19:55,930 Så en rekke nettsteder fortsatt bruke md5 hash. 404 00:19:55,930 --> 00:19:57,730 De sier, oh, det er sikkert. 405 00:19:57,730 --> 00:19:58,570 Vi er ikke lagring i klartekst. 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 jeg har å gjøre er bare Google nummeret. 408 00:20:01,880 --> 00:20:03,940 >> Jeg trenger ikke engang å beregne meg selv. 409 00:20:03,940 --> 00:20:06,790 Jeg kan bare Google det, og noen allerede gjorde det for meg. 410 00:20:06,790 --> 00:20:08,010 Her er en haug av dem. 411 00:20:08,010 --> 00:20:09,260 Her er en haug med passord. 412 00:20:09,260 --> 00:20:13,890 413 00:20:13,890 --> 00:20:18,680 Så definitivt ikke bruker MD5-hash, fordi alt du trenger å 414 00:20:18,680 --> 00:20:19,140 gjøre er å google det. 415 00:20:19,140 --> 00:20:20,390 Så hva vil du bruke 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 Noe som kalles salting. 419 00:20:31,260 --> 00:20:32,460 Så hva salting er - 420 00:20:32,460 --> 00:20:36,280 husker dere gjør når vi var snakker om tilfeldige - 421 00:20:36,280 --> 00:20:37,920 Jeg er ikke sikker på hva PSett det var - 422 00:20:37,920 --> 00:20:41,140 ble det PSett der eller fire? 423 00:20:41,140 --> 00:20:45,150 >> Vi snakket om å finne nålen i høystakken. 424 00:20:45,150 --> 00:20:48,480 Og i PSett, det sa at du kunne faktisk finne ut hva tilfeldig 425 00:20:48,480 --> 00:20:51,840 genererer fordi noen allerede kjørte tilfeldige en million ganger og bare 426 00:20:51,840 --> 00:20:53,230 liksom dannet hva de genererer. 427 00:20:53,230 --> 00:20:55,840 Hva du ønsker å gjøre er satt i en inngang. 428 00:20:55,840 --> 00:20:57,130 Så det er hva salting slags er. 429 00:20:57,130 --> 00:21:00,900 De har allerede funnet ut hva salting kommer tilbake etter hvert arbeid. 430 00:21:00,900 --> 00:21:04,750 >> Så hva salting gjør er du putter i et salt. 431 00:21:04,750 --> 00:21:06,160 Du setter inn et bestemt ord. 432 00:21:06,160 --> 00:21:09,720 Og det vil hash at ord avhengig på hva du putter i her. 433 00:21:09,720 --> 00:21:13,570 Så hvis jeg hash passord man med dette setning, det kommer til hasj 434 00:21:13,570 --> 00:21:17,180 annerledes hvis jeg hash password1 med et annet punkt. 435 00:21:17,180 --> 00:21:21,670 Det liksom gir den et sted til starte for hashing å begynne. 436 00:21:21,670 --> 00:21:25,970 Så det er mye vanskeligere å beregne, men du kan likevel beregne det, spesielt 437 00:21:25,970 --> 00:21:26,830 hvis du bruker en dårlig salt. 438 00:21:26,830 --> 00:21:29,650 >> Folk har allerede også funnet ut vanlige salter og funnet ut 439 00:21:29,650 --> 00:21:31,500 hva det er. 440 00:21:31,500 --> 00:21:34,980 Tilfeldige salter er mye bedre, men den beste måten er å bruke 441 00:21:34,980 --> 00:21:38,160 noe som heter krypten. 442 00:21:38,160 --> 00:21:40,480 Og hva krypten lar deg do - slik at disse funksjonene 443 00:21:40,480 --> 00:21:41,820 allerede bygget for deg. 444 00:21:41,820 --> 00:21:44,910 Mange glemmer det, eller de glemmer å bruke det. 445 00:21:44,910 --> 00:21:54,520 Men hvis jeg ser opp krypten PHP, krypten allerede returnerer en hash strengen for meg. 446 00:21:54,520 --> 00:21:58,790 Og det faktisk salter den mange ganger og hashes det mange ganger. 447 00:21:58,790 --> 00:22:00,070 >> Så vi trenger ikke å gjøre dette. 448 00:22:00,070 --> 00:22:04,790 Så alt du trenger å gjøre er send det inn i krypten. 449 00:22:04,790 --> 00:22:08,170 Og det vil skape en stor hash uten at du trenger å bekymre deg for salt 450 00:22:08,170 --> 00:22:08,990 eller noe. 451 00:22:08,990 --> 00:22:12,000 Fordi hvis du skulle salt det, må du å huske hva salt du brukte 452 00:22:12,000 --> 00:22:13,800 fordi hvis ikke, kan du ikke få passord tilbake uten 453 00:22:13,800 --> 00:22:15,760 salt som du brukte. 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 identifiserende informasjon. 457 00:22:23,150 --> 00:22:26,730 Så personnummer, kredittkort - det er ganske åpenbart. 458 00:22:26,730 --> 00:22:31,880 Men noen ganger folk glemmer hvordan det verkene er, hvor mye informasjon trenger du 459 00:22:31,880 --> 00:22:35,690 faktisk trenger å finne noen en person? 460 00:22:35,690 --> 00:22:37,740 Noen gjorde en studie om dette en vei tilbake. 461 00:22:37,740 --> 00:22:40,870 Og det var som, hvis du har et fullt navn, kan du ikke finne 462 00:22:40,870 --> 00:22:41,610 noen som enkelt. 463 00:22:41,610 --> 00:22:43,900 Men hva hvis du har et fullt navn og deres fødselsdato? 464 00:22:43,900 --> 00:22:47,770 Er det nok til å identifisere noen spesielt? 465 00:22:47,770 --> 00:22:52,760 >> Hva hvis du har deres navn og gateadressen som de bor på? 466 00:22:52,760 --> 00:22:55,110 Er det nok å finne noen? 467 00:22:55,110 --> 00:23:02,490 Og det er når de stiller spørsmål, hva er personlig identifiserbar informasjon, og 468 00:23:02,490 --> 00:23:05,360 hva skal du bry deg om ikke gi bort? 469 00:23:05,360 --> 00:23:08,770 Hvis du gir fra deg personlig identifiserbar informasjon som noen gir deg, 470 00:23:08,770 --> 00:23:11,420 du potensielt kan få stevnet. 471 00:23:11,420 --> 00:23:12,610 Og vi definitivt ikke ønsker det. 472 00:23:12,610 --> 00:23:14,955 >> Så når du setter ditt nettsted ut, og du har en veldig kul 473 00:23:14,955 --> 00:23:17,230 design, forhåpentligvis du har gjort en kjempeflott endelige prosjektet. 474 00:23:17,230 --> 00:23:18,370 Noen får lyst til å lagt det ut. 475 00:23:18,370 --> 00:23:21,420 Du ønsker å være sikker på at uansett hva du tar fra brukeren, hvis det er 476 00:23:21,420 --> 00:23:25,310 personlig identifiserbar informasjon, du ønsker å sørge for at du blir virkelig 477 00:23:25,310 --> 00:23:26,560 forsiktig med det. 478 00:23:26,560 --> 00:23:29,670 479 00:23:29,670 --> 00:23:31,080 >> Shell injeksjon. 480 00:23:31,080 --> 00:23:31,350 OK. 481 00:23:31,350 --> 00:23:37,590 Shell-injeksjon kan inntrengeren til få tilgang til din faktiske kommandolinje 482 00:23:37,590 --> 00:23:39,660 på serveren din. 483 00:23:39,660 --> 00:23:44,060 Og så er han i stand til å kjøre kode at du ikke kan kontrollere. 484 00:23:44,060 --> 00:23:49,560 La oss ta et eksempel på dette vakker streng her. 485 00:23:49,560 --> 00:23:55,570 Hvis vi går inn på nettsiden igjen, jeg kommer til å gå inn kode injeksjon. 486 00:23:55,570 --> 00:23:58,910 Så hva dette betyr er - 487 00:23:58,910 --> 00:24:00,420 det er også det vi var se på før. 488 00:24:00,420 --> 00:24:11,200 Vi lar brukeren sette i uansett han ønsker, og det vil skrive ut 489 00:24:11,200 --> 00:24:12,220 hva du vil. 490 00:24:12,220 --> 00:24:13,890 >> Så jeg kommer til å sette en samtale. 491 00:24:13,890 --> 00:24:15,540 Hva dette er - 492 00:24:15,540 --> 00:24:16,940 det vil begynne ved å lenke sammen. 493 00:24:16,940 --> 00:24:19,520 Så det vil la meg kjøre uansett kommandoen personens løping 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 kjører en systemkommando. 496 00:24:23,980 --> 00:24:27,310 Og disse siste strengene er - husk hva jeg snakket med dere om, 497 00:24:27,310 --> 00:24:31,725 mens du har å kode den i en URL-metoden. 498 00:24:31,725 --> 00:24:35,010 499 00:24:35,010 --> 00:24:36,992 Hvis jeg kjører dette nå - 500 00:24:36,992 --> 00:24:39,150 Jeg skal vise deg over her - 501 00:24:39,150 --> 00:24:41,100 vil du se at jeg endte opp med å kjøre en kommando. 502 00:24:41,100 --> 00:24:45,700 503 00:24:45,700 --> 00:24:49,320 >> Dette er faktisk selve serveren at nettstedet mitt kjører på. 504 00:24:49,320 --> 00:24:55,840 505 00:24:55,840 --> 00:24:58,510 Så vi ikke ønsker det, fordi jeg kan kjøre - 506 00:24:58,510 --> 00:25:00,320 denne serveren er ikke min. 507 00:25:00,320 --> 00:25:04,030 Så jeg ønsker ikke å rote opp sin søster, Marcus server. 508 00:25:04,030 --> 00:25:07,470 Men du kan kjøre flere kommandoer som er farlig. 509 00:25:07,470 --> 00:25:11,885 Og potensielt, kan du slette filer, fjerne kataloger. 510 00:25:11,885 --> 00:25:14,390 511 00:25:14,390 --> 00:25:17,970 Jeg kan fjerne en bestemt katalog hvis Jeg ville, men jeg ønsker ikke 512 00:25:17,970 --> 00:25:19,530 å gjø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 lot meg låne hans server. 515 00:25:21,470 --> 00:25:24,620 Så jeg kommer til å la ham off på god en. 516 00:25:24,620 --> 00:25:32,280 >> Så det vi ikke ønsker å bruke - vi gjør ikke ønsker å bruke eval eller system. 517 00:25:32,280 --> 00:25:34,755 Eval eller system tillater oss å gjøre disse systemkall. 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 System betyr hva jeg løp. 521 00:25:40,790 --> 00:25:42,490 Det drives noe i systemet. 522 00:25:42,490 --> 00:25:46,730 Men vi kan forby disse tingene i PHP, slik at vi ikke bruker dem. 523 00:25:46,730 --> 00:25:47,400 Og filopplasting. 524 00:25:47,400 --> 00:25:49,180 Jeg hadde tenkt til å gjøre en kjempe ting med filopplasting. 525 00:25:49,180 --> 00:25:52,740 Men som jeg fortalte dere, min fil opplasting ting ikke fungerer. 526 00:25:52,740 --> 00:25:54,590 Hvis jeg skulle laste opp en fil akkurat nå - 527 00:25:54,590 --> 00:25:57,120 528 00:25:57,120 --> 00:26:00,830 hvis jeg skulle laste opp en fil, og det er et bilde - 529 00:26:00,830 --> 00:26:03,180 du har en opplasting ting det er et bilde. 530 00:26:03,180 --> 00:26:03,660 Det er fint. 531 00:26:03,660 --> 00:26:04,280 Ingenting skjer. 532 00:26:04,280 --> 00:26:10,840 >> Men hvis du har en opplasting fil, for eksempel, og brukeren faktisk opplastninger 533 00:26:10,840 --> 00:26:19,220 en PHP-fil eller en exe fil eller noe sånn, så du kan potensielt 534 00:26:19,220 --> 00:26:19,740 har et problem. 535 00:26:19,740 --> 00:26:21,390 Dette var i arbeid før. 536 00:26:21,390 --> 00:26:25,202 Dessverre for meg, det er ikke fungerer lenger. 537 00:26:25,202 --> 00:26:30,230 Hvis jeg for eksempel laste opp denne filen, er jeg ikke får tillatelse til å laste opp 538 00:26:30,230 --> 00:26:33,400 filen på grunn av serveren ikke å være mine. 539 00:26:33,400 --> 00:26:38,670 Så fyren er virkelig smart. 540 00:26:38,670 --> 00:26:39,610 >> Så vi ikke vil - 541 00:26:39,610 --> 00:26:40,130 Jeg kommer til å vise dere - 542 00:26:40,130 --> 00:26:41,840 OK, dette er noen virkelig kule verktøy. 543 00:26:41,840 --> 00:26:45,100 Så disse - 544 00:26:45,100 --> 00:26:47,715 gå inn - hvis dere har Firefox - forhåpentligvis du gjør. 545 00:26:47,715 --> 00:26:54,260 Det er to add-ons som kalles SQL Injiser Me and Cross-Site Script Me. 546 00:26:54,260 --> 00:26:56,870 De åpner opp så lite side stripene på sidene. 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å hva den gjør er det ser ut for alle skjemaene som - 549 00:27:04,210 --> 00:27:07,220 550 00:27:07,220 --> 00:27:08,760 forhåpentligvis, jeg vil ikke få i trøbbel for dette. 551 00:27:08,760 --> 00:27:09,190 >> Men OK. 552 00:27:09,190 --> 00:27:12,600 Her er pin-systemet. 553 00:27:12,600 --> 00:27:18,946 Så når jeg begynner å lete etter hull i systemet, er det første jeg gjør 554 00:27:18,946 --> 00:27:21,820 åpne opp denne vakre lille Verktøyet på siden. 555 00:27:21,820 --> 00:27:24,160 Og jeg kommer til å teste skjemaer med auto-angrep. 556 00:27:24,160 --> 00:27:28,510 Og så hva dette betyr er det vil sakte åpne opp en haug med nettlesere. 557 00:27:28,510 --> 00:27:29,930 Her er en haug med nettlesere. 558 00:27:29,930 --> 00:27:33,320 Og det prøver hver enkelt kombinasjon av cross-site scripting 559 00:27:33,320 --> 00:27:37,380 at det muligens er, hvis du ser på siden. 560 00:27:37,380 --> 00:27:42,080 >> Og det vil gi meg et resultat liksom hva svaret er. 561 00:27:42,080 --> 00:27:42,860 Alle passere. 562 00:27:42,860 --> 00:27:43,910 Selvsagt de alle passerer. 563 00:27:43,910 --> 00:27:46,190 Jeg mener, de er virkelig smart folk der oppe. 564 00:27:46,190 --> 00:27:48,010 Men hvis jeg skulle kjøre - 565 00:27:48,010 --> 00:27:52,050 Jeg har hatt ganger før når jeg kjører dette på studentenes endelige prosjekter. 566 00:27:52,050 --> 00:27:56,080 Jeg rett og slett kjøre SQL Sprøyt meg med alle forskjellige angrep. 567 00:27:56,080 --> 00:28:00,080 Og det prøver å SQL injisere denne pinnen server. 568 00:28:00,080 --> 00:28:03,590 Så hvis vi bla nedover, for eksempel, sier det - 569 00:28:03,590 --> 00:28:04,960 dette er bra hvis den returnerer. 570 00:28:04,960 --> 00:28:08,250 >> Så det testet noen visse verdier. 571 00:28:08,250 --> 00:28:11,170 Og serveren returnerte kode som var negativ. 572 00:28:11,170 --> 00:28:11,780 Fjern midlertidig. 573 00:28:11,780 --> 00:28:13,030 Dette er bra. 574 00:28:13,030 --> 00:28:17,050 575 00:28:17,050 --> 00:28:20,750 Den forsøkte alle disse testene. 576 00:28:20,750 --> 00:28:21,790 Så du kan bare kjøre - 577 00:28:21,790 --> 00:28:27,860 Jeg skulle ønske jeg kunne finne en nettside real rask som ville la meg - 578 00:28:27,860 --> 00:28:29,110 kanskje CS50 butikken. 579 00:28:29,110 --> 00:28:43,890 580 00:28:43,890 --> 00:28:45,711 >> Wow, dette kommer til å ta altfor lang. 581 00:28:45,711 --> 00:28:53,090 582 00:28:53,090 --> 00:28:55,130 Jeg skal la den første testen ikke ferdig riktig. 583 00:28:55,130 --> 00:28:57,330 Så det har klaget. 584 00:28:57,330 --> 00:28:58,470 Så disse er tre ting. 585 00:28:58,470 --> 00:29:00,430 Disse verktøyene er gratis. 586 00:29:00,430 --> 00:29:03,960 Du kan laste dem ned og kjøre dem på nettstedet ditt, og det vil fortelle deg om 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 noe lignende. 589 00:29:07,900 --> 00:29:12,230 590 00:29:12,230 --> 00:29:14,500 Jeg er liksom rote opp. 591 00:29:14,500 --> 00:29:15,550 >> Hva er viktig - 592 00:29:15,550 --> 00:29:17,900 OK, så aldri stole på brukeren. 593 00:29:17,900 --> 00:29:21,920 Uansett hva de bruker innganger til deg, gjør sikker på at du rense den, du rense den, 594 00:29:21,920 --> 00:29:25,300 du se etter de riktige tingene, at det er å gi deg det du 595 00:29:25,300 --> 00:29:28,240 vil at han skal gi deg. 596 00:29:28,240 --> 00:29:32,460 Alltid være oppdatert på hva som rammer at du faktisk bruker. 597 00:29:32,460 --> 00:29:34,630 Hvis du bruker noe sånt som bootstrap - 598 00:29:34,630 --> 00:29:36,340 Jeg vet at dere kommer til å bruke bootstrap fordi han kommer til å gå 599 00:29:36,340 --> 00:29:38,140 løpet av dette snart i klassen - 600 00:29:38,140 --> 00:29:43,120 og Wordpress eller noe sånt, normalt dette kunne bli hacket. 601 00:29:43,120 --> 00:29:44,770 >> Og da har du ikke engang vet. 602 00:29:44,770 --> 00:29:45,800 Du bare kjører ditt nettsted. 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 veldig tidlig. 606 00:29:54,000 --> 00:29:55,770 Men jeg ønsker å takke Pentest Labs. 607 00:29:55,770 --> 00:29:58,140 Jeg skal vise dere noe kalt Pentest Labs. 608 00:29:58,140 --> 00:30:05,000 Hvis dere er virkelig interessert i hva sikkerhet egentlig er, er det en 609 00:30:05,000 --> 00:30:07,300 nettside som heter Pentest Labs hvis dere går til det akkurat nå. 610 00:30:07,300 --> 00:30:10,730 Oh, vel, det er ikke det. 611 00:30:10,730 --> 00:30:12,030 Jeg kommer bare til å kjøre det som dette. 612 00:30:12,030 --> 00:30:14,400 Google forteller meg svaret. 613 00:30:14,400 --> 00:30:16,590 >> OK. 614 00:30:16,590 --> 00:30:19,030 Og det lærer bruker du - så det sier, lære web penetrasjon 615 00:30:19,030 --> 00:30:21,060 teste den rette måten. 616 00:30:21,060 --> 00:30:23,650 Den lærer deg - 617 00:30:23,650 --> 00:30:25,150 forhåpentligvis, du er en etisk person. 618 00:30:25,150 --> 00:30:29,200 Men det lærer deg hvordan du kan se på hvordan du kan få inne nettsteder. 619 00:30:29,200 --> 00:30:31,130 Og hvis du lære hvordan du kan få inne nettsteder, kan du lære hvordan du 620 00:30:31,130 --> 00:30:34,960 beskytte deg fra å få inne nettsteder. 621 00:30:34,960 --> 00:30:39,100 La meg zoome inn fordi kanskje dere ikke ser på denne retten. 622 00:30:39,100 --> 00:30:46,350 >> Fra SQL-injeksjon til Shell, så liksom hvordan jeg kan få fra SQL 623 00:30:46,350 --> 00:30:48,530 injeksjon til Shell. 624 00:30:48,530 --> 00:30:53,890 Og du laste ned denne virtuelle maskinen. 625 00:30:53,890 --> 00:30:55,690 Og den virtuelle maskinen allerede kommer med nettsiden som du er 626 00:30:55,690 --> 00:30:56,780 kommer til å prøve den på. 627 00:30:56,780 --> 00:30:58,030 Du laster ned denne PDF. 628 00:30:58,030 --> 00:31:03,610 629 00:31:03,610 --> 00:31:08,370 Og det vil vise deg linje for linje hva du trenger å gjøre, hva du sjekke. 630 00:31:08,370 --> 00:31:14,560 Dette er hva en angriper faktisk gjør for å få inne en nettside. 631 00:31:14,560 --> 00:31:15,750 >> Og noen av disse tingene er komplisert. 632 00:31:15,750 --> 00:31:17,520 Jeg skulle ønske jeg kunne gå over mer ting med dere. 633 00:31:17,520 --> 00:31:21,090 Men jeg er redd for at dere har egentlig ikke - 634 00:31:21,090 --> 00:31:23,090 dette er hva jeg gikk over med dere, web tester 635 00:31:23,090 --> 00:31:26,830 for penetrasjonstesting. 636 00:31:26,830 --> 00:31:33,540 Vet egentlig ikke vet hva SQL er og hva - 637 00:31:33,540 --> 00:31:35,960 Carl Jacksons seminar er awesome også. 638 00:31:35,960 --> 00:31:37,360 Dere vet ikke liksom av hva dette er. 639 00:31:37,360 --> 00:31:39,450 Men hvis du går til dette nettstedet, og du laste ned disse tutorials og disse 640 00:31:39,450 --> 00:31:43,290 PDF-filer, kan du ta en titt på liksom hva området sikkerhet virkelig 641 00:31:43,290 --> 00:31:46,940 i penetrasjonstesting, se hvordan du kan få inne nettsteder og beskytte 642 00:31:46,940 --> 00:31:48,020 selv fra det. 643 00:31:48,020 --> 00:31:56,360 >> Så hvis jeg gjør en super rask oversikt, det vil bli forebygge cross-site scripting. 644 00:31:56,360 --> 00:32:00,160 Du ønsker å bruke htmlspecialchars hver gang brukeren innganger noe. 645 00:32:00,160 --> 00:32:01,580 Hindre SQL-injeksjon. 646 00:32:01,580 --> 00:32:04,510 Hvis du gjør det, er du allerede bedre enn Harvard var 647 00:32:04,510 --> 00:32:06,530 når de fikk brutt. 648 00:32:06,530 --> 00:32:10,510 Og sørg for at passordene dine er ikke i klartekst. 649 00:32:10,510 --> 00:32:16,220 Pass på at du ikke bare én måte hash dem, men at du bruker krypten, PHP 650 00:32:16,220 --> 00:32:18,670 funksjon som jeg viste dere. 651 00:32:18,670 --> 00:32:20,060 På den måten, bør du være god. 652 00:32:20,060 --> 00:32:25,830 >> Også, hvis vennene dine la deg, løpe SQL Sprøyt meg på sine nettsider. 653 00:32:25,830 --> 00:32:28,140 Kjør cross-site scripting på sine nettsider. 654 00:32:28,140 --> 00:32:33,720 Og du vil se mye av disse nettstedene har massevis av sårbarheter. 655 00:32:33,720 --> 00:32:40,400 Det er utrolig hvor mye folk glemmer å rense sine databaser eller å gjøre 656 00:32:40,400 --> 00:32:46,340 sikker på hva personens innrykker er ikke skriptkode. 657 00:32:46,340 --> 00:32:47,200 OK. 658 00:32:47,200 --> 00:32:49,182 Jeg slags endte veldig tidlig. 659 00:32:49,182 --> 00:32:56,510 Men hvis noen har noen spørsmål om noe, kan du skyte meg et spørsmål. 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 >> PUBLIKUM: Jeg vil bare spørre, kan du forklare hvordan filen 663 00:32:59,846 --> 00:33:03,160 laste opp nøyaktig verk. 664 00:33:03,160 --> 00:33:03,480 >> LUCIANO Arango: Yeah. 665 00:33:03,480 --> 00:33:06,350 Så la meg vise deg filen laste opp virkelig rask. 666 00:33:06,350 --> 00:33:11,300 Så filopplasting - 667 00:33:11,300 --> 00:33:14,500 problemet vidd filopplasting akkurat nå er at - 668 00:33:14,500 --> 00:33:18,541 Jeg kommer til å åpne kode så dere se koden bak kulissene. 669 00:33:18,541 --> 00:33:22,390 670 00:33:22,390 --> 00:33:24,305 Og det er å laste opp. 671 00:33:24,305 --> 00:33:28,030 672 00:33:28,030 --> 00:33:31,560 Her er en kode for filopplasteren. 673 00:33:31,560 --> 00:33:33,980 >> Vi prøver å gå inn i dette katalog over her. 674 00:33:33,980 --> 00:33:37,380 675 00:33:37,380 --> 00:33:44,880 Og vi prøver å, når vi innspill fil, isset fil - så når det er en 676 00:33:44,880 --> 00:33:50,900 fil i FILES, det bildet, da vi prøver å flytte den her. 677 00:33:50,900 --> 00:33:51,910 Vi hente filen over her. 678 00:33:51,910 --> 00:33:58,350 Metoden er POST, type, bilde, fil. 679 00:33:58,350 --> 00:33:59,630 Og vi sender denne filen. 680 00:33:59,630 --> 00:34:03,910 Og så når vi får det, så når fil har et bilde, prøver vi å sende den 681 00:34:03,910 --> 00:34:05,060 til denne katalogen. 682 00:34:05,060 --> 00:34:09,814 >> Problemet er at nettsiden er ikke la meg gå til denne katalogen, 683 00:34:09,814 --> 00:34:12,239 fordi det vil ikke ha meg til å gå tilbake. 684 00:34:12,239 --> 00:34:13,489 Det vil ikke ha meg til å gå - 685 00:34:13,489 --> 00:34:15,620 686 00:34:15,620 --> 00:34:17,070 Jeg må gå - så her er opplasting. 687 00:34:17,070 --> 00:34:17,639 Her er bildene. 688 00:34:17,639 --> 00:34:21,780 Jeg må gå hele veien tilbake til begynner og sette den inn der og da 689 00:34:21,780 --> 00:34:23,820 gå og sette det inn i katalogen. 690 00:34:23,820 --> 00:34:30,000 Så hvis jeg kjører et terminalvindu, og jeg ønsket å flytte en fil - 691 00:34:30,000 --> 00:34:30,409 [Uhørbart] 692 00:34:30,409 --> 00:34:32,159 kan se det. 693 00:34:32,159 --> 00:34:37,940 Hvis jeg ønsket å flytte en fil, har jeg å sette filnavnet og deretter 694 00:34:37,940 --> 00:34:40,860 fullstendige banen jeg vil sende den til. 695 00:34:40,860 --> 00:34:45,110 >> Og så serveren er ikke la meg gå tilbake. 696 00:34:45,110 --> 00:34:46,929 Og så det er ikke slik at meg med å få til denne filen. 697 00:34:46,929 --> 00:34:47,670 Men normalt - 698 00:34:47,670 --> 00:34:49,360 så det er en kode for å laste opp en fil. 699 00:34:49,360 --> 00:34:52,260 Så normalt hva som vil skje er at person er ikke sjekker om filen min 700 00:34:52,260 --> 00:34:57,920 slutter med. jpeg, så jeg ønsker å sjekke. 701 00:34:57,920 --> 00:35:00,054 La meg åpne et eksempel for virkelig rask. 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 personen rett - 705 00:35:09,230 --> 00:35:11,980 så eksempel to er å sjekke hvis preg_match - 706 00:35:11,980 --> 00:35:14,180 her er det over her - 707 00:35:14,180 --> 00:35:19,660 å sørge for at slutter med PHP, som er bra. 708 00:35:19,660 --> 00:35:20,580 Dette er bra. 709 00:35:20,580 --> 00:35:22,820 Men det er en virkelig stor Problemet med dette. 710 00:35:22,820 --> 00:35:24,600 Dette er bra. 711 00:35:24,600 --> 00:35:44,190 Men hvis jeg skulle sette en fil som heter myfavoritepicture.php.jpeg, jeg kunne 712 00:35:44,190 --> 00:35:50,060 fortsatt potensielt bli kvitt den jpeg og kjøre it.k At PHP er farlig. 713 00:35:50,060 --> 00:35:53,850 Du ønsker ikke at personen skal kunne å kjøre kode på din nettside. 714 00:35:53,850 --> 00:35:55,750 >> Men så. Jpeg lar det passere. 715 00:35:55,750 --> 00:36:00,720 Ideen er hva du virkelig ønsker å gjøre ikke ta filer, A. Men, OK, hva 716 00:36:00,720 --> 00:36:07,500 du virkelig ønsker å gjøre er å sørge for at du leser over hele verden. 717 00:36:07,500 --> 00:36:08,720 Og det er ingenting. Php i det. 718 00:36:08,720 --> 00:36:10,500 Det er ingen. Php i hele filnavnet. 719 00:36:10,500 --> 00:36:12,780 >> PUBLIKUM: Men du kunne satt. jpeg på slutten. 720 00:36:12,780 --> 00:36:15,830 Serverne fortsatt kjøre koden. 721 00:36:15,830 --> 00:36:16,870 >> LUCIANO Arango: Nei, det vil det ikke kjøre i begynnelsen. 722 00:36:16,870 --> 00:36:22,310 Du må gå tilbake og prøve for å se om du kan - 723 00:36:22,310 --> 00:36:24,210 >> PUBLIKUM: Så vi må - 724 00:36:24,210 --> 00:36:26,020 OK, bare et annet sett som innebærer - 725 00:36:26,020 --> 00:36:26,936 >> LUCIANO Arango: Yeah. 726 00:36:26,936 --> 00:36:29,230 >> PUBLIKUM: OK. 727 00:36:29,230 --> 00:36:31,486 >> LUCIANO Arango: Yeah. 728 00:36:31,486 --> 00:36:31,900 OK. 729 00:36:31,900 --> 00:36:32,865 Eventuelle andre spørsmål? 730 00:36:32,865 --> 00:36:33,180 OK. 731 00:36:33,180 --> 00:36:37,350 Jeg kommer til å forlate dette opp og sortere av prøver for å se om dere kan - 732 00:36:37,350 --> 00:36:40,490 de andre er litt mer kompliserte, fordi de krever mye 733 00:36:40,490 --> 00:36:44,050 mer kunnskap om SQL enn bare begynner kunnskaper om web SQL er og 734 00:36:44,050 --> 00:36:47,010 hva Javascript er. 735 00:36:47,010 --> 00:36:49,730 Men jeg kommer til å prøve å holde dette opp, og forhåpentligvis dere vil lære 736 00:36:49,730 --> 00:36:53,230 om dette og prøve å ta en titt på hva du kan gjøre og hvor mange eksempler 737 00:36:53,230 --> 00:36:54,420 du kan komme gjennom. 738 00:36:54,420 --> 00:36:56,020 >> Noen som har noen andre spørsmål om det? 739 00:36:56,020 --> 00:36:59,387 740 00:36:59,387 --> 00:37:00,350 Gå fremover. 741 00:37:00,350 --> 00:37:01,170 Ja, skyt, skyt. 742 00:37:01,170 --> 00:37:01,580 Ja, fortsett. 743 00:37:01,580 --> 00:37:01,850 Gå fremover. 744 00:37:01,850 --> 00:37:02,310 >> PUBLIKUM: OK. 745 00:37:02,310 --> 00:37:08,870 Så jeg hørte om hvordan magi Quotes er ikke sikre nok. 746 00:37:08,870 --> 00:37:09,280 >> LUCIANO Arango: Hva - 747 00:37:09,280 --> 00:37:10,110 Magiske Quotes? 748 00:37:10,110 --> 00:37:10,595 >> PUBLIKUM: Yeah. 749 00:37:10,595 --> 00:37:15,445 Så det legger - så når du innspill noe, legger det alltid sitater. 750 00:37:15,445 --> 00:37:15,930 >> LUCIANO Arango: Yeah. 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 >> PUBLIKUM: Og da jeg selv som fungerte, men da jeg søkte det opp. 754 00:37:19,113 --> 00:37:21,648 Og det sa det er ikke bra. 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: Yeah. 757 00:37:23,360 --> 00:37:26,240 >> PUBLIKUM: Ikke bruk Magiske Quotes, fordi det er ikke sikkert. 758 00:37:26,240 --> 00:37:26,360 >> LUCIANO Arango: OK. 759 00:37:26,360 --> 00:37:31,735 Så Magiske Quotes er når du setter SQL og det legger allerede sitatet for deg. 760 00:37:31,735 --> 00:37:33,520 >> PUBLIKUM: Det legger alltid sitater rundt hva du putter i. 761 00:37:33,520 --> 00:37:34,210 >> LUCIANO Arango: Yeah. 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 skal ta en titt på - 764 00:37:38,445 --> 00:37:41,390 >> PUBLIKUM: Hvordan det erverve SQL-setningen? 765 00:37:41,390 --> 00:37:44,690 Eller jeg antar det kan være like tilbud velge. 766 00:37:44,690 --> 00:37:49,030 >> LUCIANO Arango: Ja, trenger du gode sitater for SQL. 767 00:37:49,030 --> 00:37:52,900 >> PUBLIKUM: Nei, men serveren gjør det for deg. 768 00:37:52,900 --> 00:37:54,460 >> LUCIANO Arango: Disse små sitater akkurat her, disse små sitater? 769 00:37:54,460 --> 00:37:55,670 >> PUBLIKUM: Yeah. 770 00:37:55,670 --> 00:37:56,450 >> LUCIANO Arango: Yeah. 771 00:37:56,450 --> 00:37:59,860 Problemet er at du kan kommentere ut den siste - 772 00:37:59,860 --> 00:38:05,770 OK, så hva jeg kan gjøre er at jeg kan kommentere ut - så la oss ta en titt på - la meg 773 00:38:05,770 --> 00:38:07,920 åpne en tekstredigering fil. 774 00:38:07,920 --> 00:38:09,610 La meg bare redigere dette akkurat 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 dere se at klart? 778 00:38:23,710 --> 00:38:29,730 Det jeg kan gjøre er at jeg kan kommentere ut den siste. 779 00:38:29,730 --> 00:38:32,190 Dette vil kommentere ut den siste. 780 00:38:32,190 --> 00:38:36,760 Og så vil jeg sette en her, legger all ondsinnet ting her. 781 00:38:36,760 --> 00:38:39,840 782 00:38:39,840 --> 00:38:42,630 >> Slik at brukeren er faktisk innrykker, ikke sant? 783 00:38:42,630 --> 00:38:45,230 Brukeren er ikke å legge inn de tingene, ikke sant? 784 00:38:45,230 --> 00:38:47,430 Dette er hva jeg kommer til innspill som personen prøver å komme inn. 785 00:38:47,430 --> 00:38:49,430 Jeg kommer til å sette i - 786 00:38:49,430 --> 00:38:59,290 787 00:38:59,290 --> 00:39:00,180 det er ett anførselstegn. 788 00:39:00,180 --> 00:39:01,760 Det er bare snirklete ved en feiltakelse. 789 00:39:01,760 --> 00:39:15,080 790 00:39:15,080 --> 00:39:19,400 Og så hva koden er tenkt å gjøre - 791 00:39:19,400 --> 00:39:20,190 sorry, jeg kommer til å ta ut dette. 792 00:39:20,190 --> 00:39:22,170 Hva koden skal gjøre er det kommer til å legge 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 å legge den siste anførselstegn også. 795 00:39:26,040 --> 00:39:29,350 796 00:39:29,350 --> 00:39:33,270 >> Og det er også tenkt å legge den siste, siste anførselstegn. 797 00:39:33,270 --> 00:39:37,380 Men jeg kommenterer disse sitat markerer seg, slik at de ikke kjøres. 798 00:39:37,380 --> 00:39:41,440 Og jeg etterbehandling dette sitatet markere over her. 799 00:39:41,440 --> 00:39:42,290 Forstår du? 800 00:39:42,290 --> 00:39:43,750 Er du mistet? 801 00:39:43,750 --> 00:39:45,880 Jeg kan kommentere den siste sitatet mark, og ta vare på den 802 00:39:45,880 --> 00:39:46,680 første anførselstegn. 803 00:39:46,680 --> 00:39:47,350 >> PUBLIKUM: Og akkurat ferdig den første. 804 00:39:47,350 --> 00:39:47,480 >> LUCIANO Arango: Yeah. 805 00:39:47,480 --> 00:39:48,400 Og nettopp ferdig med den første. 806 00:39:48,400 --> 00:39:48,790 Ja, det er riktig. 807 00:39:48,790 --> 00:39:50,800 Det er hva jeg kan gjøre. 808 00:39:50,800 --> 00:39:51,890 Yeah. 809 00:39:51,890 --> 00:39:52,980 Eventuelle andre spørsmål som det? 810 00:39:52,980 --> 00:39:54,230 Det er et stort spørsmål. 811 00:39:54,230 --> 00:39:56,960 812 00:39:56,960 --> 00:39:59,790 Nei, ja, kanskje. 813 00:39:59,790 --> 00:40:06,150 Forhåpentligvis vil dere liksom gjøre mer fornuftig når du studerer SQL og 814 00:40:06,150 --> 00:40:06,650 ting som det. 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 verktøyene i ur. 817 00:40:10,340 --> 00:40:12,760 Beklager, disse verktøyene enn her. 818 00:40:12,760 --> 00:40:14,200 Disse verktøyene er stor. 819 00:40:14,200 --> 00:40:17,190 Hvis noen har noen spørsmål, du kan også sende meg. 820 00:40:17,190 --> 00:40:19,020 Dette er min vanlige e-post. 821 00:40:19,020 --> 00:40:25,015 Og dette er mitt arbeid e-post, som er når jeg jobber på SEAS. 822 00:40:25,015 --> 00:40:26,040 >> OK, takk. 823 00:40:26,040 --> 00:40:26,740 Takk, gutter. 824 00:40:26,740 --> 00:40:27,860 Du er flink til å gå. 825 00:40:27,860 --> 00:40:28,830 Du trenger ikke å bo her. 826 00:40:28,830 --> 00:40:29,570 Ikke klapp. 827 00:40:29,570 --> 00:40:30,170 Det er rart. 828 00:40:30,170 --> 00:40:31,420 OK, takk, folkens. 829 00:40:31,420 --> 00:40:32,320