1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:10,300 >> LUCIANO ARANGO: OK, pessoal. 3 00:00:10,300 --> 00:00:11,550 Meu nome é Luciano Arango. 4 00:00:11,550 --> 00:00:13,915 Eu sou um estudante de segundo ano em Adams House. 5 00:00:13,915 --> 00:00:17,550 E nós vamos estar falando sobre segurança web defesa ativa. 6 00:00:17,550 --> 00:00:24,220 Então, eu trabalho para o Gabinete de Informação Segurança na SEAS. 7 00:00:24,220 --> 00:00:28,670 E durante o verão, eu internado em SeguraTec, que era uma informação 8 00:00:28,670 --> 00:00:31,310 empresa de segurança que serviu para o Banco de Columbia. 9 00:00:31,310 --> 00:00:34,740 Isso é principalmente onde eu aprendi o que eu aprendi até agora. 10 00:00:34,740 --> 00:00:37,990 >> E assim algum do material que estamos vai passar por cima hoje, não temos 11 00:00:37,990 --> 00:00:39,670 realmente falado em sala de aula. 12 00:00:39,670 --> 00:00:40,410 Mas vamos em breve. 13 00:00:40,410 --> 00:00:42,360 Vai ser como SQL, JavaScript. 14 00:00:42,360 --> 00:00:44,870 E nós realmente não tenho ido sobre ele. 15 00:00:44,870 --> 00:00:47,730 Assim eu posso classificar de vôo por ele, e você pode não saber algumas coisas. 16 00:00:47,730 --> 00:00:48,890 Mas em breve, você vai aprender. 17 00:00:48,890 --> 00:00:52,080 E tudo isso vai fazer sentido. 18 00:00:52,080 --> 00:00:54,010 Também outra coisa - 19 00:00:54,010 --> 00:00:55,780 permanecer ético. 20 00:00:55,780 --> 00:01:00,560 Algumas das coisas que você aprende, você poderia usar de forma não-éticos. 21 00:01:00,560 --> 00:01:01,950 >> Se é seu, definitivamente tentar. 22 00:01:01,950 --> 00:01:04,500 Eu definitivamente motivar vocês para tentar seus próprios servidores, tente 23 00:01:04,500 --> 00:01:05,519 acontecendo dentro deles. 24 00:01:05,519 --> 00:01:08,500 Veja se você consegue penetrar neles, se você pode obter dentro deles. 25 00:01:08,500 --> 00:01:09,560 Mas não de qualquer outra pessoa. 26 00:01:09,560 --> 00:01:12,390 Policiais não gosto muito das piadas e o todo, vamos colocar isso aqui. 27 00:01:12,390 --> 00:01:14,040 Estávamos brincando. 28 00:01:14,040 --> 00:01:15,780 Eles ficam com muita raiva. 29 00:01:15,780 --> 00:01:18,700 >> Cabeça Assim, ao longo deste site. 30 00:01:18,700 --> 00:01:23,560 Eu tenho que abriu aqui. 31 00:01:23,560 --> 00:01:26,780 Este é um site, e tem um monte de exemplos. 32 00:01:26,780 --> 00:01:30,000 O que acontece é que o primeiro exemplo é uma espécie de vai ser muito mais fácil 33 00:01:30,000 --> 00:01:33,470 que o último exemplo, em um sentido que o primeiro exemplo 34 00:01:33,470 --> 00:01:34,970 é completamente inseguro. 35 00:01:34,970 --> 00:01:40,850 E a última é uma espécie do que um pessoa normal segurança web faria. 36 00:01:40,850 --> 00:01:42,760 Mas você ainda pode tipo de contornar isso. 37 00:01:42,760 --> 00:01:44,860 E vamos focar em uma e dois, um e dois exemplos. 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 Vamos começar com o cross-site scripting. 41 00:01:52,780 --> 00:01:56,100 O JavaScript é executado em navegador do cliente. 42 00:01:56,100 --> 00:01:59,980 É uma linguagem de programação que você usa para ser executado no navegador do cliente para 43 00:01:59,980 --> 00:02:04,120 você não tem que atualizar o site e voltar para o servidor. 44 00:02:04,120 --> 00:02:04,940 Você tem que correr. 45 00:02:04,940 --> 00:02:08,870 Por exemplo, o Facebook, você não tem para recarregar o site para novo status 46 00:02:08,870 --> 00:02:09,710 Atualizações para subir. 47 00:02:09,710 --> 00:02:12,170 Ele está usando JavaScript para gerar todas essas coisas. 48 00:02:12,170 --> 00:02:16,290 Assim, podemos injetar JavaScript malicioso para os sites. 49 00:02:16,290 --> 00:02:20,890 E assim, quando enviamos um link para alguém, poderíamos tipo de enviá-lo com 50 00:02:20,890 --> 00:02:23,050 parte do código que nós queremos. 51 00:02:23,050 --> 00:02:26,450 >> Há persistente e não persistente JavaScript - 52 00:02:26,450 --> 00:02:30,640 -cross site persistente e não persistente scripting, quero dizer. 53 00:02:30,640 --> 00:02:33,760 E a diferença é que persistente é JavaScript que será 54 00:02:33,760 --> 00:02:36,060 salvos no site. 55 00:02:36,060 --> 00:02:39,780 E não persistente será JavaScript que realmente vai acontecer apenas uma vez. 56 00:02:39,780 --> 00:02:41,795 Então, vamos olhar um exemplo rapidinho. 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 Então este site, simples, nada acontece aqui. 60 00:02:51,620 --> 00:02:53,070 E vamos tentar inserir algum JavaScript. 61 00:02:53,070 --> 00:02:58,110 Então, a nossa forma de começar a escrever JavaScript é que começamos com o script começando. 62 00:02:58,110 --> 00:03:00,570 E nós fechá-lo com script. 63 00:03:00,570 --> 00:03:03,770 Estamos indo simplesmente para colocar uma mensagem - 64 00:03:03,770 --> 00:03:05,410 Eu vou te mostrar - 65 00:03:05,410 --> 00:03:06,500 alerta. 66 00:03:06,500 --> 00:03:11,150 Alerta é uma função que o JavaScript utiliza para apresentar algo. 67 00:03:11,150 --> 00:03:12,400 Então, vamos tentar isso bem rápido. 68 00:03:12,400 --> 00:03:15,600 69 00:03:15,600 --> 00:03:18,944 Eu estou indo para ir, Olá alerta. 70 00:03:18,944 --> 00:03:20,400 Bem, eu esqueci de colocar - 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 Então, isso é simples. 74 00:03:26,540 --> 00:03:28,730 >> Colocamos JavaScript em um site, e ele veio. 75 00:03:28,730 --> 00:03:31,200 E isso meio que só acontece em nosso site, certo? 76 00:03:31,200 --> 00:03:33,040 Então, parece que não é um problema, certo? 77 00:03:33,040 --> 00:03:34,920 Quero dizer, como você poderia usar esta maliciosa? 78 00:03:34,920 --> 00:03:39,930 Assim, a maneira que os hackers fazem este é realmente simples. 79 00:03:39,930 --> 00:03:40,970 Eles vão agarrá-lo. 80 00:03:40,970 --> 00:03:43,750 Eles podem enviar este link para você. 81 00:03:43,750 --> 00:03:46,780 Se eu vou enviar este link para você agora, e você abri-lo, ele vai 82 00:03:46,780 --> 00:03:51,620 dizer, Olá, dizendo que meu site está dizendo Olá. 83 00:03:51,620 --> 00:03:57,280 >> E por isso, se eu fosse dizer algo um pouco mais inteligente, se eu puxar uma 84 00:03:57,280 --> 00:03:59,880 JavaScript função eu meio de já escreveu - 85 00:03:59,880 --> 00:04:03,940 mas se você olhar para ele, eu vou sobre ele antes que eu escrevi. 86 00:04:03,940 --> 00:04:06,650 Então, nós estamos indo para definir um tempo limite. 87 00:04:06,650 --> 00:04:08,450 Vamos esperar por um par de segundos. 88 00:04:08,450 --> 00:04:13,970 Na verdade, vamos esperar, se Eu não me engano, cinco segundos. 89 00:04:13,970 --> 00:04:15,870 Isso vale em milissegundos. 90 00:04:15,870 --> 00:04:18,640 E então o que vamos fazer é que estamos vai alertar que o logon 91 00:04:18,640 --> 00:04:21,459 expirou a sessão para trás dentro 92 00:04:21,459 --> 00:04:23,990 E nós estamos indo para alterar o local para um local diferente. 93 00:04:23,990 --> 00:04:30,370 94 00:04:30,370 --> 00:04:32,970 >> Então, se eu enviar este site a alguém, eles vão ser 95 00:04:32,970 --> 00:04:34,380 navegando por aí, calma. 96 00:04:34,380 --> 00:04:35,650 Nada está acontecendo. 97 00:04:35,650 --> 00:04:38,550 E em cinco segundos, ele vai quer dizer, o seu login expirou. 98 00:04:38,550 --> 00:04:40,200 Por favor, ligar para trás dentro 99 00:04:40,200 --> 00:04:43,400 Uma vez que clicar em OK, eu vou levá-los para outro site. 100 00:04:43,400 --> 00:04:45,980 Presumivelmente, o site vai ser semelhante ao site que 101 00:04:45,980 --> 00:04:47,280 em que estavam antes. 102 00:04:47,280 --> 00:04:50,770 E eles vão para registrar sua credenciais para o meu site, em vez de 103 00:04:50,770 --> 00:04:51,850 seu site. 104 00:04:51,850 --> 00:04:54,780 >> E para que eu possa enviar pessoas uma enviar e-mail com este link. 105 00:04:54,780 --> 00:04:56,240 Eu digo, oh, aqui está um link. 106 00:04:56,240 --> 00:04:57,290 Este é um banco, por exemplo. 107 00:04:57,290 --> 00:05:01,390 Eu digo, aqui, vá neste link. 108 00:05:01,390 --> 00:05:03,730 E uma vez que enviá-lo, eles são vai estar navegando por aí. 109 00:05:03,730 --> 00:05:07,560 Eu posso esperar por 15 segundos, 20 segundos e em seguida, pop que por favor faça login novamente 110 00:05:07,560 --> 00:05:08,840 assinar novamente. 111 00:05:08,840 --> 00:05:10,120 Vocês podem experimentá-lo com muito mais coisas. 112 00:05:10,120 --> 00:05:13,190 É complicado porque vocês não vi JavaScript, então você pode 113 00:05:13,190 --> 00:05:14,750 não sei algumas funções. 114 00:05:14,750 --> 00:05:18,625 Mas tudo que você tem a fazer é começar com script, acabar com script. 115 00:05:18,625 --> 00:05:22,105 116 00:05:22,105 --> 00:05:25,510 E você pode colocar qualquer coisa no meio. 117 00:05:25,510 --> 00:05:27,350 >> Alerta é uma função, aguarde. 118 00:05:27,350 --> 00:05:29,365 Localização Janela leva você para uma nova localização. 119 00:05:29,365 --> 00:05:31,370 Mas você pode fazer muito mais. 120 00:05:31,370 --> 00:05:32,630 E assim, a idéia é que que tirar isso. 121 00:05:32,630 --> 00:05:39,350 Se eu for a exemplo dois, e eu colocado neste mesmo código, é 122 00:05:39,350 --> 00:05:40,210 Não vai funcionar. 123 00:05:40,210 --> 00:05:43,620 Então está imprimindo tudo fora por causa o que este site originalmente 124 00:05:43,620 --> 00:05:50,350 faz é se eu colocar qualquer coisa aqui, ele vai imprimi-lo aqui. 125 00:05:50,350 --> 00:05:52,390 Portanto, não é a impressão de nada. 126 00:05:52,390 --> 00:05:55,560 Este exemplo é, na verdade, a verificação para ver se o roteiro está lá. 127 00:05:55,560 --> 00:05:57,163 Então, sim, vá em frente. 128 00:05:57,163 --> 00:05:57,606 Pergunte-me. 129 00:05:57,606 --> 00:05:59,560 >> AUDIÊNCIA: não está enviando uma solicitação GET ou POST? 130 00:05:59,560 --> 00:06:00,670 >> LUCIANO ARANGO: Yeah. eles são envio de uma solicitação get. 131 00:06:00,670 --> 00:06:01,350 >> AUDIÊNCIA: É? 132 00:06:01,350 --> 00:06:02,490 >> LUCIANO ARANGO: Yeah. 133 00:06:02,490 --> 00:06:04,030 Também navegadores usam solicitações POST. 134 00:06:04,030 --> 00:06:07,470 Mas eu estou tentando mostrar solicitações GET para que possamos ver o que está 135 00:06:07,470 --> 00:06:10,760 realmente acontecendo. 136 00:06:10,760 --> 00:06:12,880 E assim, se olharmos para o código - por isso ele não está funcionando mais. 137 00:06:12,880 --> 00:06:24,870 E se dermos uma olhada neste código, que vai ser no exemplo dois. 138 00:06:24,870 --> 00:06:29,300 O que esta pessoa está fazendo, a pessoa responsável por este browser - 139 00:06:29,300 --> 00:06:35,370 abrir-se, OK - 140 00:06:35,370 --> 00:06:39,290 está substituindo o script palavra. 141 00:06:39,290 --> 00:06:42,850 Este é PHP, o que vocês poderiam vi um pouco ainda. 142 00:06:42,850 --> 00:06:46,250 >> Ele está apenas substituindo o script de palavra com o nome. 143 00:06:46,250 --> 00:06:50,895 Então, no entanto, se eu ir em frente e basta colocar em - 144 00:06:50,895 --> 00:06:58,520 145 00:06:58,520 --> 00:07:02,360 se eu pegar o meu código de novo, e eu vou modificá-lo um pouco. 146 00:07:02,360 --> 00:07:15,010 Em vez de script, eu vou mudar ele para o script com um capital R. E 147 00:07:15,010 --> 00:07:16,390 vamos ver se esse código funciona. 148 00:07:16,390 --> 00:07:19,090 Então não imprimi-lo, que é um bom sinal. 149 00:07:19,090 --> 00:07:21,990 E espero que em mais de dois segundos, ele vai aparecer. 150 00:07:21,990 --> 00:07:22,820 >> Seu login expirou. 151 00:07:22,820 --> 00:07:23,210 OK. 152 00:07:23,210 --> 00:07:24,460 Está tudo bem. 153 00:07:24,460 --> 00:07:27,670 Assim, a verificação de roteiro pode não necessariamente trabalhar. 154 00:07:27,670 --> 00:07:28,130 A pessoa - 155 00:07:28,130 --> 00:07:32,290 ele também pode buscar por letras maiúsculas script, minúsculas script, caso str 156 00:07:32,290 --> 00:07:34,180 comparar, verifique se eles são os mesmos. 157 00:07:34,180 --> 00:07:38,480 Mas o hacker ainda pode fazer uma espécie do que fizemos em Vigenere quando nos mudamos 158 00:07:38,480 --> 00:07:40,620 personagens de volta um casal, avançar. 159 00:07:40,620 --> 00:07:43,470 E pode descobrir como colocar roteiro voltar lá para que ele possa injetar 160 00:07:43,470 --> 00:07:44,460 que script. 161 00:07:44,460 --> 00:07:50,370 >> Então, o que você quer usar é a htmlspecialchars 162 00:07:50,370 --> 00:07:51,330 proteger o seu website. 163 00:07:51,330 --> 00:07:56,490 E o que isto significa é que faz Certifique-se de que o que você colocar na - 164 00:07:56,490 --> 00:07:59,610 por exemplo, citações ou este superior ou inferior a - 165 00:07:59,610 --> 00:08:04,701 é substituído com algo que não será - 166 00:08:04,701 --> 00:08:05,951 deixe-me aproximar por aqui - 167 00:08:05,951 --> 00:08:08,730 168 00:08:08,730 --> 00:08:09,685 o comercial real. 169 00:08:09,685 --> 00:08:13,420 Ele irá substituir aqueles HTML especial personagens que veremos quando estivermos 170 00:08:13,420 --> 00:08:14,670 falando - 171 00:08:14,670 --> 00:08:18,635 172 00:08:18,635 --> 00:08:20,740 oh, isso vai me levar de volta para - 173 00:08:20,740 --> 00:08:24,220 174 00:08:24,220 --> 00:08:25,380 esses personagens aqui mesmo. 175 00:08:25,380 --> 00:08:28,180 >> Estes significam que algo está chegando. 176 00:08:28,180 --> 00:08:31,570 Para HTML, que suporte a começar nos diz que algo 177 00:08:31,570 --> 00:08:33,299 HTML relacionado está chegando. 178 00:08:33,299 --> 00:08:33,980 E nós queremos nos livrar disso. 179 00:08:33,980 --> 00:08:36,200 Nós não queremos colocar HTML em um website.k Nós não queremos que o usuário seja 180 00:08:36,200 --> 00:08:40,260 capaz de colocar algo em seu site que podem afectar o seu site, como 181 00:08:40,260 --> 00:08:43,480 script ou HTML ou algo parecido. 182 00:08:43,480 --> 00:08:53,090 O que é importante é que você higienizar a entrada do usuário. 183 00:08:53,090 --> 00:08:54,720 >> Assim, os usuários podem entrada de muitas coisas. 184 00:08:54,720 --> 00:08:58,110 Ele pode introduzir um monte de coisas para tentar para enganar o navegador em ainda 185 00:08:58,110 --> 00:08:59,410 executar este código de script. 186 00:08:59,410 --> 00:09:02,870 O que você quer fazer é não apenas olhar para script, mas olhar para tudo 187 00:09:02,870 --> 00:09:04,250 que poderiam ser mal-intencionado. 188 00:09:04,250 --> 00:09:06,800 E htmlspecialchars vai fazer isso para você, então você não tem 189 00:09:06,800 --> 00:09:07,340 se preocupar com isso. 190 00:09:07,340 --> 00:09:12,280 Mas não tente fazer por si mesmo tipo de com seu próprio código. 191 00:09:12,280 --> 00:09:14,055 Está todo mundo claro sobre XSS? 192 00:09:14,055 --> 00:09:14,370 >> OK. 193 00:09:14,370 --> 00:09:16,355 Vamos para a injeção de SQL. 194 00:09:16,355 --> 00:09:21,010 Assim, a injeção de SQL é provavelmente a número um vulnerabilidade 195 00:09:21,010 --> 00:09:22,490 em diferentes websites. 196 00:09:22,490 --> 00:09:24,350 Quer dizer, um bom exemplo - 197 00:09:24,350 --> 00:09:27,350 Eu estava pesquisando mais distante por isso. 198 00:09:27,350 --> 00:09:34,430 E eu encontrei este artigo incrível, onde Vi que Harvard foi violado, 199 00:09:34,430 --> 00:09:35,390 foi cortado. 200 00:09:35,390 --> 00:09:37,370 E eu estava pensando, bem, como eles fariam isso? 201 00:09:37,370 --> 00:09:41,660 Harvard é a mais impressionante, a maioria garantir universidade nunca. 202 00:09:41,660 --> 00:09:43,850 Certo? 203 00:09:43,850 --> 00:09:45,410 Bem, para violar os servidores, os hackers usaram uma 204 00:09:45,410 --> 00:09:47,710 técnica chamada injeção de SQL. 205 00:09:47,710 --> 00:09:50,250 >> Então, isso acontece no dia-a-dia. 206 00:09:50,250 --> 00:09:53,590 As pessoas se esquecem de ter em conta para injeção de SQL. 207 00:09:53,590 --> 00:09:54,930 Harvard faz. 208 00:09:54,930 --> 00:10:00,050 Eu acho que ele diz aqui, Princeton, Stanford, Cornell. 209 00:10:00,050 --> 00:10:03,550 Assim como nós - então o que é esse SQL injeção que está trazendo tudo isso 210 00:10:03,550 --> 00:10:05,668 pessoas para baixo? 211 00:10:05,668 --> 00:10:08,010 OK. 212 00:10:08,010 --> 00:10:12,090 Então SQL é uma linguagem de programação que que usamos para acessar bancos de dados. 213 00:10:12,090 --> 00:10:14,560 O que nós fazemos é selecionar - 214 00:10:14,560 --> 00:10:18,510 então o que esta lê agora é selecionar tudo a partir da tabela. 215 00:10:18,510 --> 00:10:22,640 >> SQL, ele muda para esses bancos de dados que têm mesas cheias de informações. 216 00:10:22,640 --> 00:10:26,550 Então, escolha de tudo, desde os usuários onde o nome é nome de usuário. 217 00:10:26,550 --> 00:10:28,120 Certo? 218 00:10:28,120 --> 00:10:30,770 Bastante simples. 219 00:10:30,770 --> 00:10:34,490 A ideia de injeção de SQL é que nós inserir algum código malicioso que faria 220 00:10:34,490 --> 00:10:37,270 enganar o servidor para executar algo diferente do que o que 221 00:10:37,270 --> 00:10:38,430 originalmente estava correndo. 222 00:10:38,430 --> 00:10:44,970 Então, digamos que o nome de usuário, que colocamos em 1 ou igual a 1. 223 00:10:44,970 --> 00:10:46,700 Então nós colocamos em uma ou igual a 1. 224 00:10:46,700 --> 00:10:49,890 A forma como ele vai ler agora vai ser selecionar dos usuários, tudo de 225 00:10:49,890 --> 00:10:51,360 usuários - isso é tudo - 226 00:10:51,360 --> 00:10:55,880 onde nome é nome de utilizador, mas nome de usuário é ou 1 é igual a 1. 227 00:10:55,880 --> 00:11:01,760 >> Assim, o nome não é nada ou 1 é igual a 1. 228 00:11:01,760 --> 00:11:04,060 1 é igual a 1 sempre é verdade. 229 00:11:04,060 --> 00:11:07,690 Então, isso vai sempre retornar informações dos usuários. 230 00:11:07,690 --> 00:11:08,100 OK. 231 00:11:08,100 --> 00:11:10,030 Nós não precisamos de ter a nome de usuário correto. 232 00:11:10,030 --> 00:11:14,240 Nós podemos apenas ter qualquer coisa que nós queremos, e ele irá retornar informações 233 00:11:14,240 --> 00:11:15,690 que precisamos. 234 00:11:15,690 --> 00:11:17,160 Vejamos outro exemplo. 235 00:11:17,160 --> 00:11:22,720 >> Se temos tudo, desde a escolha do usuário, onde nome é usuários DROP TABLE - 236 00:11:22,720 --> 00:11:26,420 então o que você acha que isso vai fazer se eu colocar o nome de usuário 237 00:11:26,420 --> 00:11:29,560 como usuários DROP TABLE? 238 00:11:29,560 --> 00:11:30,230 Alguém tem uma idéia? 239 00:11:30,230 --> 00:11:31,050 Sim. 240 00:11:31,050 --> 00:11:32,470 >> AUDIÊNCIA: Vai dizer ele para despejar todas as tabelas. 241 00:11:32,470 --> 00:11:35,460 >> LUCIANO ARANGO: Vai dizer-nos para despejar tudo no site, 242 00:11:35,460 --> 00:11:38,290 tudo no banco de dados. 243 00:11:38,290 --> 00:11:41,910 E o que as pessoas usam isso para - assim Eu vou mostrar para vocês. 244 00:11:41,910 --> 00:11:45,462 Eu desativei soltando as tabelas porque eu não quero que você 245 00:11:45,462 --> 00:11:48,240 caras para largar minhas tabelas. 246 00:11:48,240 --> 00:11:49,850 Vamos dar uma olhada nisso. 247 00:11:49,850 --> 00:11:54,410 Portanto, este puxa simplesmente as informações para uma determinada pessoa. 248 00:11:54,410 --> 00:11:57,550 Então, como vamos saber se isso é afetados por injeção de SQL. 249 00:11:57,550 --> 00:12:01,545 Vamos verificar rapidinho se é que podemos colocar algo - 250 00:12:01,545 --> 00:12:04,990 251 00:12:04,990 --> 00:12:06,080 deixe-me copiar este código. 252 00:12:06,080 --> 00:12:08,140 Eu vou passar por isso em um segundo. 253 00:12:08,140 --> 00:12:12,210 Eu vou colocar raiz e 1 é igual a 1. 254 00:12:12,210 --> 00:12:15,510 >> Este aqui, este por cento sinal de 23 - 255 00:12:15,510 --> 00:12:19,970 o que ele realmente é, se eu olhar aqui na - 256 00:12:19,970 --> 00:12:23,820 a forma como HTML leva em números, se você dar uma olhada quando eu coloco em um espaço 257 00:12:23,820 --> 00:12:28,380 aqui - se eu fosse para o espaço algo aqui, ela altera-lo para um por cento 2. 258 00:12:28,380 --> 00:12:31,420 Vocês veja isso aqui quando eu coloco em um espaço? 259 00:12:31,420 --> 00:12:36,710 O modo como funciona é que você só pode enviar valores ASCII através de HTML. 260 00:12:36,710 --> 00:12:40,330 Assim, substitui, por exemplo, um espaço com 20 por cento. 261 00:12:40,330 --> 00:12:41,970 Eu não sei se vocês já vi isso antes. 262 00:12:41,970 --> 00:12:45,100 >> Ele substitui uma hashtag com cento 23. 263 00:12:45,100 --> 00:12:50,840 Nós precisa uma hashtag no final ou declaração, para que possamos dizer a 264 00:12:50,840 --> 00:13:00,885 banco de dados para se esqueça de comentar este último ponto e vírgula no final. 265 00:13:00,885 --> 00:13:03,060 Queremos que ele não pensar sobre isso. 266 00:13:03,060 --> 00:13:05,980 Nós só queremos que ele seja executado tudo que temos de antemão e 267 00:13:05,980 --> 00:13:07,450 comentar isso. 268 00:13:07,450 --> 00:13:08,710 Vamos dar uma olhada nisso. 269 00:13:08,710 --> 00:13:14,670 >> Então, se eu fosse colocar alguma coisa errada - vamos dizer, por exemplo, eu coloquei dois iguais 270 00:13:14,670 --> 00:13:15,690 1, ele não me dá nada. 271 00:13:15,690 --> 00:13:22,930 Quando eu coloquei em 1 é igual a 1, e ele faz retornar algo, isso me diz que 272 00:13:22,930 --> 00:13:24,660 este é vulnerável a uma injeção SQL. 273 00:13:24,660 --> 00:13:29,090 Agora eu sei que o que quer Coloquei depois desta - 274 00:13:29,090 --> 00:13:39,110 e, por exemplo, descartar tabelas ou algo parecido 275 00:13:39,110 --> 00:13:41,190 vai certamente funcionar. 276 00:13:41,190 --> 00:13:44,350 Eu sei que é vulnerável a injeção de SQL porque eu sei que 277 00:13:44,350 --> 00:13:49,850 debaixo do capô, está deixando me fazer o 1 é igual a 1 coisa. 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 >> E se olharmos para essas outras, número dois e número três, é 281 00:13:56,540 --> 00:13:59,110 vai fazer um pouco mais de verificação por baixo da 282 00:13:59,110 --> 00:14:03,680 capô do que se trata. 283 00:14:03,680 --> 00:14:07,425 Assim, qualquer pessoa permitir a queda ainda nada nem tentou? 284 00:14:07,425 --> 00:14:08,760 Vocês espécie de obter SQL ainda? 285 00:14:08,760 --> 00:14:10,430 Porque eu sei que vocês não tem viu ainda, então é meio de 286 00:14:10,430 --> 00:14:11,759 confuso para vocês. 287 00:14:11,759 --> 00:14:16,160 288 00:14:16,160 --> 00:14:18,480 Vamos dar uma olhada. 289 00:14:18,480 --> 00:14:21,270 Então, qual é o caminho para evitar SQLI? 290 00:14:21,270 --> 00:14:21,390 OK. 291 00:14:21,390 --> 00:14:23,330 Então, isso é muito importante porque você caras definitivamente querer evitar 292 00:14:23,330 --> 00:14:24,090 isso em seus sites. 293 00:14:24,090 --> 00:14:28,040 >> Se não, todos os seus amigos estão indo para tirar sarro de você quando cair tudo 294 00:14:28,040 --> 00:14:29,390 suas tabelas. 295 00:14:29,390 --> 00:14:36,150 Assim, a idéia é que você reparar o SQL de certa forma, enquanto você combinar 296 00:14:36,150 --> 00:14:41,940 que as entradas do usuário com uma determinada string. 297 00:14:41,940 --> 00:14:46,120 Assim, a maneira como isso funciona é você preparar a base de dados. 298 00:14:46,120 --> 00:14:50,830 Você seleciona o nome, cor e calorias a partir de uma base de dados chamada fruta. 299 00:14:50,830 --> 00:14:53,580 E então onde está a menos de calorias, e vamos colocar um ponto de interrogação lá 300 00:14:53,580 --> 00:14:56,530 dizendo que nós estamos indo para a entrada algo em um segundo. 301 00:14:56,530 --> 00:14:58,850 >> E a cor é igual, e nós colocamos uma pergunta marca dizendo que vamos 302 00:14:58,850 --> 00:15:00,913 entrada algo em um segundo bem. 303 00:15:00,913 --> 00:15:02,660 OK? 304 00:15:02,660 --> 00:15:09,920 E, então, executá-lo, colocando em 150 e vermelho. 305 00:15:09,920 --> 00:15:12,820 E isso vai verifique Certifique-se que estes dois - 306 00:15:12,820 --> 00:15:15,300 essa matriz irá verificar que estes dois são um inteiro e 307 00:15:15,300 --> 00:15:16,550 que este é um string. 308 00:15:16,550 --> 00:15:18,810 309 00:15:18,810 --> 00:15:20,890 Então nós vamos, e vamos buscar tudo, vamos colocá-la em vermelho. 310 00:15:20,890 --> 00:15:21,964 Isso significa que buscar todos. 311 00:15:21,964 --> 00:15:26,790 Isso significa que realmente executar o SQL declaração e colocá-lo novamente em vermelho. 312 00:15:26,790 --> 00:15:30,530 Aqui vamos fazer o mesmo, mas nós fazer o mesmo para amarelo. 313 00:15:30,530 --> 00:15:32,490 E nós buscar todos. 314 00:15:32,490 --> 00:15:36,140 >> E, desta forma, podemos evitar que o usuário de ser capaz de introduzir algo 315 00:15:36,140 --> 00:15:41,710 que não é o que nós especificado, uma string ou um número inteiro, por exemplo. 316 00:15:41,710 --> 00:15:45,100 317 00:15:45,100 --> 00:15:46,610 Eu estava falando anteriormente sobre depender de outros. 318 00:15:46,610 --> 00:15:50,010 Quando vocês iniciar seu projeto, você está mais definitivamente vai usar 319 00:15:50,010 --> 00:15:52,310 inicialização ou algo similar. 320 00:15:52,310 --> 00:15:53,490 Vocês já usado Wordpress? 321 00:15:53,490 --> 00:15:57,170 Provavelmente vocês têm usado Wordpress mais provável. 322 00:15:57,170 --> 00:16:00,050 Assim, o problema com o uso coisas de outras pessoas - 323 00:16:00,050 --> 00:16:05,940 Eu só vou ao Google bem rápido Vulnerabilidade Wordpress. 324 00:16:05,940 --> 00:16:07,495 >> Se eu conseguir isso até agora - 325 00:16:07,495 --> 00:16:08,995 Eu literalmente fez um dois segundo Google. 326 00:16:08,995 --> 00:16:12,300 327 00:16:12,300 --> 00:16:13,800 Podemos ver que o WordPress - 328 00:16:13,800 --> 00:16:17,450 este é datado em setembro '12. 329 00:16:17,450 --> 00:16:19,120 26 é atualizado. 330 00:16:19,120 --> 00:16:23,620 A configuração padrão do Wordpress antes de 3.6 não impede que estes 331 00:16:23,620 --> 00:16:27,110 certos envios, o que pode tornar mais fácil para 332 00:16:27,110 --> 00:16:29,790 ataques cross-site scripting. 333 00:16:29,790 --> 00:16:34,530 Assim, uma história rápida, uma vez que estávamos trabalhando com - assim que eu era, no verão, trabalhando um 334 00:16:34,530 --> 00:16:34,970 estágio. 335 00:16:34,970 --> 00:16:40,400 E nós estávamos trabalhando com uma espécie de como uma grande empresa de cartão de crédito. 336 00:16:40,400 --> 00:16:42,020 >> E eles contam com algo chamado - 337 00:16:42,020 --> 00:16:45,740 Eu não sei se vocês já jogou com um produto chamado Joomla. 338 00:16:45,740 --> 00:16:51,750 Joomla é um produto que é usado para controle - uma espécie de similar ao 339 00:16:51,750 --> 00:16:54,340 Wordpress, usado para construir websites. 340 00:16:54,340 --> 00:16:56,060 Então eles tiveram seu site trabalhando em Joomla. 341 00:16:56,060 --> 00:16:59,290 Isto é, na verdade, um cartão de crédito empresa na Colômbia. 342 00:16:59,290 --> 00:17:01,000 Vou levá-lo ao seu site rapidinho. 343 00:17:01,000 --> 00:17:04,550 344 00:17:04,550 --> 00:17:05,400 >> Então, eles usaram o Joomla. 345 00:17:05,400 --> 00:17:08,630 E eles não tinham actualizado Joomla para a mais recente adição. 346 00:17:08,630 --> 00:17:12,160 E assim, quando estávamos dando uma olhada em seu código, fomos capazes de realmente 347 00:17:12,160 --> 00:17:18,430 ir dentro de seu código e roubar todo o informações de cartão de crédito que eles tinham, 348 00:17:18,430 --> 00:17:21,670 todos os números de cartão de crédito, os nomes, os endereços. 349 00:17:21,670 --> 00:17:22,740 E este foi apenas - 350 00:17:22,740 --> 00:17:23,569 e seu código foi perfeitamente bem. 351 00:17:23,569 --> 00:17:24,710 Eles tinham grande código. 352 00:17:24,710 --> 00:17:25,389 Era toda a segurança. 353 00:17:25,389 --> 00:17:26,520 Eles checaram todos os bancos de dados. 354 00:17:26,520 --> 00:17:29,020 Eles fizeram-se cross-site scripting estava bem. 355 00:17:29,020 --> 00:17:34,390 >> Mas eles usaram algo que não era atualizado, que não era seguro. 356 00:17:34,390 --> 00:17:36,940 E assim que os levou a - então vocês está indo definitivamente para usar outro 357 00:17:36,940 --> 00:17:40,650 código, frameworks de outras pessoas do povo para construir o seu site. 358 00:17:40,650 --> 00:17:43,860 Certifique-se de que eles são seguros, pois às vezes não é você, o que 359 00:17:43,860 --> 00:17:44,480 comete um erro. 360 00:17:44,480 --> 00:17:47,440 Mas alguém comete um erro, e então você cair por causa disso. 361 00:17:47,440 --> 00:17:51,190 362 00:17:51,190 --> 00:17:53,885 >> Senhas e PII. 363 00:17:53,885 --> 00:17:56,820 Assim senhas. 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 Vamos dar uma olhada em senhas rapidinho. 367 00:18:04,230 --> 00:18:04,590 OK. 368 00:18:04,590 --> 00:18:06,520 Por favor me diga que todos usa seguro - 369 00:18:06,520 --> 00:18:09,030 Espero que todos aqui usa senhas seguras. 370 00:18:09,030 --> 00:18:12,890 Estou apenas deixando que como uma suposição. 371 00:18:12,890 --> 00:18:14,850 Então vocês estão indo definitivamente para armazenar senhas para seus sites. 372 00:18:14,850 --> 00:18:17,440 Você vai fazer algo parecido um login ou algo assim. 373 00:18:17,440 --> 00:18:19,610 O que é importante é não guardar senhas em texto simples. 374 00:18:19,610 --> 00:18:20,860 Isto é extremamente importante. 375 00:18:20,860 --> 00:18:23,960 Você não quer para armazenar uma senha em texto simples. 376 00:18:23,960 --> 00:18:27,370 >> E você definitivamente não quer realmente para armazená-lo em um hash de uma maneira. 377 00:18:27,370 --> 00:18:32,440 Então, o que um hash é uma maneira que, quando você gerar uma palavra, quando você coloca este 378 00:18:32,440 --> 00:18:36,200 palavra em uma função hash, será gerar para trás algum tipo de críptica 379 00:18:36,200 --> 00:18:39,390 mensagem ou conjunto enigmática das chaves. 380 00:18:39,390 --> 00:18:40,640 Vou mostrar-lhe um exemplo. 381 00:18:40,640 --> 00:18:44,620 382 00:18:44,620 --> 00:18:50,250 Vou botar eles password1 palavra. 383 00:18:50,250 --> 00:18:55,280 Hash md5 Então vai me retornar algum tipo de informação estranha. 384 00:18:55,280 --> 00:18:59,140 >> O problema é que as pessoas lá fora que gostaria de entrar em sites têm 385 00:18:59,140 --> 00:19:02,750 já descobriu tipo de todos os hashes MD5. 386 00:19:02,750 --> 00:19:06,030 O que eles fizeram é eles se sentaram em seu computadores, e eles hash cada 387 00:19:06,030 --> 00:19:09,660 única palavra possível lá fora, até eles tem uma espécie de o que é isso. 388 00:19:09,660 --> 00:19:11,420 Se eu fosse olhar isso - 389 00:19:11,420 --> 00:19:12,420 Eu apenas peguei esse hash. 390 00:19:12,420 --> 00:19:14,120 Se eu conseguir esse hash - 391 00:19:14,120 --> 00:19:17,470 se eu entrar em um site, e eu acho esse hash, porque eu chegar ao 392 00:19:17,470 --> 00:19:24,100 bancos de dados, e eu procurá-lo, alguém já percebi isso por mim. 393 00:19:24,100 --> 00:19:28,600 394 00:19:28,600 --> 00:19:29,100 >> É. 395 00:19:29,100 --> 00:19:35,030 Então, as pessoas sentaram-se, e tudo o md5 hash que você colocar, eles vão 396 00:19:35,030 --> 00:19:37,760 retornar para você algo que é uma palavra. 397 00:19:37,760 --> 00:19:39,800 Se eu botar outra palavra, como - 398 00:19:39,800 --> 00:19:42,410 Eu não sei - 399 00:19:42,410 --> 00:19:43,490 trees2. 400 00:19:43,490 --> 00:19:46,050 Eu não quero ficar desapontado pelas minhas pesquisas do Google. 401 00:19:46,050 --> 00:19:49,820 402 00:19:49,820 --> 00:19:52,780 Lá está, trees2. 403 00:19:52,780 --> 00:19:55,930 Então, um monte de sites ainda usam hash MD5. 404 00:19:55,930 --> 00:19:57,730 Eles dizem que, oh, é seguro. 405 00:19:57,730 --> 00:19:58,570 Nós não estamos armazenando em texto simples. 406 00:19:58,570 --> 00:19:59,740 Temos este hash MD5. 407 00:19:59,740 --> 00:20:01,880 E tudo o que tenho a fazer é apenas Google o número. 408 00:20:01,880 --> 00:20:03,940 >> Eu nem sequer tenho que me computar. 409 00:20:03,940 --> 00:20:06,790 Eu só posso pesquisar no Google, e alguém já fez isso por mim. 410 00:20:06,790 --> 00:20:08,010 Aqui está um monte deles. 411 00:20:08,010 --> 00:20:09,260 Aqui é um monte de senhas. 412 00:20:09,260 --> 00:20:13,890 413 00:20:13,890 --> 00:20:18,680 Então, definitivamente não use hash MD5, porque tudo que você precisa 414 00:20:18,680 --> 00:20:19,140 fazer é o Google. 415 00:20:19,140 --> 00:20:20,390 Então o que você deseja usar no lugar? 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 Algo chamado de salga. 419 00:20:31,260 --> 00:20:32,460 Então, o que salga é - 420 00:20:32,460 --> 00:20:36,280 Vocês se lembram quando éramos falando de forma aleatória em - 421 00:20:36,280 --> 00:20:37,920 Eu não tenho certeza do que PSET que era - 422 00:20:37,920 --> 00:20:41,140 foi ele PSET lá ou quatro? 423 00:20:41,140 --> 00:20:45,150 >> Nós estávamos falando sobre encontrar a agulha no palheiro. 424 00:20:45,150 --> 00:20:48,480 E no pset, ele disse que você poderia realmente descobrir o que aleatório 425 00:20:48,480 --> 00:20:51,840 gera, porque alguém já passou aleatórios um milhão de vezes e apenas 426 00:20:51,840 --> 00:20:53,230 tipo de formado o que eles geram. 427 00:20:53,230 --> 00:20:55,840 O que você quer fazer é colocar em uma entrada. 428 00:20:55,840 --> 00:20:57,130 Então é isso que tipo de salga é. 429 00:20:57,130 --> 00:21:00,900 Eles já descobri o que salga retorna para cada trabalho. 430 00:21:00,900 --> 00:21:04,750 >> Então, o que faz é salga você colocar em um sal. 431 00:21:04,750 --> 00:21:06,160 Você coloca em uma determinada palavra. 432 00:21:06,160 --> 00:21:09,720 E vai botar essa palavra, dependendo sobre o que você colocar aqui. 433 00:21:09,720 --> 00:21:13,570 Então, se eu botar uma senha com este sentença, ele vai botar 434 00:21:13,570 --> 00:21:17,180 diferente se eu botar password1 com uma frase diferente. 435 00:21:17,180 --> 00:21:21,670 É uma espécie de dá-lo de um lugar para começar para o hashing para começar. 436 00:21:21,670 --> 00:21:25,970 Por isso, é muito mais difícil de calcular, mas você ainda pode calculá-lo, especialmente 437 00:21:25,970 --> 00:21:26,830 se você usar um mau sal. 438 00:21:26,830 --> 00:21:29,650 >> Pessoas já também descobriu sais comuns e descobriu 439 00:21:29,650 --> 00:21:31,500 o que isso é. 440 00:21:31,500 --> 00:21:34,980 Sais aleatórias são muito melhor, mas a melhor maneira é usar 441 00:21:34,980 --> 00:21:38,160 uma coisa chamada cripta. 442 00:21:38,160 --> 00:21:40,480 E o que cripta permite que - de modo que essas funções são 443 00:21:40,480 --> 00:21:41,820 já construído para você. 444 00:21:41,820 --> 00:21:44,910 Muitas pessoas esquecem que, ou esquecem-se de usá-lo. 445 00:21:44,910 --> 00:21:54,520 Mas se eu olhar para cima cripta PHP, cripta já retorna uma cadeia de hash para mim. 446 00:21:54,520 --> 00:21:58,790 E ele realmente salga muitas vezes e hashes-lo muitas vezes. 447 00:21:58,790 --> 00:22:00,070 >> Então, nós não temos que fazer isso. 448 00:22:00,070 --> 00:22:04,790 Então tudo que você tem a fazer é enviá-lo em cripta. 449 00:22:04,790 --> 00:22:08,170 E isso vai criar uma grande de hash sem você ter que se preocupar com sal 450 00:22:08,170 --> 00:22:08,990 ou qualquer coisa. 451 00:22:08,990 --> 00:22:12,000 Porque se você fosse sal, você tem para lembrar o que você usou sal 452 00:22:12,000 --> 00:22:13,800 porque se não, você não pode obter o seu senha para trás sem a 453 00:22:13,800 --> 00:22:15,760 sal que você usou. 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 >> E também pessoais identificáveis informações. 457 00:22:23,150 --> 00:22:26,730 Então, segurança social, a um cartão de crédito - isso é bastante óbvio. 458 00:22:26,730 --> 00:22:31,880 Mas às vezes as pessoas esquecem a forma como ele obras é, a quantidade de informação que você 459 00:22:31,880 --> 00:22:35,690 realmente precisa encontrar alguma pessoa? 460 00:22:35,690 --> 00:22:37,740 Alguém fez um estudo sobre este um caminho de volta. 461 00:22:37,740 --> 00:22:40,870 E foi assim, se você tiver um nome completo, você não consegue encontrar 462 00:22:40,870 --> 00:22:41,610 alguém que facilmente. 463 00:22:41,610 --> 00:22:43,900 Mas e se você tem um nome completo e sua data de nascimento? 464 00:22:43,900 --> 00:22:47,770 Isso é suficiente para identificar alguém especificamente? 465 00:22:47,770 --> 00:22:52,760 >> E se você tem o seu nome eo endereço de rua que vive? 466 00:22:52,760 --> 00:22:55,110 Isso é o suficiente para encontrar alguém? 467 00:22:55,110 --> 00:23:02,490 E isso é quando eles questionam, o que é informações de identificação pessoal, e 468 00:23:02,490 --> 00:23:05,360 o que você deve se preocupar com não doar? 469 00:23:05,360 --> 00:23:08,770 Se você doar pessoais identificáveis informação de que alguém lhe dá, 470 00:23:08,770 --> 00:23:11,420 você poderia ser processado. 471 00:23:11,420 --> 00:23:12,610 E nós definitivamente não queremos isso. 472 00:23:12,610 --> 00:23:14,955 >> Então, quando você está colocando o seu site para fora, e você tem uma muito legal 473 00:23:14,955 --> 00:23:17,230 design, espero que você fez um projeto final incrível. 474 00:23:17,230 --> 00:23:18,370 Qualquer tipo de você querer colocá-lo lá fora. 475 00:23:18,370 --> 00:23:21,420 Você quer ter certeza de que tudo o que você está tirando do usuário, se é 476 00:23:21,420 --> 00:23:25,310 informações de identificação pessoal, quer ter certeza de que você está sendo realmente 477 00:23:25,310 --> 00:23:26,560 cuidado com ele. 478 00:23:26,560 --> 00:23:29,670 479 00:23:29,670 --> 00:23:31,080 >> Injeção Shell. 480 00:23:31,080 --> 00:23:31,350 OK. 481 00:23:31,350 --> 00:23:37,590 Injeção Shell permite que o invasor obter acesso à sua linha de comando real 482 00:23:37,590 --> 00:23:39,660 em seu servidor. 483 00:23:39,660 --> 00:23:44,060 E assim ele é capaz de executar código que você não pode controlar. 484 00:23:44,060 --> 00:23:49,560 Vamos dar um exemplo dessa bela seqüência aqui. 485 00:23:49,560 --> 00:23:55,570 Se formos para o site novamente, eu sou indo para ir para a injeção de código. 486 00:23:55,570 --> 00:23:58,910 Então, o que isso faz é - 487 00:23:58,910 --> 00:24:00,420 é também o que estávamos olhando antes. 488 00:24:00,420 --> 00:24:11,200 Estamos permitindo que o usuário colocar em qualquer ele quer, e ele vai imprimir 489 00:24:11,200 --> 00:24:12,220 o que quiser. 490 00:24:12,220 --> 00:24:13,890 >> Então eu vou colocar uma chamada. 491 00:24:13,890 --> 00:24:15,540 O que isto é - 492 00:24:15,540 --> 00:24:16,940 ele vai começar pela concatenação. 493 00:24:16,940 --> 00:24:19,520 Por isso me deixa executar qualquer comandar corrida da pessoa 494 00:24:19,520 --> 00:24:21,500 antes e meu comando. 495 00:24:21,500 --> 00:24:23,980 E eu estou executando um comando do sistema. 496 00:24:23,980 --> 00:24:27,310 E estes últimos cordas são - lembre-se o que eu falei com vocês sobre, 497 00:24:27,310 --> 00:24:31,725 ao passo que você tem que codificar lo em um método de URL. 498 00:24:31,725 --> 00:24:35,010 499 00:24:35,010 --> 00:24:36,992 Se eu executar isso agora - 500 00:24:36,992 --> 00:24:39,150 Eu vou te mostrar por aqui - 501 00:24:39,150 --> 00:24:41,100 você vai ver que eu terminei se executar um comando. 502 00:24:41,100 --> 00:24:45,700 503 00:24:45,700 --> 00:24:49,320 >> Este é realmente o servidor real que o meu site está sendo executado. 504 00:24:49,320 --> 00:24:55,840 505 00:24:55,840 --> 00:24:58,510 Então, nós não queremos isso, porque eu posso correr - 506 00:24:58,510 --> 00:25:00,320 este servidor não é meu. 507 00:25:00,320 --> 00:25:04,030 Então eu não quero estragar a sua irmã, servidor de Marcus. 508 00:25:04,030 --> 00:25:07,470 Mas você pode executar mais comandos que são perigosos. 509 00:25:07,470 --> 00:25:11,885 E potencialmente, você pode apagar arquivos, remover diretórios. 510 00:25:11,885 --> 00:25:14,390 511 00:25:14,390 --> 00:25:17,970 Eu posso remover um determinado diretório se Eu queria, mas eu não quero 512 00:25:17,970 --> 00:25:19,530 fazer isso com Marcus. 513 00:25:19,530 --> 00:25:20,420 Ele é um cara legal. 514 00:25:20,420 --> 00:25:21,470 Ele me emprestou o seu servidor. 515 00:25:21,470 --> 00:25:24,620 Então eu vou deixá-lo fora na boa. 516 00:25:24,620 --> 00:25:32,280 >> Então, o que nós não queremos usar - não fazer quer usar eval ou sistema. 517 00:25:32,280 --> 00:25:34,755 Eval ou sistema permite fazer essas chamadas do sistema. 518 00:25:34,755 --> 00:25:37,410 519 00:25:37,410 --> 00:25:38,410 Meios Eval avaliar. 520 00:25:38,410 --> 00:25:40,790 Sistema significa que eu corri. 521 00:25:40,790 --> 00:25:42,490 É executar algo no sistema. 522 00:25:42,490 --> 00:25:46,730 Mas podemos proibir essas coisas em PHP para que não usá-los. 523 00:25:46,730 --> 00:25:47,400 E fazer o upload de arquivos. 524 00:25:47,400 --> 00:25:49,180 Eu ia fazer uma incrível coisa com o upload de arquivos. 525 00:25:49,180 --> 00:25:52,740 Mas, como eu disse a vocês, o meu arquivo coisa de upload não está funcionando. 526 00:25:52,740 --> 00:25:54,590 Se eu fosse fazer o upload de um arquivo de agora - 527 00:25:54,590 --> 00:25:57,120 528 00:25:57,120 --> 00:26:00,830 se eu fosse fazer o upload de um arquivo, e é uma imagem - 529 00:26:00,830 --> 00:26:03,180 você tem uma coisa de upload que é uma imagem. 530 00:26:03,180 --> 00:26:03,660 Isso é bom. 531 00:26:03,660 --> 00:26:04,280 Nada acontece. 532 00:26:04,280 --> 00:26:10,840 >> Mas se você tem um arquivo de upload, para exemplo, e que o usuário realmente envios 533 00:26:10,840 --> 00:26:19,220 um arquivo PHP ou um arquivo exe ou algo assim, então você poderia potencialmente 534 00:26:19,220 --> 00:26:19,740 temos um problema. 535 00:26:19,740 --> 00:26:21,390 Este estava trabalhando antes. 536 00:26:21,390 --> 00:26:25,202 Infelizmente para mim, é não funciona mais. 537 00:26:25,202 --> 00:26:30,230 Se eu, por exemplo, carregar este arquivo, eu sou não obtendo permissão para carregar 538 00:26:30,230 --> 00:26:33,400 o arquivo devido ao servidor não sendo a minha. 539 00:26:33,400 --> 00:26:38,670 Então, o cara é muito inteligente. 540 00:26:38,670 --> 00:26:39,610 >> Então, nós não queremos - 541 00:26:39,610 --> 00:26:40,130 Eu vou mostrar para vocês - 542 00:26:40,130 --> 00:26:41,840 OK, estas são algumas ferramentas muito legais. 543 00:26:41,840 --> 00:26:45,100 Então, essas - 544 00:26:45,100 --> 00:26:47,715 entrar - se vocês tem Firefox - espero que você faz. 545 00:26:47,715 --> 00:26:54,260 Há dois add-ons chamados SQL Inject Eu e Cross-Site Script mim. 546 00:26:54,260 --> 00:26:56,870 Abrem-se tão pouco de lado bares ao lado. 547 00:26:56,870 --> 00:27:01,480 E se eu fosse para ir para CS60, por exemplo - 548 00:27:01,480 --> 00:27:04,210 então o que ele faz é que parece para todas as formas que - 549 00:27:04,210 --> 00:27:07,220 550 00:27:07,220 --> 00:27:08,760 espero, eu não vou ficar em apuros por isso. 551 00:27:08,760 --> 00:27:09,190 >> Mas OK. 552 00:27:09,190 --> 00:27:12,600 Aqui está o sistema de pinos. 553 00:27:12,600 --> 00:27:18,946 Então, quando eu começar a procurar furos no o sistema, a primeira coisa que faço é 554 00:27:18,946 --> 00:27:21,820 abrir esta pequena bela ferramenta no lado. 555 00:27:21,820 --> 00:27:24,160 E eu vou testar formas com ataques de automóveis. 556 00:27:24,160 --> 00:27:28,510 E então o que isto significa é que vai lentamente abrir um monte de navegadores. 557 00:27:28,510 --> 00:27:29,930 Aqui é um monte de navegadores. 558 00:27:29,930 --> 00:27:33,320 E ele está tentando cada combinação única de cross-site scripting 559 00:27:33,320 --> 00:27:37,380 que possivelmente seja, se você vê ao lado. 560 00:27:37,380 --> 00:27:42,080 >> E vai me dar um resultado tipo de qual é a resposta. 561 00:27:42,080 --> 00:27:42,860 Todos os passar. 562 00:27:42,860 --> 00:27:43,910 Obviamente, todos eles passam. 563 00:27:43,910 --> 00:27:46,190 Quero dizer, eles são muito inteligentes pessoas lá em cima. 564 00:27:46,190 --> 00:27:48,010 Mas se eu fosse a correr - 565 00:27:48,010 --> 00:27:52,050 Eu tive momentos antes, quando eu executar este em projetos finais dos alunos. 566 00:27:52,050 --> 00:27:56,080 Eu simplesmente executar SQL Inject Me com todos os ataques diferentes. 567 00:27:56,080 --> 00:28:00,080 E ele está tentando injetar SQL este servidor pino. 568 00:28:00,080 --> 00:28:03,590 Então, se nós rolar para baixo, para exemplo, ele diz - 569 00:28:03,590 --> 00:28:04,960 isso é bom, se ele retorna. 570 00:28:04,960 --> 00:28:08,250 >> Por isso, testou alguns determinados valores. 571 00:28:08,250 --> 00:28:11,170 E o servidor retornou um código que foi negativo. 572 00:28:11,170 --> 00:28:11,780 Remover temporariamente. 573 00:28:11,780 --> 00:28:13,030 Isso é bom. 574 00:28:13,030 --> 00:28:17,050 575 00:28:17,050 --> 00:28:20,750 Tenta todos esses testes. 576 00:28:20,750 --> 00:28:21,790 Então, você poderia simplesmente executar - 577 00:28:21,790 --> 00:28:27,860 Eu gostaria de poder encontrar um site real rápido, que me deixou - 578 00:28:27,860 --> 00:28:29,110 talvez a loja CS50. 579 00:28:29,110 --> 00:28:43,890 580 00:28:43,890 --> 00:28:45,711 >> Uau, isso vai tomar um caminho muito longo. 581 00:28:45,711 --> 00:28:53,090 582 00:28:53,090 --> 00:28:55,130 Vou deixar o primeiro teste não terminar bem. 583 00:28:55,130 --> 00:28:57,330 Por isso, está reclamando. 584 00:28:57,330 --> 00:28:58,470 Então, essas são as três coisas. 585 00:28:58,470 --> 00:29:00,430 Estas ferramentas são gratuitas. 586 00:29:00,430 --> 00:29:03,960 Você pode baixá-los e executá-los em seu site, e ele vai dizer-lhe se 587 00:29:03,960 --> 00:29:06,650 você tem cross-site scripting, se você tem SQL, se você tiver 588 00:29:06,650 --> 00:29:07,900 algo parecido. 589 00:29:07,900 --> 00:29:12,230 590 00:29:12,230 --> 00:29:14,500 Eu sou uma espécie de bagunçar. 591 00:29:14,500 --> 00:29:15,550 >> O que é importante - 592 00:29:15,550 --> 00:29:17,900 OK, por isso nunca confiar no usuário. 593 00:29:17,900 --> 00:29:21,920 Quaisquer que sejam as entradas do usuário para você, fazer certeza de que higienizar-lo, limpá-lo, 594 00:29:21,920 --> 00:29:25,300 você verificar as coisas certas, que está dando o que você 595 00:29:25,300 --> 00:29:28,240 quero que ele para lhe dar. 596 00:29:28,240 --> 00:29:32,460 Esteja sempre atualizado sobre o que os quadros que na verdade você está usando. 597 00:29:32,460 --> 00:29:34,630 Se você usar algo como inicialização - 598 00:29:34,630 --> 00:29:36,340 Eu sei que vocês vão usar inicializar porque ele está indo para ir 599 00:29:36,340 --> 00:29:38,140 sobre isso em breve na classe - 600 00:29:38,140 --> 00:29:43,120 e Wordpress ou algo parecido, normalmente isso pode ser cortado. 601 00:29:43,120 --> 00:29:44,770 >> E então você não precisa nem saber. 602 00:29:44,770 --> 00:29:45,800 Você está apenas executando o seu site. 603 00:29:45,800 --> 00:29:47,360 E é totalmente seguro. 604 00:29:47,360 --> 00:29:51,730 E você vai para baixo. 605 00:29:51,730 --> 00:29:54,000 Então, eu estou pescando muito cedo. 606 00:29:54,000 --> 00:29:55,770 Mas eu quero agradecer Pentest Labs. 607 00:29:55,770 --> 00:29:58,140 Eu vou mostrar para vocês algo chamado Pentest Labs. 608 00:29:58,140 --> 00:30:05,000 Se vocês estão realmente interessados ​​em que a segurança realmente é, há uma 609 00:30:05,000 --> 00:30:07,300 site chamado Pentest Labs se vocês vão para isso agora. 610 00:30:07,300 --> 00:30:10,730 Oh, bem, não é isso. 611 00:30:10,730 --> 00:30:12,030 Eu só vou para executá-lo assim. 612 00:30:12,030 --> 00:30:14,400 Google diz-me a resposta. 613 00:30:14,400 --> 00:30:16,590 >> OK. 614 00:30:16,590 --> 00:30:19,030 E ensina usá-lo - por isso diz, aprender a penetração da web 615 00:30:19,030 --> 00:30:21,060 testar o caminho certo. 616 00:30:21,060 --> 00:30:23,650 Ela ensina-lhe - 617 00:30:23,650 --> 00:30:25,150 espera-se, você é uma pessoa ética. 618 00:30:25,150 --> 00:30:29,200 Mas ele ensina como você pode olhar para como você pode começar dentro de sites. 619 00:30:29,200 --> 00:30:31,130 E se você aprender como você pode entrar sites, você pode aprender a 620 00:30:31,130 --> 00:30:34,960 proteger-se de ficar sites dentro. 621 00:30:34,960 --> 00:30:39,100 Deixe-me aproximar porque talvez vocês não estão olhando para esse direito. 622 00:30:39,100 --> 00:30:46,350 >> Da injeção de SQL que desembolsar, de modo tipo de como eu posso começar a partir de SQL 623 00:30:46,350 --> 00:30:48,530 injeção de desembolsar. 624 00:30:48,530 --> 00:30:53,890 E você descarregue esta máquina virtual. 625 00:30:53,890 --> 00:30:55,690 E a máquina virtual já vem com o site que você está 626 00:30:55,690 --> 00:30:56,780 indo para experimentá-lo. 627 00:30:56,780 --> 00:30:58,030 Você faz o download deste PDF. 628 00:30:58,030 --> 00:31:03,610 629 00:31:03,610 --> 00:31:08,370 E ele vai mostrar linha por linha o que você tem que fazer, o que você verifique. 630 00:31:08,370 --> 00:31:14,560 Isto é o que um atacante realmente faz para começar dentro de um site. 631 00:31:14,560 --> 00:31:15,750 >> E algumas dessas coisas é complicado. 632 00:31:15,750 --> 00:31:17,520 Eu gostaria de poder passar por cima de mais coisas com vocês. 633 00:31:17,520 --> 00:31:21,090 Mas eu me preocupo que vocês não tem realmente - 634 00:31:21,090 --> 00:31:23,090 isso é o que eu fui com vocês, testes web 635 00:31:23,090 --> 00:31:26,830 para testes de penetração. 636 00:31:26,830 --> 00:31:33,540 Realmente não sei o que SQL é eo que - 637 00:31:33,540 --> 00:31:35,960 Seminário de Carl Jackson é incrível também. 638 00:31:35,960 --> 00:31:37,360 Vocês não sabem espécie de que é isso. 639 00:31:37,360 --> 00:31:39,450 Mas se você vai para o site, e você baixar estes tutoriais e estes 640 00:31:39,450 --> 00:31:43,290 PDFs, você pode dar uma olhada no tipo de que a área de segurança realmente 641 00:31:43,290 --> 00:31:46,940 em testes de penetração, veja como você pode obter sites dentro e proteger 642 00:31:46,940 --> 00:31:48,020 se a partir dele. 643 00:31:48,020 --> 00:31:56,360 >> Então se eu fizer uma visão super-rápida, ele vai ser evitar cross-site scripting. 644 00:31:56,360 --> 00:32:00,160 Você quer usar htmlspecialchars cada cronometrar o usuário insere algo. 645 00:32:00,160 --> 00:32:01,580 Evitar injeção de SQL. 646 00:32:01,580 --> 00:32:04,510 Se você fizer isso, você já está melhor do que Harvard era 647 00:32:04,510 --> 00:32:06,530 quando eles se rompido. 648 00:32:06,530 --> 00:32:10,510 E certifique-se de suas senhas não estão em texto simples. 649 00:32:10,510 --> 00:32:16,220 Certifique-se de que você faz não só uma forma de hash eles, mas que você use cripta, o PHP 650 00:32:16,220 --> 00:32:18,670 função que eu mostrei a vocês. 651 00:32:18,670 --> 00:32:20,060 Dessa forma, você deve ser bom. 652 00:32:20,060 --> 00:32:25,830 >> Além disso, se os seus amigos deixá-lo, execute SQL Inject Me em seus sites. 653 00:32:25,830 --> 00:32:28,140 Executar cross-site scripting em seus sites. 654 00:32:28,140 --> 00:32:33,720 E você vai ver um monte desses sites tem uma tonelada de vulnerabilidades. 655 00:32:33,720 --> 00:32:40,400 É incrível o quanto as pessoas esquecem para higienizar suas bases de dados ou para fazer 656 00:32:40,400 --> 00:32:46,340 certeza do que introduzir o da pessoa não é código de script. 657 00:32:46,340 --> 00:32:47,200 OK. 658 00:32:47,200 --> 00:32:49,182 Eu meio que terminou muito cedo. 659 00:32:49,182 --> 00:32:56,510 Mas, se alguém tem alguma dúvida sobre qualquer coisa, você pode atirar em mim uma pergunta. 660 00:32:56,510 --> 00:32:56,630 É. 661 00:32:56,630 --> 00:32:56,970 Vai, vai. 662 00:32:56,970 --> 00:32:59,846 >> AUDIÊNCIA: Eu só quero perguntar, você pode explicar como o arquivo 663 00:32:59,846 --> 00:33:03,160 enviar exatamente obras. 664 00:33:03,160 --> 00:33:03,480 >> LUCIANO ARANGO: Yeah. 665 00:33:03,480 --> 00:33:06,350 Então deixe-me mostrar-lhe o arquivo carregar rapidinho. 666 00:33:06,350 --> 00:33:11,300 Então o upload do arquivo - 667 00:33:11,300 --> 00:33:14,500 o problema sagacidade o upload do arquivo agora é que - 668 00:33:14,500 --> 00:33:18,541 Eu vou abrir o código para vocês ver o código por trás dos bastidores. 669 00:33:18,541 --> 00:33:22,390 670 00:33:22,390 --> 00:33:24,305 E é carregar. 671 00:33:24,305 --> 00:33:28,030 672 00:33:28,030 --> 00:33:31,560 Aqui está um código para o uploader de arquivos. 673 00:33:31,560 --> 00:33:33,980 >> Estamos tentando ir para este diretório aqui. 674 00:33:33,980 --> 00:33:37,380 675 00:33:37,380 --> 00:33:44,880 E estamos tentando, assim que introduzir o arquivo, arquivo isset - por isso, quando há uma 676 00:33:44,880 --> 00:33:50,900 arquivo em arquivos, essa imagem, em seguida, tentamos movê-lo aqui. 677 00:33:50,900 --> 00:33:51,910 Nós pegar o arquivo aqui. 678 00:33:51,910 --> 00:33:58,350 O método é POST, tipo, imagem, arquivo. 679 00:33:58,350 --> 00:33:59,630 E estamos enviando este arquivo. 680 00:33:59,630 --> 00:34:03,910 E, em seguida, uma vez que temos isso, então quando arquivo tem uma imagem, estamos tentando enviá-lo 681 00:34:03,910 --> 00:34:05,060 para este diretório. 682 00:34:05,060 --> 00:34:09,814 >> O problema é que o site não é me deixando ir a este diretório, 683 00:34:09,814 --> 00:34:12,239 porque ele não quer que eu volte. 684 00:34:12,239 --> 00:34:13,489 Ele não quer que eu vá - 685 00:34:13,489 --> 00:34:15,620 686 00:34:15,620 --> 00:34:17,070 Eu tenho que ir - por isso aqui está o upload. 687 00:34:17,070 --> 00:34:17,639 Aqui está imagens. 688 00:34:17,639 --> 00:34:21,780 Eu tenho que ir todo o caminho de volta para a começando e colocá-lo lá e, em seguida, 689 00:34:21,780 --> 00:34:23,820 ir e colocá-lo no diretório. 690 00:34:23,820 --> 00:34:30,000 Então, se eu estava correndo uma janela de terminal, e eu queria mover um arquivo - 691 00:34:30,000 --> 00:34:30,409 [Inaudível] 692 00:34:30,409 --> 00:34:32,159 pode vê-lo. 693 00:34:32,159 --> 00:34:37,940 Se eu quisesse mover um arquivo, eu tenho para colocar o nome do arquivo e, em seguida, o 694 00:34:37,940 --> 00:34:40,860 caminho completo Eu quero enviar. 695 00:34:40,860 --> 00:34:45,110 >> E, em seguida, o servidor não é me deixar voltar. 696 00:34:45,110 --> 00:34:46,929 E por isso não está deixando me chegar a esse arquivo. 697 00:34:46,929 --> 00:34:47,670 Mas normalmente - 698 00:34:47,670 --> 00:34:49,360 então não há um código para o upload de um arquivo. 699 00:34:49,360 --> 00:34:52,260 Então, normalmente o que vai acontecer é que o pessoa não está verificando se o meu arquivo 700 00:34:52,260 --> 00:34:57,920 termina com. jpeg, então eu gostaria de verificar. 701 00:34:57,920 --> 00:35:00,054 Deixe-me abrir um exemplo muito rápido. 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 Esta pessoa certa - 705 00:35:09,230 --> 00:35:11,980 assim exemplo dois está verificando se preg_match - 706 00:35:11,980 --> 00:35:14,180 aqui está mais aqui - 707 00:35:14,180 --> 00:35:19,660 para certificar-se de que termina com PHP, que é bom. 708 00:35:19,660 --> 00:35:20,580 Isso é bom. 709 00:35:20,580 --> 00:35:22,820 Mas há uma grande verdade problema com este. 710 00:35:22,820 --> 00:35:24,600 Isso é bom. 711 00:35:24,600 --> 00:35:44,190 Mas se eu fosse colocar um arquivo chamado myfavoritepicture.php.jpeg, eu poderia 712 00:35:44,190 --> 00:35:50,060 ainda potencialmente se livrar do jpeg e executar it.k que o PHP é perigoso. 713 00:35:50,060 --> 00:35:53,850 Você não quer que a pessoa seja capaz para executar código no seu site. 714 00:35:53,850 --> 00:35:55,750 >> Mas então. Jpeg deixa passar. 715 00:35:55,750 --> 00:36:00,720 A idéia é o que você realmente quer fazer não é ter arquivos, A. Mas, OK, o que 716 00:36:00,720 --> 00:36:07,500 você realmente quer fazer é se certificar de que você lê sobre o mundo inteiro. 717 00:36:07,500 --> 00:36:08,720 E não há nada. Php nele. 718 00:36:08,720 --> 00:36:10,500 Não há. Php no nome completo do arquivo. 719 00:36:10,500 --> 00:36:12,780 >> AUDIÊNCIA: Mas você poderia colocar. jpeg no final. 720 00:36:12,780 --> 00:36:15,830 Os servidores ainda executar o código. 721 00:36:15,830 --> 00:36:16,870 >> LUCIANO ARANGO: Não, ele não vai executado no início. 722 00:36:16,870 --> 00:36:22,310 Você tem que ir para trás e tentar para ver se você pode - 723 00:36:22,310 --> 00:36:24,210 >> AUDIÊNCIA: Então temos que - 724 00:36:24,210 --> 00:36:26,020 OK, apenas um outro conjunto que envolve - 725 00:36:26,020 --> 00:36:26,936 >> LUCIANO ARANGO: Yeah. 726 00:36:26,936 --> 00:36:29,230 >> AUDIÊNCIA: 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 Alguma outra pergunta? 730 00:36:32,865 --> 00:36:33,180 OK. 731 00:36:33,180 --> 00:36:37,350 Vou deixar isso e classificar de tentar ver se vocês podem - 732 00:36:37,350 --> 00:36:40,490 as outras são um pouco mais complicado, porque eles exigem muito 733 00:36:40,490 --> 00:36:44,050 mais conhecimento de SQL do que apenas o começando conhecimento de SQL é web e 734 00:36:44,050 --> 00:36:47,010 o que é JavaScript. 735 00:36:47,010 --> 00:36:49,730 Mas eu vou tentar continuar assim, e espero que vocês vão aprender 736 00:36:49,730 --> 00:36:53,230 sobre isso e tentar dar uma olhada no o que você pode fazer e quantos exemplos 737 00:36:53,230 --> 00:36:54,420 você pode passar. 738 00:36:54,420 --> 00:36:56,020 >> Alguém tem alguma outra perguntas sobre o assunto? 739 00:36:56,020 --> 00:36:59,387 740 00:36:59,387 --> 00:37:00,350 Vá em frente. 741 00:37:00,350 --> 00:37:01,170 Sim, atirar, atirar. 742 00:37:01,170 --> 00:37:01,580 Sim, vá em frente. 743 00:37:01,580 --> 00:37:01,850 Vá em frente. 744 00:37:01,850 --> 00:37:02,310 >> AUDIÊNCIA: OK. 745 00:37:02,310 --> 00:37:08,870 Então eu ouvi sobre como Magic Quotes não são seguros o suficiente. 746 00:37:08,870 --> 00:37:09,280 >> LUCIANO ARANGO: O que - 747 00:37:09,280 --> 00:37:10,110 Magic Quotes? 748 00:37:10,110 --> 00:37:10,595 >> AUDIÊNCIA: Yeah. 749 00:37:10,595 --> 00:37:15,445 Por isso, acrescenta - por isso, sempre que você entrada alguma coisa, ele sempre acrescenta aspas. 750 00:37:15,445 --> 00:37:15,930 >> LUCIANO ARANGO: Yeah. 751 00:37:15,930 --> 00:37:16,000 É. 752 00:37:16,000 --> 00:37:16,496 OK. 753 00:37:16,496 --> 00:37:19,113 >> AUDIÊNCIA: E então eu pensei que trabalhou, mas então eu procurei-o. 754 00:37:19,113 --> 00:37:21,648 E ele disse que não é bom. 755 00:37:21,648 --> 00:37:23,050 Mas eu não sei por que. 756 00:37:23,050 --> 00:37:23,360 >> LUCIANO ARANGO: Yeah. 757 00:37:23,360 --> 00:37:26,240 >> AUDIÊNCIA: Não use Magic Quotes, porque não é seguro. 758 00:37:26,240 --> 00:37:26,360 >> LUCIANO ARANGO: OK. 759 00:37:26,360 --> 00:37:31,735 Cotações tão mágico é quando você insere SQL e já adiciona a cotação para você. 760 00:37:31,735 --> 00:37:33,520 >> AUDIÊNCIA: É sempre adiciona aspas em torno de tudo o que você colocar dentro 761 00:37:33,520 --> 00:37:34,210 >> LUCIANO ARANGO: Yeah. 762 00:37:34,210 --> 00:37:37,190 Assim, o problema com isto é que - 763 00:37:37,190 --> 00:37:38,445 Vou dar uma olhada - 764 00:37:38,445 --> 00:37:41,390 >> AUDIÊNCIA: Como se adquirem a instrução SQL? 765 00:37:41,390 --> 00:37:44,690 Ou eu acho que poderia ser como citação selecionar. 766 00:37:44,690 --> 00:37:49,030 >> LUCIANO ARANGO: Sim, o que você precisa boas cotações para o SQL. 767 00:37:49,030 --> 00:37:52,900 >> AUDIÊNCIA: Não, mas o servidor faz isso por você. 768 00:37:52,900 --> 00:37:54,460 >> LUCIANO ARANGO: Estas pequenas citações aqui, estas pequenas citações? 769 00:37:54,460 --> 00:37:55,670 >> AUDIÊNCIA: Yeah. 770 00:37:55,670 --> 00:37:56,450 >> LUCIANO ARANGO: Yeah. 771 00:37:56,450 --> 00:37:59,860 O problema é que você pode comente a última - 772 00:37:59,860 --> 00:38:05,770 OK, então o que posso fazer é que eu posso comentar fora - por isso vamos dar uma olhada - me deixar 773 00:38:05,770 --> 00:38:07,920 abrir um arquivo de edição de texto. 774 00:38:07,920 --> 00:38:09,610 Deixe-me apenas editar esta aqui diretamente. 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 Vocês podem ver isso claramente? 778 00:38:23,710 --> 00:38:29,730 O que posso fazer é que eu posso comentar fora o último. 779 00:38:29,730 --> 00:38:32,190 Isso vai comentar a última. 780 00:38:32,190 --> 00:38:36,760 E então eu vou colocar aqui, colocar todo o material malicioso aqui. 781 00:38:36,760 --> 00:38:39,840 782 00:38:39,840 --> 00:38:42,630 >> Assim, o usuário é realmente introduzindo, certo? 783 00:38:42,630 --> 00:38:45,230 O usuário não está introduzindo as coisas, certo? 784 00:38:45,230 --> 00:38:47,430 Isto é o que eu estou indo para a entrada como a pessoa que tenta entrar. 785 00:38:47,430 --> 00:38:49,430 Vou colocar em - 786 00:38:49,430 --> 00:38:59,290 787 00:38:59,290 --> 00:39:00,180 essa é uma aspa. 788 00:39:00,180 --> 00:39:01,760 É apenas rabiscada por engano. 789 00:39:01,760 --> 00:39:15,080 790 00:39:15,080 --> 00:39:19,400 E então, o que o código vai fazer - 791 00:39:19,400 --> 00:39:20,190 desculpe, eu vou levar isso para fora. 792 00:39:20,190 --> 00:39:22,170 O que o código vai fazer é ele vai adicionar a primeira 793 00:39:22,170 --> 00:39:24,030 aspas aqui. 794 00:39:24,030 --> 00:39:26,040 E está indo para adicionar o último aspas também. 795 00:39:26,040 --> 00:39:29,350 796 00:39:29,350 --> 00:39:33,270 >> E também vai adicionar o última, última aspa. 797 00:39:33,270 --> 00:39:37,380 Mas eu estou comentando estes cotação marca para fora, para que eles não são executados. 798 00:39:37,380 --> 00:39:41,440 E eu estou terminando esta citação marcar aqui. 799 00:39:41,440 --> 00:39:42,290 Você entendeu? 800 00:39:42,290 --> 00:39:43,750 Você está perdido? 801 00:39:43,750 --> 00:39:45,880 Eu posso comentar a última cotação marca, e cuidar da 802 00:39:45,880 --> 00:39:46,680 marca primeira citação. 803 00:39:46,680 --> 00:39:47,350 >> AUDIÊNCIA: E apenas acabamento o primeiro. 804 00:39:47,350 --> 00:39:47,480 >> LUCIANO ARANGO: Yeah. 805 00:39:47,480 --> 00:39:48,400 E apenas terminar o primeiro. 806 00:39:48,400 --> 00:39:48,790 Sim, isso é certo. 807 00:39:48,790 --> 00:39:50,800 Isso é o que eu posso fazer. 808 00:39:50,800 --> 00:39:51,890 É. 809 00:39:51,890 --> 00:39:52,980 Quaisquer outras perguntas como essa? 810 00:39:52,980 --> 00:39:54,230 Essa é uma ótima pergunta. 811 00:39:54,230 --> 00:39:56,960 812 00:39:56,960 --> 00:39:59,790 Não, sim, talvez. 813 00:39:59,790 --> 00:40:06,150 Espero que vocês vão fazer uma espécie de mais sentido quando você estuda e SQL 814 00:40:06,150 --> 00:40:06,650 coisas assim. 815 00:40:06,650 --> 00:40:07,980 Mas certifique-se - 816 00:40:07,980 --> 00:40:10,340 manter essas ferramentas no relógio. 817 00:40:10,340 --> 00:40:12,760 Desculpe, essas ferramentas mais aqui. 818 00:40:12,760 --> 00:40:14,200 Estas ferramentas são grandes. 819 00:40:14,200 --> 00:40:17,190 Se alguém tiver alguma dúvida, você também pode enviar e-mail me. 820 00:40:17,190 --> 00:40:19,020 Este é o meu e-mail normal. 821 00:40:19,020 --> 00:40:25,015 E este é o meu e-mail de trabalho, que é quando eu trabalho em SEAS. 822 00:40:25,015 --> 00:40:26,040 >> OK, obrigado. 823 00:40:26,040 --> 00:40:26,740 Obrigado, pessoal. 824 00:40:26,740 --> 00:40:27,860 Você está pronto para ir. 825 00:40:27,860 --> 00:40:28,830 Você não tem que ficar aqui. 826 00:40:28,830 --> 00:40:29,570 Não bater palmas. 827 00:40:29,570 --> 00:40:30,170 Isso é estranho. 828 00:40:30,170 --> 00:40:31,420 OK, obrigado, pessoal. 829 00:40:31,420 --> 00:40:32,320