Luciano Arango: OK, persoal. O meu nome é Luciano Arango. Eu son un estudante de segundo ano en Adams House. E nós imos estar falando seguridade web defensa activa. Entón, eu traballo para a Oficina de Información Seguridade na Seas. E durante o verán, eu ingresado en SeguraTec, que era unha información empresa de seguridade que serviu ao Banco de Columbia. Isto é principalmente onde eu aprendín o que eu aprendín ata agora. E así algún do material que estamos vai pasar por riba hoxe, non temos realmente falado en clase. Pero imos en breve. Será como SQL, JavaScript. E nós realmente non teño ido sobre el. Así podo clasificar de voo por el, e pode non saber algunhas cousas. Pero pronto, vai aprender. E todo iso vai facer sentido. Tamén outra cousa - permanecer ético. Algunhas das cousas que aprende, vostede podería usar de forma non ética. Se é o seu, definitivamente probar. Eu sempre motivar vostedes para tratar os seus propios servidores, proba suceder dentro deles. Vexa se pode penetrar neles, se pode obter dentro deles. Pero non de calquera outra persoa. Policías non me gusta moito das bromas e o todo, imos poñer isto aquí. Estabamos a xogar. Fican con moita rabia. Cabeza Así, ao longo deste sitio web. Teño que abriu aquí. Este é un sitio web, e ten unha morea de exemplos. O que pasa é que o primeiro exemplo é unha especie de será moito máis fácil que o último exemplo, nun sentido que o primeiro exemplo é totalmente certo. E a última é unha especie do que un persoa normal seguridade web faría. Pero aínda pode tipo de evitar isto. E imos centrar nunha e dous, un e dous exemplos. Aceptar. Imos comezar co cross-site scripting. JavaScript é executado en navegador do cliente. É unha linguaxe de programación que usa para ser executado no navegador do cliente para non ten que actualizar a páxina e volver ao servidor. Ten que correr. Por exemplo, Facebook, non ten para volver cargar a páxina web para novo estado Actualizacións para subir. Está a usar JavaScript para xerar todas esas cousas. Así, podemos inxectar JavaScript malicioso para os sitios. E así, cando enviamos unha ligazón a alguén, poderiamos tipo de envialo con parte do código que queremos. Hai persistente e non persistente JavaScript - -Cross web persistente e non persistente script, quero dicir. E a diferenza é que persistente é JavaScript que será gardados na páxina web. E non persistente será JavaScript que realmente vai ocorrer só unha vez. Entón, imos ollar un exemplo rapidamente. Aceptar. Entón este sitio web, simple, nada acontece aquí. E imos tratar introducir algún JavaScript. Entón, a nosa forma de comezar a escribir JavaScript é que comezamos co script comezando. E nós pechalo con guión. Estamos indo simplemente para poñer unha mensaxe - Eu vou te amosar - alerta. Alerta é unha función que Javascript utiliza para presentar algo. Entón, imos tentar iso ben rápido. Eu estou indo a ir, Ola alerta. Ben, eu esquezo de poñer - Aceptar. Entón, iso é simple. Poñemos JavaScript nun sitio web, e el veu. E iso medio que só acontece na nosa web, non? Entón, parece que non é un problema, non? Quero dicir, como podería usar esta maliciosa? Así, a forma que os hackers fan este é realmente sinxelo. Eles van agarralo. Poden enviar este enlace para ti. Se eu vou enviar este enlace para vostede agora, e abri-lo, que vai dicir, Ola, dicindo que o meu sitio está dicindo Olá E por iso, se eu fose dicir algo un algo máis intelixente, se eu tirar unha JavaScript función eu medio de xa escribiu - pero se ollar para el, eu vou sobre el antes de que eu escribín. Entón, nós estamos indo a definir un tempo límite. Imos esperar por un par de segundos. De feito, imos esperar, se Eu non me engano, cinco segundos. Iso vale en milisegundos. E entón o que imos facer é que estamos vai alertar que a sesión caducou a sesión para atrás dentro E nós estamos indo a cambiar o lugar a un lugar diferente. Entón, se eu enviar esta web a alguén, eles van ser navegando por aí, calma. Nada está a suceder. E en cinco segundos, que vai é dicir, a súa versión caducou. Por favor, conectar atrás dentro Xa que premer en Aceptar, vou levalos para outro sitio. Presuntamente, o sitio vai ser semellante ao sitio web que en que estaban antes. E eles van para rexistrar a súa credenciais para o meu sitio, no canto de seu sitio. E para que eu poida enviar persoas unha enviar correo-e con este link. Digo, oh, aquí está unha ligazón. Este é un banco, por exemplo. Digo, aquí, vaia nesta ligazón. E xa que envialo, son estará navegando por aí. Podo esperar por 15 segundos, 20 segundos e logo pop que Favor entrar de novo asinar de novo. Podedes probalo con moito máis cousas. É complicado porque vostedes non vin JavaScript, entón pode Non sei algunhas funcións. Pero todo o que tes que facer é comezar con guión, acabar con guión. E pode poñer calquera cousa no medio. Alerta é unha función, por favor espere. Localización Xanela leva a unha nova localización. Pero pode facer moito máis. E así, a idea é que que aproveitar iso. Se eu fose a exemplo dous, e eu posto neste mesmo código, é Non vai funcionar. Entón está imprimindo todo fora debido o que esta web orixinalmente fai é se eu poñer calquera cousa aquí, vai imprimir lo aquí. Polo tanto, non é a impresión de nada. Este exemplo é, en realidade, a comprobación a ver se o guión está aí. Entón, si, vai adiante. Pregunta-me. Audiencia: non está enviando unha solicitude GET ou POST? Luciano Arango: Yeah. son envío dunha solicitude get. Audiencia: É? Luciano Arango: Yeah. Tamén navegadores usan solicitudes POST. Pero eu estou tentando amosar solicitudes get para que poidamos ver o que está realmente a suceder. E así, se miramos cara ao código - polo que non funciona máis. E se derme un ollo neste código, que será no exemplo dous. Que esta persoa está facendo, a persoa responsable deste navegador - abrirse, OK - está substituíndo a escritura palabra. Este é PHP, o que vostedes poderían vin un pouco aínda. Está só substituíndo o guión de palabra co nome. Entón, con todo, se eu ir adiante e pode poñer en - se eu incorporarse o meu código de novo, e eu vou modificalo lo un pouco. No canto de guión, eu vou cambiar el para a escritura cun capital R. E imos ver se este código funciona. Entón non imprimir lo, que é un bo sinal. E espero que en máis de dous segundos, que vai aparecer. Súa versión caducou. Aceptar. Está todo ben. Así, a verificación de guión pode non necesariamente traballar. A persoa - Tamén pode buscar por letras maiúsculas script, minúsculas guión, caso str comparar, comproba que son os mesmos. Pero o hacker pode facer unha especie do que fixemos en Vigenère cando nos mudamos personaxes de volta unha parella, avanzar. E pode descubrir como poñer guión volver alí para que poida inxectar que guión. Entón, o que quere usar é a htmlspecialchars protexer o seu sitio web. E o que isto significa que fai Asegúrese de que o que poñer na - por exemplo, citas ou este superior ou inferior a - substitúese con algo que non será - déixeme achegar por aquí - o comercial real. Ha substituír aqueles HTML especial personaxes que veremos cando estivermos falando - Oh, iso me vai levar de volta a - estes personaxes aquí mesmo. Estes significan que algo está chegando. A HTML, que soporte a comezar nos di que algo HTML relacionado está chegando. E queremos nos librar diso. Non queremos poñer HTML nun website.k Non queremos que o usuario sexa capaz de poñer algo na súa páxina web que poden afectar a súa web, como guión ou HTML ou algo parecido. O que é importante é que higienizar a entrada do usuario. Así, os usuarios poden entrada de moitas cousas. Pode introducir unha morea de cousas para intentar para enganar o navegador en aínda executar este código de script. O que quere facer é non só ollar para escritura, pero mirar para todo que poderían ser mal intencionado. E htmlspecialchars vai facelo para ti, así que non ten preocuparse con iso. Pero non tente facer por si mesmo tipo de co seu propio código. Está todo o mundo claro XSS? Aceptar. Imos para a inxección de SQL. Así, a inxección de SQL é probablemente a número un vulnerabilidade en diferentes sitios web. É dicir, un bo exemplo - Estaba buscando máis distante por iso. E atopei este artigo incrible, onde Vin que Harvard foi violado, foi cortado. E eu estaba a pensar, así, como eles farían iso? Harvard é a máis impresionante, a maioría garantir universidade nunca. Non? Ben, para violar os servidores, os hackers usaron unha técnica chamada inxección de SQL. Entón, iso pasa o día-a-día. A xente se esquecen de ter en conta para inxección de SQL. Harvard fai. Coido que di aquí, Princeton, Stanford, Cornell. Así coma nós - entón o que é ese SQL inxección que está traendo todo isto persoas para abaixo? Aceptar. Entón SQL é unha linguaxe de programación que que usan para acceder bases de datos. O que nós facemos é seleccionar - entón o que esta le agora é seleccionar todo a partir da táboa. SQL, el cambia a eses bancos de datos que teñen mesas cheas de información. Entón, elección de todo, dende os usuarios onde o nome é nome de usuario. Non? Moi sinxelo. A idea de inxección de SQL é que nós inserir algún código malicioso que faría enganar o servidor para realizar algo diferente do que o que orixinalmente estaba correndo. Entón, digamos que o nome de usuario, que poñemos en 1 ou igual a 1. Entón poñemos nunha ou igual a 1. A forma como vai ler agora será seleccionar dos usuarios, todo de usuarios - iso é todo - onde nome é nome de usuario, pero nome de usuario é ou 1 é igual a 1. Así, o nome non é nada ou 1 é igual a 1. 1 é igual a 1 sempre é certo. Entón, iso vai sempre volver información dos usuarios. Aceptar. Non necesitamos ter a nome de usuario correcto. Podemos só ter todo o que queremos, e ha voltar información que precisamos. Vexamos outro exemplo. Se temos todo, dende a elección do usuario, onde nome é usuarios DROP TABLE - entón o que pensas que isto vai facer se eu poñer o nome de usuario como usuarios DROP TABLE? Alguén ten unha idea? Si Audiencia: Vai dicir el para despexar todas as táboas. Luciano Arango: Vai dicirnos para despexar todo na páxina web, todo na base de datos. E o que as persoas usan iso para - así Vou amosar para vós. Eu desativei soltando as táboas porque eu non quero que caras para botar miñas táboas. Imos dar un ollo niso. Polo tanto, este tira simplemente a información para unha determinada persoa. Entón, como imos ver se isto é afectados por inxección de SQL. Imos comprobar rapidamente se é que podemos poñer algo - déixeme copiar este código. Vou pasar por iso nun segundo. Vou poñer raíz e 1 é igual a 1. Este aquí, este por cento sinal de 23 - o que realmente é, se eu ollar aquí na - a forma como HTML ten en números, se dar un ollo cando poño nun espazo aquí - se eu fose para o espazo algo aquí, ela cambia-lo para un por cento 2. Vostedes vexa iso aquí cando poño nun espazo? O modo como funciona é que só se pode enviar valores ASCII mediante HTML. Así, substitúe, por exemplo, un espazo con 20 por cento. Non sei se vostedes xa vin iso antes. El substitúe unha hashtag con cento 23. Nós ten unha hashtag ao final ou declaración, para que poidamos dicir a base de datos para esqueza comentar este último punto e coma ao final. Queremos que non pensar sobre iso. Nós só queremos que sexa executado todo que temos de antemán e comentar isto. Imos dar un ollo niso. Entón, se eu fose poñer algo incorrecto - imos dicir, por exemplo, eu coloque dous iguais 1, non me dá nada. Cando engada en 1 é igual a 1, e fai voltar algo, iso me di que este é vulnerable a unha inxección SQL. Agora sei que o que quere Coloque despois desta - e, por exemplo, descartar táboas ou algo así vai certamente funcionar. Sei que é vulnerable a inxección de SQL porque sei que debaixo do capó, está deixando me facer o 1 é igual a 1 cousa. OK? E se miramos para estas outras, número dous e número tres, é vai facer un pouco máis de verificación por baixo da capo do que se trata. Así, calquera persoa permitir a caída aínda nada nin intentou? Vostedes especie de obter SQL aínda? Porque sei que vós non ten viu aínda, entón é medio confuso para vós. Imos dar un ollo. Entón, cal é o camiño para evitar SQLI? Aceptar. Entón, iso é moi importante porque caras definitivamente querer evitar iso nos seus sitios. Se non, todos os seus amigos están indo para aproveitar sarria de ti cando caer todo súas tabelas. Así, a idea é que arranxar o SQL de certa forma, mentres combinar que as entradas do usuario con unha determinada cadea. Así, a forma como funciona isto é vostede preparar a base de datos. Selecciona un nome, cor e calor desde unha base de datos chamada froita. E entón onde está a menos de calor, e imos poñer un punto de interrogación alí dicindo que nós estamos indo para a entrada algo nun segundo. E a cor é igual, e poñemos unha pregunta marca dicindo que imos entrada algo nun segundo ben. OK? E, entón, executalo, poñendo en 150 e vermello. E iso vai comprobe Asegúrese de que estes dous - esa matriz pode comprobar que estes dous son un enteiro e que este é un cadea. Entón nós imos, e imos buscar todo, imos poñer-la en vermello. Isto significa que buscar todos. Isto significa que realmente executar SQL declaración e poñelas de novo en vermello. Aquí imos facer o mesmo, pero nós facer o mesmo para amarelo. E nós buscar todos. E, deste xeito, podemos evitar que o usuario de poder introducir algo que non é o que nós indicado, unha cadea ou un número enteiro, por exemplo. Eu estaba falando anteriormente sobre depender doutros. Cando vostedes iniciar o seu proxecto, está máis definitivamente vai utilizar inicio ou algo semellante. Vós xa usa WordPress? Probablemente vostedes teñen usado WordPress máis probable. Así, o problema co uso cousas doutras persoas - Eu só vou a Google ben rápido Vulnerabilidade WordPress. Se eu conseguir isto ata agora - Eu literalmente fixo un dous segundo Google. Podemos ver que o WordPress - este é datado en setembro '12. 26 é actualizado. A configuración por defecto do WordPress antes de 3.6 non impide que estes certos envíos, o que pode facer máis doado para ataques cross-site scripting. Así, unha historia rápida, xa que estabamos a traballar con - así que eu era, no verán, traballando un prácticas. E nós estabamos a traballar cunha especie de como unha gran empresa de tarxeta de crédito. E contan con algo chamado - Non sei se vostedes xa xogou cun produto chamado Joomla. Joomla é un produto que se usa para control - unha especie de similar ao WordPress, usado para construír sitios web. Entón eles tiveron o seu sitio traballando en Joomla. É dicir, en realidade, unha tarxeta de crédito empresa en Colombia. Vou leva-lo ao seu web rapidamente. Entón, eles usaron o Joomla. E eles non tiñan actualizado Joomla para a última adición. E así, cando estabamos dando un ollo en o seu código, fomos capaces de realmente ir dentro do seu código e roubar todo o información de tarxeta de crédito que eles tiñan, todos os números de tarxeta de crédito, os nomes, os enderezos. E este foi só - eo seu código foi perfectamente ben. Tiñan gran código. Era toda seguridade. Eles Checa todos os bancos de datos. Fixeron-se cross-site script estaba ben. Pero utilizaban algo que non era actualizado, que non era seguro. E así que os levou a - entón vostedes está indo definitivamente para utilizar outro código, frameworks doutras persoas do pobo para construír o seu sitio. Asegúrese de que son seguros, porque ás veces non é vostede, o que comete un erro. Pero alguén comete un erro, e entón caer por causa diso. Claves e PII. Así contrasinais. Aceptar. Imos dar un ollo a contrasinais rapidamente. Aceptar. Por favor me diga que todos usa seguro - Espero que todos aquí usa contrasinais seguras. Estou só deixando que como unha suposición. Entón vostedes están indo definitivamente para almacenar contrasinais para os seus sitios web. Vai facer algo parecido un login ou algo así. O que é importante é non gardar contrasinais en texto simple. Isto é moi importante. Non quere para almacenar unha contrasinal sen cifrar. E vostede definitivamente non quere realmente para almacena-lo nun hash dunha maneira. Entón, o que un hash é un xeito que, cando xerar unha palabra, cando se pon este palabra nunha función hash, será xerar atrás algún tipo de críptica mensaxe ou conxunto enigmática das chaves. Vou amosar-lle un exemplo. Vou botar eles password1 palabra. Suma MD5 Entón me vai voltar algún tipo de información estraña. O problema é que a xente por aí que quere entrar en sitios teñen xa descubriu tipo de todos os hashes MD5. O que fixeron e se sentaron no seu ordenadores, e eles hash cada soa palabra posible por aí, ata teñen unha especie de o que é iso. Se eu fose ollar iso - Eu só peguei ese hash. Se eu conseguir este hash - se eu entrar nun sitio web, e eu creo ese hash, porque eu chegar ao bases de datos, e eu buscalo, alguén xa entender iso por min. É. Entón, as persoas sentaron-se, e todo o md5 hash que poñer, van voltar a vostede algo que é unha palabra. Se eu botar outra palabra, como - Eu non sei - trees2. Eu non quero estar desapontado polas miñas procuras de Google. Alí está, trees2. Entón, unha morea de sitios aínda usan suma MD5. Din que, oh, é seguro. Non estamos almacenando en texto simple. Temos este hash MD5. E todo o que teño que facer é só Google o número. Eu nin sequera teño que computar. Só podo buscar en Google, e alguén xa fixo iso por min. Aquí está unha morea deles. Aquí é unha morea de contrasinais. Entón, en definitiva non usa hash MD5, porque todo o que necesitas facer é Google. Entón o que quere empregar no lugar? Aceptar. Algo chamado de salgadura. Entón, o que salga é - Vostedes lembran cando eramos falando de forma aleatoria en - Eu non estou seguro do que PSET que era - foi el PSET alí ou catro? Estabamos falando de atopar a agulla no palheiro. E no pset, el dixo que podería realmente descubrir o que chou xera, porque alguén xa pasou aleatorios un millón de veces e só tipo de formado o que xeran. O que quere facer é poñer nunha entrada. Entón é iso que tipo de salgadura é. Xa descubrín o que salga regresa a cada traballo. Entón, o que fai é salgadura pór nun sal. Vostede pon nunha determinada palabra. E vai botar esa palabra, dependendo sobre o que poñer aquí. Entón, se eu botar un contrasinal con este sentenza, que vai botar diferente se eu botar password1 cunha frase distinta. É unha especie de dalo dun lugar a comezar a hashing para comezar. Por iso, é moito máis difícil de calcular, pero aínda pode calcula-lo, especialmente se usa un mal sal. Persoas xa tamén descubriu sales comúns e descubriu o que iso é. Sales aleatorias son moito mellor, pero a mellor maneira é utilizar unha cousa chamada cripta. E o que cripta permite que - de xeito que estas funcións son xa construído para ti. Moitas persoas esquecen que, ou esquecen-se de usalo. Pero se eu ollar para arriba cripta PHP, cripta xa volve unha cadea de hash para min. E realmente salga miúdo e hashes lo moitas veces. Entón, nós non temos que facelo. Entón todo o que tes que facer é envialo en cripta. E iso vai crear unha gran de hash sen lle ter que se preocupar de sal ou calquera cousa. Por se fose sal, ten para lembrar o que usou sal porque se non, non pode obter o seu contrasinal para atrás sen a sal que usou. Aceptar. E tamén identificabel información. Entón, seguridade social, a unha tarxeta de crédito - iso é moi evidente. Pero ás veces a xente esquecen o xeito no que obras é, a cantidade de información que realmente precisa atopar algunha persoa? Alguén fixo un estudo sobre este un camiño de volta. E foi así, se ten un nome completo, vostede non pode atopar alguén que facilmente. Pero e se ten un nome completo ea súa data de nacemento? Isto é suficiente para identificar alguén especialmente? E se ten o seu nome e enderezo de rúa que vive? Isto é suficiente para atopar alguén? E iso é cando eles cuestionan, o que é información de identificación persoal, e o que ten que preocuparse non doar? Se doar identificabel información de que alguén lle dá, podería ser procesada. E nós definitivamente non queremos iso. Entón, cando está poñendo a súa web para fóra, e ten unha moi legal deseño, espero que fixo un proxecto final incrible. Calquera tipo de querer poñelas alí fora. Quere estar seguro de que todo o que está tirando do usuario, se é información de identificación persoal, Quere estar seguro de que está a ser realmente coidado con el. Inxección Shell. Aceptar. Inxección Shell permite o invasor acceder á súa liña de comandos real no seu servidor. E así é capaz de executar código que non pode controlar. Imos dar un exemplo desta fermosa secuencia aquí. Ou tamén para o sitio de novo, eu son indo a ir á inxección de código. Entón, o que iso fai é - é tamén o que estabamos mirando antes. Estamos permitindo que o usuario poñer en calquera el quere, e só pode imprimir o que quere. Entón eu vou poñer unha chamada. Que dicir - que vai comezar pola concatenação. Por iso me deixa realizar calquera comandar carreira da persoa antes e meu mando. E eu estou executando un comando do sistema. E estes últimos cordas son - lembre se o que eu falei con vós sobre, mentres que ten que codificar lo nun método de URL. Se eu executar iso agora - Eu vou te amosar por aquí - vai ver que eu rematar se executar un comando. Este é realmente o servidor real que o meu sitio está en execución. Entón, nós non queremos iso, porque eu podo correr - Este servidor non é o meu. Entón eu non quero romper a súa irmá, servidor de Marcus. Pero pode executar máis ordes que son perigosos. E potencialmente, pode borrar arquivos, borrar directorios. Podo eliminar un determinado directorio se Quería, pero eu non quero facelo con Marcus. El é un cara legal. El me prestou o seu servidor. Entón eu vou deixar fóra na boa. Entón, o que nós non queremos usar - non facer quere usar eval ou sistema. Eval ou sistema permite facer estas chamadas do sistema. Medios Eval avaliar. Sistema significa que eu execute. É realizar algo no sistema. Pero podemos prohibir estas cousas en PHP para que non usalos. E facer a carga de ficheiros. Eu ía facer unha incrible cousa con a carga de ficheiros. Pero, como dixen a vostedes, o meu arquivo cousa de carga non funciona. Se eu fose facer a carga de un arquivo de agora - se eu fose facer a carga de un arquivo, e é unha imaxe - ten unha cousa de carga que é unha imaxe. Iso é bo. Nada acontece. Pero se ten un arquivo de subida, para exemplo, e que o usuario realmente envíos un arquivo PHP ou un arquivo exe ou algo así, entón podería potencialmente temos un problema. Este estaba a traballar antes. Desafortunadamente para min, é non funciona. Se eu, por exemplo, cargar este ficheiro, eu son non obtendo permiso para cargar o arquivo debido ao servidor non sendo a miña. Entón, o cara é moi intelixente. Entón, nós non queremos - Vou amosar para vós - OK, estas son algunhas ferramentas moi legais. Entón, estas - entrar - se vós ten Firefox - espero que fai. Hai dous add-ons chamados SQL Inject Eu e Cross-Site Script min. Abren-se tan pouco de lado bares xunto. E se eu fose para ir a CS60, por exemplo - entón o que fai é que parece para todas as formas que - espero, eu non vou estar en apuros por iso. Pero Aceptar. Aquí está o sistema de pinos. Entón, cando comezar a buscar buratos no o sistema, o primeiro que fago é abrir esta pequena fermosa ferramenta no lado. E eu vou probar formas con ataques de automóbiles. E entón o que isto significa que vai lentamente abrir unha morea de navegadores. Aquí é unha morea de navegadores. E el está tratando cada combinación única de cross-site scripting que posibelmente sexa, se ve á beira. E me vai dar un resultado tipo de cal é a resposta. Todo pasar. Obviamente, todos eles pasan. Quero dicir, son moi intelixentes persoas alí enriba. Pero se eu fose a correr - Tiven momentos antes, cando eu executar este en proxectos finais dos alumnos. Eu simplemente executar SQL Inject Me con todos os ataques diferentes. E el está intentando inxectar SQL este servidor Pino. Entón, se nós rolar para abaixo, exemplo, el di - iso é bo, se volve. Por iso, deu algúns valores. E servidor devolveu un código que foi negativo. Eliminar temporalmente. Iso é bo. Tenta todos eses probas. Entón, vostede podería simplemente executar - Gustaríame poder atopar un sitio real rápido, que me deixou - quizais a tenda CS50. Guau, iso vai tomar un camiño moi longo. Vou deixar a primeira proba non rematar ben. Por iso, está reclamando. Entón, estas son as tres cousas. Estas ferramentas son gratuítas. Podes baixa-los e executa-los en seu sitio, e só pode dicir-lle se ten cross-site scripting, se ten SQL, se ten algo parecido. Eu son unha especie de desorde. O que é importante - OK, por iso nunca confiar no usuario. Calquera que sexan as entradas do usuario para ti, facer seguro de que higienizar-lo, limpa-lo, comprobar as cousas certas, que está dando o que quero que el para lle dar. Estea sempre actualizado sobre o que os cadros que en realidade está a usar. Se usar algo como arranque - Sei que vostedes van utilizar arrincar porque está indo a ir sobre iso en breve na clase - e WordPress ou algo parecido, normalmente isto pode ser cortado. E entón non necesita nin saber. Está só a executar o seu sitio. E é totalmente seguro. E vai para abaixo. Entón, eu estou pescando moi cedo. Pero quero agradecer Pentest Labs. Vou amosar para vós algo chamado Pentest Labs. Se vostedes están realmente interesados ​​en que a seguridade é realmente, hai unha sitio chamado Pentest Labs se vostedes van para iso agora. Oh, así, non é iso. Eu só vou para executa-lo así. Google di-me a resposta. Aceptar. E ensina usalo - por iso di, aprender a penetración web probar o camiño correcto. Ela ensínalle - espera-se, vostede é unha persoa ética. Pero el ensina como pode ollar como pode comezar dentro de sitios. E se aprender como pode entrar sitios, podes aprender a protexer-se de estar sitios dentro. Déixeme achegar porque quizais vostedes non están mirando para ese dereito. Da inxección de SQL que desembolsar, de xeito tipo de como podo comezar a partir de SQL inxección de desembolsar. E vostede descargue esta máquina virtual. E a máquina virtual xa vén co sitio web que está a indo a probalo. Fai a descarga deste PDF. E el vai amosar liña por liña o que tes que facer, o que verifique. Isto é o que un atacante realmente fai para comezar dentro dun sitio web. E algunhas destas cousas é complicado. Gustaríame poder pasar por riba de máis cousas con vostedes. Pero eu me preocupo que vostedes non ten realmente - iso é o que eu fun con vostedes, probas web para probas de penetración. Realmente non sei que SQL é eo que - Seminario de Carl Jackson é incrible tamén. Vostedes non saben especie de que é iso. Pero se vai para o sitio, e vostede descargar estes tutoriais e estes PDFs, pode dar un ollo ao tipo de que a zona de seguridade realmente en probas de penetración, vexa como pode obter sitios dentro e protexer se a partir del. Entón se eu fai unha visión super-rápida, será evitar cross-site scripting. Quere usar htmlspecialchars cada cronometrar o usuario inserir algo. Evitar inxección de SQL. Se fai iso, xa está mellor que Harvard era cando se roto. E asegúrese de súas claves non están en texto sen formato. Asegúrese de que fai non só unha forma de hash eles, pero que use cripta, PHP función que eu mostre a vostedes. Desta forma, ten que ser bo. Ademais, se os seus amigos deixar, executa SQL Inject Me nos seus sitios. Executar cross-site scripting nos seus sitios. E vai ver unha chea destes sitios ten unha tonelada de vulnerabilidades. É incrible o que a xente esquecen para higienizar as súas bases de datos ou para facer seguro do que escribir o da persoa non é código de script. Aceptar. Eu medio que terminou moi cedo. Pero, se alguén ten algunha dúbida sobre calquera cousa, pode tirar en min unha pregunta. É. Vai, vai. Audiencia: Eu só quero preguntar, podes explicar como o arquivo enviar exactamente obras. Luciano Arango: Yeah. Entón deixe-me amosar-lle o arquivo Cargando rapidamente. Entón a carga do arquivo - o problema sagacidade a carga do arquivo agora é que - Vou abrir o código para vós ver o código detrás dos bastidores. E é cargar. Aquí está o código para o uploader de arquivos. Estamos intentando ir a este directorio aquí. E estamos tentando, así que introducir o arquivo, arquivo isset - por iso, cando hai unha arquivo en arquivos, esa imaxe, a continuación, tratamos movelo aquí. Nós pegar o arquivo aquí. O método é POST, tipo, imaxe, arquivo. E estamos enviando este ficheiro. E, a continuación, xa que temos iso, entón cando arquivo ten unha imaxe, estamos intentando envialo para este directorio. O problema é que o sitio non é me deixando ir a este directorio, porque non quere que eu volva. El non quere que eu vaia - Teño que ir - por iso aquí está a carga. Velaquí imaxes. Eu teño que ir todo o camiño de volta para a comezando e poñelas alí e, a continuación, ir e poñelas no directorio. Entón, se eu estaba correndo unha fiestra de terminal, e eu quería cambiar un arquivo - [Inaudível] pode velo. Se eu quixese mover un ficheiro, eu teño para poñer o nome do ficheiro e, a continuación, o camiño completo Quero enviar. E, a continuación, o servidor non é deixarme volver. E por iso non está deixando me chegar a ese ficheiro. Pero normalmente - entón non hai un código para a carga de un arquivo. Entón, normalmente o que vai pasar é que o persoa non está comprobando se o meu arquivo remata con. jpeg, entón eu quere comprobar. Déixeme abrir un exemplo moi rápido. Aceptar. Esta persoa correcta - así exemplo dous está comprobando se preg_match - aquí está aquí - para asegurarse de que termina coa PHP, que é bo. Iso é bo. Pero hai unha gran verdade problema con este. Iso é bo. Pero se eu fose poñer un ficheiro chamado myfavoritepicture.php.jpeg, eu podería aínda potencialmente librarse do jpeg e executar it.k que o PHP é perigoso. Non quere que a persoa sexa capaz para executar código no seu sitio. Pero entón. JPEG deixa pasar. A idea é o que realmente quere facer non é ter arquivos, A. Pero, OK, o que realmente quere facer é asegurarse de que le sobre o mundo enteiro. E non hai nada. Php nel. Non hai. Php no nome completo do ficheiro. Audiencia: Pero podería poñer. jpeg ao final. Os servidores aínda executar o código. Luciano Arango: Non, non vai executado no inicio. Ten que ir cara atrás e tratar de a ver se pode - Audiencia: Entón temos que - OK, só outro conxunto que implica - Luciano Arango: Yeah. Audiencia: Aceptar. Luciano Arango: Yeah. Aceptar. Algunha pregunta? Aceptar. Vou deixar isto e clasificar de intentar ver se vostedes poden - os outros son un pouco máis complicado, porque esixen moito máis coñecemento de SQL que o comezando coñecemento de SQL é web e o que é JavaScript. Pero eu vou tentar continuar así, e espero que vostedes van aprender sobre iso e tratar de dar un ollo ao o que pode facer e cantos exemplos pode pasar. Alguén ten algunha outra preguntas sobre o tema? Dalle. Si, tirar, tire. Si, vai adiante. Dalle. Audiencia: Aceptar. Entón eu oín sobre como Magic Quotes non son seguros o suficiente. Luciano Arango: Qué - Magic Quotes? Audiencia: Yeah. Por iso, engade - por iso, sempre que entrada algo, el sempre engade comiñas. Luciano Arango: Yeah. É. Aceptar. Audiencia: E entón eu penso que traballou, pero entón eu procurei-o. E el dixo que non é bo. Pero eu non sei por que. Luciano Arango: Yeah. Audiencia: Non use Magic Quotes, por que non é seguro. Luciano Arango: Aceptar. Presupostos tan máxico é cando inserir SQL e xa engade a cotización para ti. Audiencia: Sempre engade comiñas en torno a todo o que poñer dentro Luciano Arango: Yeah. Así, o problema con isto é que - Vou dar un ollo - Audiencia: Como se adquiren a instrución SQL? Ou eu creo que podería ser como cita seleccionar. Luciano Arango: Si, o que precisa boas presupostos para o SQL. Audiencia: Non, pero o servidor fai isto por ti. Luciano Arango: Estas pequenas citas aquí, estas pequenas citas? Audiencia: Yeah. Luciano Arango: Yeah. O problema é que pode comente o último - OK, entón o que podo facer é que podo comentar fóra - así que imos dar un ollo - deixarme abrir un arquivo de edición de texto. Déixeme só modificar esta aquí directamente. Aceptar. Podedes ver iso claramente? ¿Que podo facer é que podo comentar fóra o último. Isto vai comentar a última. E entón eu vou poñer aquí, poñer todo o material malicioso aquí. Así, o usuario é realmente introducindo, non? O usuario non está introducindo as cousas, non? Isto é o que eu estou indo para a entrada como a persoa que trata de entrar. Vou poñer en - esta é unha aspa. É só rabiscada por erro. E entón, o que o código vai facer - Sentímolo, eu vou levar isto para fóra. Que o código vai facer é que vai engadir a primeira comiñas aquí. E vai a engadir o último comiñas tamén. E tamén vai engadir o última, derradeira aspa. Pero eu estou comentando estes cotización marca para fóra, para que eles non son executados. E eu estou rematando esta cita marcar aquí. Vostede entendeu? Está perdido? Eu podo comentar a última cotización marca, e coidar da marca primeira cita. Audiencia: E só acabado o primeiro. Luciano Arango: Yeah. E só rematar o primeiro. Si, iso é certo. Isto é o que podo facer. É. Calquera outras preguntas como esta? Esta é unha boa pregunta. Non, si, quizais. Espero que vostedes van facer unha especie de máis sentido cando estuda e SQL cousas así. Pero asegúrese se - manter estas ferramentas no reloxo. Sentímolo, estas ferramentas máis aquí. Estas ferramentas son grandes. Se alguén ten algunha dúbida, tamén se pode enviar correo-e me. Este é o meu correo normal. E este é o meu correo electrónico de traballo, que é cando eu traballo en Seas. OK, grazas. Grazas, persoal. Está preparado para ir. Non ten que estar aquí. Non bater palmas. Isto é raro. OK, grazas, persoal.