LUCIANO Arango: OK, guys. Jina langu ni Luciano Arango. Mimi nina sophomore katika Adams House. Na tunakwenda kuzungumza juu ya mtandao usalama kazi ya ulinzi. Basi, mimi kazi kwa Ofisi ya Habari Usalama katika SEAS. Na juu ya jua, mimi interned katika SeguraTec, ambayo ilikuwa habari usalama wa kampuni kwamba aliwahi kwa Benki Kuu ya Columbia. Hiyo ni zaidi ambapo mimi kujifunza nini nimejifunza hadi sasa. Na hivyo baadhi ya vifaa kwamba sisi ni kwenda juu leo, tuna si kweli kuongelea katika darasa. Lakini sisi hivi karibuni. Ni kwenda kuwa kama SQL, JavaScript. Na sisi si kweli wamekwenda juu yake. Ili nipate aina ya ndege kwa njia hiyo, na unaweza kujua baadhi ya mambo. Lakini hivi karibuni, wewe utakuwa kujifunza. Na itabidi wote mantiki. Pia kitu kingine - kukaa kimaadili. Baadhi ya mambo ambayo kujifunza, inaweza kutumia katika njia zisizo za kimaadili. Kama ni yako, dhahiri kujaribu. Mimi dhahiri kuwahamasisha wewe guys kujaribu seva yako mwenyewe, jaribu kwenda ndani yao. Kuona kama unaweza kupenya yao, kama unaweza kupata ndani yao. Lakini si mtu mwingine. Cops si kweli kama utani na kwa ujumla, sisi kuweka hii hapa. Sisi messing kote. Wao kupata kweli hasira. Hivyo kichwa juu ya tovuti hii. Mimi na kufunguliwa hapa. Hii ni tovuti, na ina rundo la mifano. Kinachojitokeza ni kwamba mfano wa kwanza ni aina ya kwenda kuwa rahisi sana kuliko mfano mwisho kwa maana ya kwamba mfano wa kwanza ni uhaba kabisa. Na ile ya mwisho ni aina ya nini a kawaida mtandao usalama mtu atafanya. Lakini bado unaweza aina ya kupata suala hilo. Na tunakwenda kulenga mmoja tu na mbili, mifano moja na mbili. OK. Hebu kuanza na msalaba-site scripting. JavaScript ni kukimbia juu ya mteja browser. Ni lugha ya programu kwamba matumizi ya kukimbia kwenye browser mteja ya hivyo huna update tovuti na kurudi nyuma kwa server. Una mbio. Kwa mfano, Facebook, huna Reload tovuti kwa ajili ya hadhi mpya updates kuja. Ni kwa kutumia JavaScript kuzalisha mambo hayo yote. Ili tuweze kuingiza malicious JavaScript katika tovuti. Na kwa njia hiyo, wakati sisi kutuma kiungo kwa mtu, tunaweza aina ya kutuma kwa baadhi ya maadili ya kwamba tunataka. Kuna kuendelea na mashirika yasiyo ya kuendelea JavaScript - kuendelea na mashirika yasiyo ya kuendelea msalaba-site scripting, I mean. Na tofauti ni kuwa kuendelea ni JavaScript ambayo itakuwa kuokolewa kwenye tovuti. Na mashirika yasiyo ya kuendelea itakuwa JavaScript kwamba kweli tu kutokea mara moja. Basi hebu tuangalie mfano halisi haraka. OK. Hivyo tovuti hii, rahisi, hakuna kinachotokea hapa. Na sisi ni kwenda kujaribu kuingiza baadhi ya JavaScript. Hivyo njia sisi kuanza kuandika JavaScript ni sisi kuanza na script mwanzo. Na sisi karibu ni pamoja na script. Sisi ni tu kwenda kuweka ujumbe - Mimi nitakuonyesha - tahadhari. Tahadhari ni kazi ambayo JavaScript anatumia kuonyesha kitu fulani. Hivyo basi jaribu ni kweli haraka. Mimi nina kwenda, tahadhari hello. Naam, mimi alisahau kuweka - OK. Hivyo kwamba ni rahisi. Sisi kuweka JavaScript kwenye tovuti, na alikuja up. Na ni aina ya hutokea tu kwenye tovuti yetu, sawa? Hivyo inaonekana kama siyo tatizo, sawa? I mean, jinsi unaweza kutumia hii kwa nia mbaya? Hivyo njia kwamba Hackare kufanya hii ni kweli rahisi. Wao wanaenda kunyakua hiyo. Wanaweza kutuma kiungo na wewe. Kama mimi itabidi kutuma kiungo huu na wewe sasa hivi, na kufungua it up, ni kwenda kwa kusema, hello, akisema kwamba tovuti yangu akiwaambia hello. Na hivyo kama ningekuwa kusema kitu a kidogo nadhifu, kama mimi kuvuta up JavaScript kazi mimi aina ya tayari aliandika - lakini kama ukiangalia hiyo, nitakwenda juu yake kabla ya niliandika yake. Hivyo sisi ni kwenda kuweka timeout. Tunakwenda kusubiri kwa sekunde kadhaa. Kwa kweli, tunakwenda kusubiri kwa, kama Mimi si makosa, sekunde tano. Hii inakwenda katika milliseconds. Na kisha nini tunakwenda kufanya ni sisi ni kwenda kwa macho kwamba kuingia wakati muafaka nje kuingia tena ndani Na tunakwenda na mabadiliko ya eneo kwa eneo tofauti. Basi, ikiwa mimi kutuma tovuti hii kwa mtu, wao wanaenda kuwa na kuvinjari karibu, utulivu. Hakuna kinachofanyika. Na katika sekunde tano, ni kwenda kusema, kuingia kwako wakati muafaka nje. Tafadhali kuingia tena ndani Mara baada ya wao bonyeza OK, mimi nina kwenda kuwapeleka tovuti nyingine. Takribani, tovuti kwenda kuwa sawa na tovuti ya kwamba walikuwa katika kabla ya. Na wao wanaenda kuingia yao sifa katika tovuti yangu badala ya tovuti yao. Na hivyo naweza kutuma watu barua pepe na kiungo hiki. Mimi kusema, oh, hapa ni kiungo. Hii ni benki, kwa mfano. Nasema, hapa, kwenda kwenye kiungo hiki. Na mara moja wao kutuma, wao ni kwenda kuwa kuvinjari karibu. Siwezi kusubiri kwa sekunde 15, sekunde 20, na kisha pop kwamba tafadhali ingia tena katika ishara nyuma. You guys unaweza kujaribu kwa mambo mengi zaidi. Ni ngumu kwa sababu nyie hawajaona JavaScript, hivyo unaweza si kujua baadhi ya kazi. Lakini wote una kufanya ni kuanza kwa script, mwisho na script. Na unaweza kuweka kitu chochote katikati. Tahadhari ni kazi, kusubiri kwa. Dirisha eneo inachukua wewe eneo mpya. Lakini unaweza kufanya hivyo zaidi. Na hivyo Wazo ni kwamba sisi kuchukua mbali. Kama mimi kwenda kwa mfano wawili, na mimi kuweka katika kanuni hiyo, ni si kwenda kufanya kazi. Hivyo ni uchapishaji kila kitu nje kwa sababu nini tovuti hii awali gani ni kama mimi kuweka kitu chochote hapa, kutakuwa na magazeti ya nje hapa hapa. Hivyo si uchapishaji chochote. Mfano huu ni kweli kuangalia kuona kama hati ni huko. Hivyo yeah, kwenda mbele. Kuuliza mimi. Watazamaji: Je, si kutuma a kupata au baada ya ombi? LUCIANO Arango: Yeah. wao ni kutuma kupata ombi. Watazamaji: Ni? LUCIANO Arango: Yeah. Pia browsers kutumia maombi ya mwisho. Lakini mimi nina kujaribu kuonyesha maombi kupata ili tuweze kuona ni nini hasa kinachoendelea. Na hivyo kama sisi kuangalia kanuni hii - hivyo si kazi tena. Na kama sisi kuangalia kanuni hii, ni kwenda kuwa katika mfano mbili. Nini mtu hii ni kufanya, mtu katika malipo ya browser hii - kufungua, OK - nafasi ya neno script. Hii ni PHP, ambayo guys nguvu tumeona kidogo bado. Yeye kuchukua nafasi ya tu neno script na jina. Hivyo hata hivyo, kama mimi kwenda mbele na tu ya kuweka katika - kama mimi kunyakua code yangu tena, na mimi nina kwenda kwa kurekebisha kidogo tu. Badala ya script, mimi nina kwenda na mabadiliko ni kwa script na mji mkuu wa R. Na tunakwenda kuona kama kanuni hii kazi. Hivyo hakuwa na magazeti ya nje, ambayo ni dalili nzuri. Na hopefully katika sekunde mbili zaidi, itakuja pop up. Kuingia yako wakati muafaka nje. OK. Hiyo ni sawa. Hivyo kuangalia kwa script nguvu si lazima kufanya kazi. mtu - inaweza pia kuangalia kwa script uppercase, script lowercase, str kesi kulinganisha, kuhakikisha kuwa ni sawa. Lakini hacker bado anaweza kufanya aina ya nini tulivyofanya katika Vigenere wakati sisi wakiongozwa wahusika nyuma ya wanandoa, kusonga mbele. Na unaweza kufikiri jinsi ya kuweka script nyuma huko ili iweze kuingiza kwamba script. Basi nini unataka kutumia ni htmlspecialchars kwa kulinda tovuti yako. Na nini hii haina ni inafanya kuhakikisha kwamba nini kuweka katika - kwa mfano, nukuu au hii zaidi au chini ya - ni kubadilishwa na kitu ambayo si kuwa - napenda kuvuta hapa - Ampersand halisi. Itakuwa nafasi wale HTML maalum wahusika kwamba tutaweza kuona wakati sisi ni kuzungumza juu - oh, hii ni kwenda kuchukua yangu nyuma - wahusika hawa hapa. Haya yanamaanisha kwamba kitu anakuja. Kwa HTML, kwamba bracket mwanzo inatuambia kwamba kitu HTML kuhusiana anakuja. Na sisi wanataka kujikwamua ya kwamba. Hatutaki kuweka HTML katika website.k Hatutaki mtumiaji kuwa uwezo wa kuweka kitu katika tovuti yao ambayo inaweza kuathiri tovuti yao, kama script au HTML au kitu kama hicho. Nini muhimu ni kwamba kumsafisha pembejeo user. Hivyo watumiaji inaweza pembejeo mambo mengi. Anaweza pembejeo rundo ya mambo ya kujaribu hila browser yako katika bado mbio hii code script. Nini unataka kufanya ni si tu kuangalia kwa script, lakini kuangalia kwa kila kitu ambayo inaweza kuwa mbaya. Na htmlspecialchars kufanya kwamba kwa wewe, hivyo hawana na wasiwasi kuhusu hilo. Lakini si kujaribu kufanya na wewe mwenyewe aina ya pamoja na kanuni yako mwenyewe. Je, kila mtu wazi juu ya XSS? OK. Hebu kwenda SQL sindano. Hivyo sindano SQL pengine ni mazingira magumu namba moja katika tovuti mbalimbali. I mean, mfano mzuri - Nilikuwa tu kutafiti akipiga kwa jambo hili. Na mimi kupatikana makala hii ya kushangaza, ambapo Nikaona kwamba Harvard ilikuwa kuuvunja, ilikuwa hacked. Na nilishangaa, vizuri, jinsi gani wao kufanya hivyo? Harvard ajabu zaidi, wengi kupata chuo kikuu milele. Haki? Naam, kwa uvunjaji watumishi, walaghai kutumika mbinu ya kuitwa SQL sindano. Hivyo hii hutokea katika siku ya msingi siku. Watu kusahau kuchukua akaunti kwa SQL sindano. Harvard gani. Nadhani anasema hapa, Princeton, Stanford, Cornell. Hivyo ni jinsi gani sisi - hivyo ni nini SQL hii sindano kwamba ni kuleta haya yote watu chini? OK. Hivyo SQL ni lugha ya programu kwamba sisi kutumia ili kupata database. Tunachofanya ni sisi kuchagua - hivyo nini hii inasema hivi sasa ni kuchagua kila kitu kutoka meza. SQL, ni mabadiliko ya ndani ya hifadhidata hii kuwa na meza kamili wa habari. Hivyo kuchagua kila kitu kutoka kwa watumiaji ambapo jina ni jina la mtumiaji. Haki? Rahisi ya kutosha. wazo la sindano SQL ni kwamba sisi kuingiza baadhi ya kanuni malicious kwamba ingekuwa hila server katika mbio kitu mbalimbali zaidi kuliko yale ya awali ilikuwa mbio. Basi hebu kusema kwa jina la mtumiaji, sisi kuweka au 1 ni sawa na 1. Hivyo sisi kuweka katika au 1 ni sawa na 1. njia itakuwa kusoma sasa itakuwa kuchagua kutoka kwa watumiaji, kila kitu kutoka watumiaji - hii ni kila kitu - ambapo jina ni jina la mtumiaji, lakini jina la mtumiaji ni au 1 ni sawa na 1. Hivyo jina ni kitu au 1 ni sawa na 1. 1 sawa na 1 daima ni kweli. Hivyo hii itakuwa daima kurudi habari kutoka kwa watumiaji. OK. Hatuna haja ya kuwa na jina la mtumiaji sahihi. Tunaweza tu kuwa na kitu chochote kwamba tunataka, na itakuwa kurudi habari kwamba tunahitaji. Hebu tuangalie mfano mwingine. Kama tuna kuchagua kila kitu kutoka kwa mtumiaji, ambapo jina ni tone watumiaji TABLE - hivyo unafikiri nini hali hii kufanya kama mimi kuweka katika jina la mtumiaji kama watumiaji tone TABLE? Mtu yeyote kuwa na wazo? Ndiyo. Watazamaji: Ni kwenda kuwaambia ni dampo meza zote. LUCIANO Arango: Ni kwenda kutuambia dampo kila kitu katika tovuti, kila kitu katika database. Na nini watu kutumia hii kwa - hivyo Mimi nina kwenda kuonyesha nyie. Mimi walemavu kuacha meza kwa sababu mimi sitaki ninyi guys kushuka meza yangu. Hebu tuangalie hii. Hivyo hii tu pulls juu ya habari kwa mtu fulani. Hivyo ni jinsi gani sisi kujua kama hii ni walioathirika na SQL sindano. Sisi ni kwenda kuangalia halisi haraka kama tunaweza kuweka kitu - napenda nakala ya kanuni hii. Mimi nina kwenda juu yake katika pili. Mimi naenda kuweka mizizi na 1 ni sawa na 1. Haki hii hapa, hii asilimia ishara 23 - nini ni kweli, kama mimi kuangalia haki hapa katika - njia HTML inachukua katika idadi, kama wewe kuangalia wakati mimi kuweka katika nafasi hapa - kama ningekuwa nafasi kitu hapa, ni mabadiliko ya ni asilimia 2. Je, guys kuona haki hii hapa wakati mimi kuweka katika nafasi? Njia hiyo kazi ni kwamba unaweza tu kutuma maadili ASCII kupitia HTML. Hivyo nafasi, kwa mfano, nafasi kwa asilimia 20. Sijui kama wewe guys tumeona kwamba kabla ya. Ni nafasi ya alama kwa asilimia 23. Tunahitaji alama mwishoni mwa au taarifa ili tuweze kuwaambia orodha ya kusahau maoni nje semicolon hii ya mwisho mwishoni. Tunataka kwa kufikiri juu ya hilo. Sisi tu unataka kuendesha kila kitu kwamba tuna kabla na maoni kwamba nje. Hebu tuangalie katika hilo. Hivyo kama ningekuwa kuweka kitu kibaya - hebu sema kwa mfano, mimi kuweka 2 usawa 1, haina nipe kitu chochote. Wakati mimi kuweka katika 1 ni sawa na 1, na ni gani kurudi kitu, hii ananiambia kwamba hii ni hatari kwa SQL sindano. Mimi najua sasa kwamba kila Mimi kuweka baada ya hii - na kwa mfano, kuacha TABLES au kitu kama hicho dhahiri kazi. Mimi najua ni katika mazingira magumu na SQL sindano kwa sababu najua kwamba chini ya Hood, ni kuruhusu mimi kufanya 1 sawa na 1 kitu. OK? Na kama sisi kuangalia hawa nyingine, namba mbili na namba tatu, ni kwenda kufanya kidogo zaidi ya kuangalia chini ya kofia ya ni nini. Hivyo mtu yeyote kuwawezesha kushuka chochote bado au walijaribu? Je, guys aina ya kupata SQL bado? Sababu mimi najua wewe guys na si kuonekana kuwa bado, hivyo ni aina ya utata kwa nyie. Hebu tuangalie. Basi nini njia ya kuzuia SQLI? OK. Hivyo hii ni muhimu kwa sababu ninyi guys dhahiri wanataka kuzuia hii katika tovuti yako. Kama siyo, rafiki yako yote ni kwenda kufanya furaha ya wewe wakati kushuka wote meza yako. Hivyo wazo ni kwamba kukarabati SQL kwa njia fulani, ambapo mechi ya nini pembejeo user kwa kamba fulani. Hivyo njia hii kazi ni wewe kuandaa database. Kuchagua jina, rangi, na kalori kutoka orodha ya aitwaye matunda. Na kisha ambapo kalori ni chini, na sisi kuweka alama swali kuna akisema tunakwenda pembejeo kitu katika pili. Na rangi sawa, na sisi kuweka swali alama akisema tunakwenda pembejeo kitu katika pili pia. OK? Na kisha sisi nitafanya hivyo, kuweka katika 150 na nyekundu. Na hii kuangalia kufanya kuhakikisha kwamba hizi mbili - safu hii kuangalia kwamba hawa mbili ni integer na kwamba hii ni kamba. Kisha sisi kwenda, na sisi kuchota wote, sisi kuiweka katika nyekundu. Hiyo ina maana sisi kuchota wote. Ina maana sisi kweli nitafanya SQL taarifa na kuiweka nyuma katika nyekundu. Hapa sisi kufanya hivyo, lakini sisi kufanya hivyo kwa njano. Na sisi kuchota wote. Na kwa njia hii, sisi kuzuia mtumiaji na kuwa na uwezo wa pembejeo kitu kwamba ni nini sisi maalum, kamba au integer, kwa mfano. Mimi nilikuwa kuzungumza mapema kuhusu kutegemea watu wengine. Wakati guys kuanza mradi wako, wewe ni dhahiri zaidi kwenda kutumia bootstrap au kitu sawa. Je, guys milele kutumika Wordpress? Pengine wewe guys wametumia Wordpress uwezekano mkubwa. Hivyo tatizo kwa kutumia mambo ya watu wengine - Mimi naenda tu Google haraka halisi Wordpress mazingira magumu. Kama mimi kuvuta hii up hivi sasa - I literally alifanya mbili pili Google. Tunaweza kuona kwamba Wordpress - hii ni tarehe kama Septemba '12. 26 ni updated. Configuration default ya Wordpress kabla ya 3.6 haina kuzuia haya vipakizaji fulani, ambayo nguvu iwe rahisi kwa msalaba-site scripting mashambulizi. Hivyo hadithi ya haraka, mara moja sisi walikuwa wakifanya kazi na - hivyo nilikuwa, katika majira ya joto, kufanya kazi tarajali. Na sisi walikuwa wakifanya kazi na aina ya kama kadi kubwa ya mikopo kampuni. Na wanategemea kitu kinachoitwa - Sijui kama wewe guys milele kucheza kwa bidhaa kuitwa Joomla. Joomla ni bidhaa ambayo hutumiwa kwa kudhibiti - aina ya sawa na Wordpress, kutumika kujenga tovuti. Basi, alikuwa tovuti yao kazi ya Joomla. Hii ni kweli kadi kampuni katika Colombia. Mimi itabidi kuchukua wewe kwa wao tovuti halisi haraka. Kwa hiyo walitumia Joomla. Na walikuwa si updated Joomla kwa Aidha karibuni. Na hivyo wakati tulikuwa kuchukua kuangalia kanuni zao, tulikuwa na uwezo wa kweli kwenda ndani ya kanuni zao na kuiba wote kadi habari kwamba walikuwa, idadi ya kadi wote, majina, anwani. Na hii ilikuwa tu - na kanuni zao mara kikamilifu faini. Walikuwa code kubwa. Ilikuwa ni usalama wote. Wao checked database wote. Walitoa uhakika msalaba-site scripting ilikuwa nzuri. Lakini walitumia kitu ambacho si updated, hiyo haikuwa salama. Na ili aliwaongoza - hivyo guys ni dhahiri kwenda kutumia njia nyingine kanuni, mifumo ya watu wengine ya watu kujenga tovuti yako. Kuhakikisha kwamba wao ni salama kwa sababu wakati mwingine ni si wewe, mtu hufanya makosa. Lakini mtu mwingine hufanya makosa, na kisha kuanguka chini kwa sababu ya kwamba. Nywila na PII. Hivyo nywila. OK. Hebu tuangalie nywila halisi haraka. OK. Tafadhali niambie kwamba kila mtu anatumia salama - Nina matumaini kila mtu hapa anatumia nywila salama. Mimi nina kuruhusu tu kwamba katika kama dhana. Hivyo guys ni dhahiri kwenda kuhifadhi nywila kwa tovuti yako. Wewe ni kwenda kufanya kitu kama kuingia au kitu kama hicho. Nini muhimu ni kwa kuhifadhi nywila katika maandishi wazi. Hii ni muhimu sana. Hawataki kuhifadhi password katika maandishi wazi. Na wewe dhahiri si kweli unataka kuhifadhi kwa njia moja hash. Hivyo ni kwa njia gani moja hash ni kwamba wakati kuzalisha neno, wakati kuweka hii neno katika heshi, itakuwa kuzalisha nyuma baadhi ya aina ya cryptic ujumbe au cryptic seti ya funguo. Mimi nitakuonyesha mfano. Mimi nina kwenda hash neno wao password1. Hivyo md5 Hash ni kwenda na kurudi kwangu aina fulani ya habari weird. Tatizo ni kwamba watu huko nje kwamba kama kwenda katika tovuti na tayari figured nje ya aina ya yote hashes md5. Nini hawakuwa ni wakaketi juu yao kompyuta, na wao heshi kila moja iwezekanavyo neno huko nje mpaka wao got aina ya nini hii ni. Kama ningekuwa na kuangalia hii up - I just grabbed hash hii. Kama mimi kupata hash hii kutoka - kama mimi kwenda katika tovuti, na mimi kupata hash hii kwa sababu mimi kupata database, na mimi kuangalia it up, mtu tayari figured nje kwa ajili yangu. Yeah. Hivyo watu wakaketi, na chochote md5 hash kwamba kuweka katika, wao wanaenda kurudi kitu kwamba ni neno. Kama mimi hash neno lingine, kama - Sijui - trees2. Sitaki kwa kuwa na tamaa na upekuzi wangu Google. Kuna ni, trees2. Hivyo mengi ya Nje bado kutumia md5 hash. Wanasema, oh, ni salama. Sisi siyo kuhifadhi katika maandishi wazi. Sisi tuna hii hash md5. Na mimi wote kufanya ni Google idadi. Mimi wala hata na compute mwenyewe. Naweza tu Google yake, na mtu tayari alifanya hivyo kwa ajili yangu. Hapa ni kundi la yao. Hapa ni kundi la nywila. Hivyo dhahiri si kutumia md5 hash, kwa sababu wote una kufanya ni Google yake. Basi je, unataka kutumia badala yake? OK. Kitu kinachoitwa salting. Kwa hiyo kile ni salting - je, guys kumbuka tulipokuwa kuzungumza juu ya random katika - Mimi nina uhakika nini pset ilikuwa - ilikuwa ni pset huko au nne? Sisi walikuwa wanazungumza juu ya kutafuta sindano katika haystack. Na katika pset, alisema kwamba unaweza kweli kufikiri nini random inazalisha kwa sababu mtu tayari mbio random mara milioni na tu aina ya sumu nini wao kuzalisha. Nini unataka kufanya ni kuweka katika pembejeo. Hivyo kwamba ni nini kuweka chumvi aina ya ni. Tayari figured nini kuweka chumvi anarudi kwa kila kazi. Kwa hiyo kile salting gani ni kuweka katika chumvi. Kuweka katika neno fulani. Na itakuwa hash neno kuwa kulingana juu ya nini kuweka katika hapa. Basi, ikiwa mimi hash password moja na hii hukumu, ni kwenda hash tofauti kama mimi hash password1 na hukumu tofauti. Ni aina ya anatoa ni mahali fulani kuanza kwa hashing kuanza. Hivyo ni vigumu sana kwa compute, lakini bado wanaweza compute, hasa kama wewe kutumia chumvi mbaya. Watu tayari pia figured chumvi ya kawaida na figured yale ambayo ni. Random chumvi ni bora zaidi, lakini njia bora ni kutumia kitu kinachoitwa crypt. Na nini crypt utapata kufanya - hivyo kazi hizi ni tayari kujengwa kwa ajili yenu. Watu wengi kusahau kwamba, au wao kusahau matumizi yake. Lakini kama mimi kuangalia juu crypt PHP, crypt tayari anarudi kamba hash kwa ajili yangu. Na ni kweli chumvi ni mara nyingi na hashes ni mara nyingi. Hivyo hatuna kufanya hivyo. Hivyo wote kufanya ni kutuma ndani ya crypt. Na itakuwa kujenga hash kubwa bila wewe kuwa na wasiwasi kuhusu chumvi au kitu chochote. Kwa sababu kama ungekuwa na chumvi yake, una kukumbuka kile chumvi unaweza kutumika kwa sababu kama si hivyo, huwezi kupata yako password nyuma bila chumvi kwamba kutumika. OK. Na pia binafsi zinazotambulika habari. Usalama hivyo kijamii, kadi - kwamba pretty wazi. Lakini wakati mwingine watu kusahau njia kazi ni, kwa kiasi gani taarifa gani kweli wanahitaji kupata baadhi ya mtu mmoja? Mtu alifanya utafiti kuhusu hii njia ya nyuma. Na ilikuwa kama, kama una jina kamili, huwezi kupata mtu kwa urahisi. Lakini nini kama wewe na jina kamili na tarehe yao ya kuzaliwa? Ni kwamba kutosha kutambua mtu hasa? Nini kama una majina yao na anwani ya mitaani kwamba wao kuishi? Ni kwamba kutosha kupata mtu? Na kwamba wakati wao swali, ni nini binafsi zinazotambulika, na nini kuwa na wasiwasi kuhusu si kutoa mbali? Kama kutoa mbali zinazotambulika binafsi habari kwamba mtu anakupa, unaweza uwezekano wa kupata mashitaka. Na sisi dhahiri hawataki hilo. Hivyo wakati wewe ni kuweka tovuti yako nje, na kwa kweli baridi kubuni, hopefully umefanya kutisha katika mradi wa mwisho. Yoyote aina ya kutaka kuiweka huko nje. Unataka kuhakikisha kwamba kila wewe ni kuchukua kutoka kwa mtumiaji, ikiwa ni binafsi zinazotambulika, wewe unataka kuhakikisha wewe ni kuwa kweli makini na hilo. Shell sindano. OK. Sindano Shell inaruhusu intruder kwa kupata amri yako halisi line katika kompyuta yako. Na hivyo yeye na uwezo wa kukimbia code kwamba huwezi kudhibiti. Hebu kuchukua mfano wa hii nzuri kamba hapa. Kama sisi kwenda katika tovuti tena, mimi nina kwenda katika kanuni sindano. Basi nini hii haina ni - pia ni nini tulikuwa kuangalia mbele. Sisi ni kuruhusu user kuweka katika kila anataka, na itakuwa magazeti nje chochote unataka. Hivyo nina kwenda kuweka simu. Nini hii ni - itakuwa kuanza kwa concatenating. Hivyo basi mimi kukimbia chochote amri ya mtu mbio kabla na amri yangu. Na mimi nina mbio amri mfumo. Na masharti hayo mwisho ni - kumbuka kile aliongea na wewe guys kuhusu, ambapo una encode katika njia URL. Kama mimi kukimbia hii sasa - Mimi nitakuonyesha juu hapa - utaona kwamba mimi kumalizika up mbio amri. Hii ni kweli server halisi kwamba tovuti yangu ni mbio juu ya. Hivyo hatutaki kwamba, kwa sababu siwezi kukimbia - server hii si yangu. Hivyo Sitaki kwa fujo up yake dada, server Marcus ya. Lakini unaweza kukimbia amri zaidi ambayo ni hatari. Na uwezekano wa, unaweza kufuta files, kuondoa directories. Naweza kuondoa directory fulani kama Nilitaka, lakini sitaki kufanya hivyo kwa Marcus. Yeye ni nzuri guy. Yeye basi mimi kukopa server yake. Hivyo nina kwenda kwa basi mbali juu ya moja nzuri. Basi nini hatutaki kutumia - hatuna wanataka kutumia UFUNDISHAJI au mfumo. Eval au mfumo wa inaruhusu sisi kufanya wito haya mfumo. Njia Eval kutathmini. System maana yake nini mimi mbio. Ni kukimbia kitu katika mfumo. Lakini tunaweza kukiuka mambo haya katika PHP ili sisi si kutumia yao. Na upload file. Mimi alikuwa anaenda kufanya kutisha kitu na upload file. Lakini kama Mimi niliwaambia guys, faili yangu upload kitu si kazi. Kama ningekuwa na kupakia faili hivi sasa - kama ningekuwa kupakia faili, na ni picha - una upload kitu kwamba picha. Hiyo ni sawa. Hakuna kinachotokea. Lakini kama una upload file, kwa mfano, na user kweli vipakizaji PHP faili au exe file au kitu kama hiyo, basi unaweza uwezekano wa kuwa na tatizo. Hii ilikuwa ikifanya kazi kabla ya. Kwa bahati mbaya kwa ajili yangu, ni si kazi tena. Kama mimi, kwa mfano, kupakia faili hii, mimi nina si kupata ruhusa ya kupakia file kutokana na server kutokuwa na mgodi huo. Hivyo guy kweli smart. Hivyo hatuna unataka - Mimi nina kwenda kuonyesha guys - OK, haya ni baadhi ya zana kweli baridi. Basi hao - kwenda katika - kama wewe guys na Firefox - hopefully kufanya. Kuna mbili kuongeza TZ inayoitwa SQL odla Me na Msalaba Site Script Me. Wao kufungua upande kidogo baa upande. Na kama ningekuwa kwenda CS60 kwa mfano - hivyo kile yake ni inaonekana kwa ajili ya aina yote - hopefully, mimi si kupata katika shida kwa hili. Lakini OK. Hapa ni mfumo wa siri. Hivyo wakati mimi kuanza kuangalia kwa mashimo katika mfumo, Jambo la kwanza mimi kufanya ni kufungua kidogo hii nzuri chombo upande. Na mimi nina kwenda kupima aina na mashambulizi ya magari. Na hivyo kile hii haina ni polepole kufungua rundo la browsers. Hapa ni kundi la browsers. Na ni kujaribu kila mchanganyiko moja ya msalaba-site scripting kwamba kuna uwezekano wa, kama unaweza kuona upande. Na itakuwa nipe matokeo aina ya nini jibu ni. Wote kupita. Ni wazi, wote kupita. I mean, ni kweli smart watu huko. Lakini kama ningekuwa kwa kukimbia - Nimepata mara kabla ya wakati mimi kukimbia hii katika miradi ya mwisho ya wanafunzi. Mimi tu kukimbia SQL Kuingiza Mimi kwa wote mashambulizi tofauti. Na ni kujaribu SQL kuingiza hii server siri. Hivyo kama sisi kitabu chini, kwa mfano, anasema - hii ni nzuri kama anarudi. Hivyo ni majaribio baadhi ya maadili fulani. Na server akarudi kificho kwamba ilikuwa mbaya. Kuondoa kwa muda. Hii ni nzuri. Ni anajaribu vipimo hayo yote. Hivyo unaweza tu kukimbia - Nilikuwa napenda kupata tovuti halisi haraka kwamba ingekuwa basi mimi - labda duka CS50. Wow, hii ni kwenda kuchukua njia muda mrefu sana. Mimi itabidi basi mtihani wa kwanza si kumaliza haki. Hivyo ni kulalamika. Basi hizi ni mambo matatu. Zana hizi ni za bure. Unaweza kushusha yao na kukimbia nao juu ya tovuti yako, na itakuambia kama una msalaba-site scripting, kama una SQL, kama una kitu cha kama. Mimi nina aina ya messing up. Nini muhimu - OK, hivyo kamwe imani user. Chochote pembejeo mtumiaji wewe, kufanya uhakika kumsafisha yake, kusafisha, kuangalia kwa mambo ya haki, kwamba ni kutoa nini unataka kumpa wewe. Daima kuwa updated juu ya nini mifumo kwamba wewe ni kweli kutumia. Kama kutumia kitu kama bootstrap - Mimi najua wewe guys ni kwenda kutumia bootstrap kwa sababu yeye kwenda juu ya hili hivi karibuni katika darasa - na Wordpress au kitu kama hicho, kawaida hii inaweza kuwa hacked. Na kisha huna hata kujua. Wewe ni mbio tu tovuti yako. Na ni salama kabisa. Na kwenda chini. Hivyo mimi nina uvuvi kweli mapema. Lakini mimi nataka kuwashukuru Pentest Labs. Mimi nina kwenda kuonyesha guys kitu aitwaye Pentest Labs. Kama wewe guys ni kweli nia ya nini usalama ni kweli, kuna tovuti inayoitwa Pentest Labs kama nyie kwenda yake hivi sasa. Oh, vizuri, si kwamba ni. Mimi tu kwenda kuendesha kama hii. Google anasema mimi jibu. OK. Na inafundisha kukutumia - hivyo anasema, kujifunza mtandao kupenya kupima njia sahihi. Ni inafundisha - hopefully, wewe ni mtu kimaadili. Lakini inatufundisha jinsi gani unaweza kuangalia jinsi gani unaweza kupata ndani ya tovuti. Na kama wewe kujifunza jinsi gani unaweza kupata ndani ya Nje, unaweza kujifunza jinsi ya kujikinga na kupata Nje ndani. Hebu zoom kwa sababu labda nyie si kuangalia haki hii. Kutoka SQL sindano shell, hivyo aina ya jinsi gani naweza kupata kutoka SQL sindano shell. Na kushusha mashine hii virtual. Na mashine virtual tayari huja na tovuti ya kuwa wewe ni kwenda kujaribu juu. Download hii PDF. Na itakuwa kuonyesha mstari kwa mstari nini una kufanya, nini kuangalia. Hii ni nini mshambuliaji kweli gani kupata ndani ya tovuti. Na baadhi ya mambo haya ni ngumu. Nilikuwa napenda kwenda juu zaidi mambo kwa nyie. Lakini mimi wasiwasi kwamba guys na si kweli - hii ni nini nilikwenda juu na nyie, vipimo vya mtandao kwa ajili ya kupenya ya kupima. Je, si kweli kujua nini SQL ni na nini - Carl Jackson semina ni wa kushangaza pia. You guys sijui aina ya nini hii ni. Lakini kama wewe kwenda kwenye tovuti hii, na kushusha tutorials haya na haya PDFs, unaweza kuangalia aina ya nini eneo la usalama kweli haina katika kupenya kupima, kuona ni jinsi gani unaweza kupata tovuti ndani na kulinda mwenyewe kutoka humo. Basi, ikiwa mimi kufanya maelezo ya super haraka, kutakuwa na kuwa kuzuia msalaba-site scripting. Unataka kutumia htmlspecialchars kila mara, pembejeo user kitu. Kuzuia SQL sindano. Kama kufanya hivyo, uko tayari bora zaidi kuliko Harvard mara Walipofika kuuvunja. Na kuhakikisha nywila yako ni si katika maandishi wazi. Kuhakikisha si tu njia moja hash yao lakini kwamba matumizi ya crypt, PHP kazi ambayo mimi ilionyesha nyie. Kwa njia hiyo, unapaswa kuwa nzuri. Pia, kama rafiki yako basi wewe, kukimbia SQL Kuingiza Me kwenye tovuti yao. Kukimbia msalaba-site scripting kwenye tovuti yao. Na utaona mengi ya tovuti hizi kuwa na tani ya udhaifu. Ni ajabu kiasi gani watu kusahau kumsafisha database yao au kufanya uhakika nini inputting mtu si script code. OK. Mimi aina ya kumalizika kwa kweli mapema. Lakini kama mtu ana maswali yoyote kuhusu kitu chochote, unaweza risasi mimi swali. Yeah. Go, go. Watazamaji: Mimi nataka tu kuuliza, unaweza kueleza jinsi file kupakia kazi hasa. LUCIANO Arango: Yeah. Hivyo basi mimi kuonyesha faili kupakia halisi haraka. Hivyo upload file - tatizo yaani upload file sasa hivi ni kwamba - Mimi nina kwenda kufungua code hivyo guys kuona kanuni nyuma ya pazia. Na ni upload. Hapa ni kanuni kwa ajili ya file kipakiaji. Sisi ni kujaribu kwenda katika hii directory zaidi ya hapa. Na sisi ni kujaribu, mara sisi pembejeo file, isset file - hivyo wakati kuna faili katika FILES, picha hiyo, basi sisi kujaribu hoja hiyo hapa. Sisi kunyakua file zaidi ya hapa. njia ni POST, aina, picha, faili. Na sisi ni kutuma faili hii. Na kisha mara moja sisi kupata, hivyo mara moja file ina picha, sisi ni kujaribu kutuma kwa saraka hii. Tatizo ni kwamba tovuti ni si kuruhusu mimi kwenda saraka hii, kwa sababu hataki mimi kurudi nyuma. Ni hataki mimi kwenda - Mimi kwenda - hivyo hapa ni upload. Hapa ni images. Mimi na kwenda njia yote nyuma mwanzo na kuiweka katika huko na kisha kwenda na kuiweka katika directory. Hivyo kama mimi nilikuwa mbio dirisha terminal, na nilitaka kwa hoja file - [Inaudible] unaweza kuona. Kama nilitaka hoja file, nina kuweka jina la faili na kisha njia kamili nataka kutuma kwa. Na kisha server si kuruhusu mimi kurudi nyuma. Na hivyo si kuruhusu mimi kupata faili hilo. Lakini kwa kawaida - hivyo kuna kanuni kwa ajili ya kuweka file. Hivyo kwa kawaida itakuwaje ni kwamba mtu si kuangalia kama faili yangu kumalizika kwa. jpeg, hivyo mimi wanataka kuangalia. Hebu kufungua mfano pia halisi haraka. OK. Mtu haki hii - hivyo mfano mbili ni kuangalia kama preg_match - hapa ni juu hapa - kuhakikisha kwamba mwisho na PHP, ambayo ni nzuri. Hii ni nzuri. Lakini kuna kubwa halisi tatizo na hili. Hii ni nzuri. Lakini kama ningekuwa kuweka faili inayoitwa myfavoritepicture.php.jpeg, mimi naweza bado uwezekano wa kujikwamua jpeg na kukimbia it.k Hiyo PHP hatari. Hawataki mtu kuwa na uwezo kuendesha code kwenye tovuti yako. Lakini wakati huo. Jpeg lets kupita. Wazo ni kweli unataka kufanya si kuchukua files, A. Lakini, OK, nini kweli unataka kufanya ni kuhakikisha kwamba kusoma juu ya dunia nzima. Na kuna kitu. PHP ndani yake. Hakuna php. Katika file zima jina. Watazamaji: Lakini unaweza kuweka. jpeg ya mwisho. watumishi bado kukimbia code. LUCIANO Arango: Hapana, si kukimbia mwanzoni. Una kwenda nyuma na kujaribu kuona kama unaweza - Watazamaji: Hivyo tuna - OK, tu kuweka mwingine ambayo inahusisha - LUCIANO Arango: Yeah. Watazamaji: OK. LUCIANO Arango: Yeah. OK. Maswali yoyote mengine? OK. Mimi nina kwenda kuondoka up na aina ya kujaribu kuona kama nyie unaweza - wale wengine ni kidogo zaidi ngumu kwa sababu wao wanahitaji sana maarifa zaidi ya SQL kuliko tu mwanzo maarifa ya mtandao SQL ni na nini JavaScript ni. Lakini mimi nina kwenda kujaribu kuweka hii juu, na hopefully nyie kujifunza kuhusu hili na kujaribu kuchukua Peek katika nini unaweza kufanya na jinsi mifano mingi unaweza kupata kupitia. Mtu yeyote kuwa na mtu mwingine yeyote maswali kuhusu hilo? Kwenda mbele. Yeah, risasi, risasi. Yeah, kwenda mbele. Kwenda mbele. Watazamaji: OK. Basi, mimi kusikia kuhusu jinsi uchawi Quotes si salama ya kutosha. LUCIANO Arango: Nini - Uchawi Quotes? Watazamaji: Yeah. Hivyo anaongeza - hivyo wakati pembejeo kitu, daima anaongeza quotes. LUCIANO Arango: Yeah. Yeah. OK. Watazamaji: Na kisha mimi kwamba ingawa kazi, lakini kisha I searched it up. Na alisema si nzuri. Lakini mimi nina uhakika kwa nini. LUCIANO Arango: Yeah. Watazamaji: Je, si kutumia uchawi Quotes, kwa sababu si salama. LUCIANO Arango: OK. Quotes hivyo uchawi ni wakati kuingiza SQL na tayari anaongeza quote kwa ajili yenu. Watazamaji: Ni daima anaongeza quotes karibu chochote kuweka in LUCIANO Arango: Yeah. Hivyo tatizo na kwamba ni kwamba - Mimi itabidi tuangalie - Watazamaji: Jinsi gani kupata SQL taarifa? Au ni mimi nadhani inaweza kuwa kama quote kuchagua. LUCIANO Arango: Yeah, unahitaji nzuri quotes kwa SQL. Watazamaji: Hapana, lakini server anafanya hivyo kwa ajili yenu. LUCIANO Arango: Hizi quotes ndogo haki hapa, hizi quotes kidogo? Watazamaji: Yeah. LUCIANO Arango: Yeah. Tatizo ni kwamba unaweza maoni nje ya mwisho - OK, hivyo nini siwezi kufanya ni mimi kutoa maoni nje - basi tuangalie - basi mimi kufungua Nakala hariri faili. Napenda tu hariri hii haki hapa moja kwa moja. OK. Je, unaweza kuona kwamba guys kwa uwazi? Ninachoweza kufanya ni mimi kutoa maoni nje ya mwisho. Hii maoni nje moja ya mwisho. Na basi mimi itabidi kuweka moja hapa, kuweka mambo yote malicious hapa. Hivyo user kweli inputting, sawa? user si inputting mambo, sawa? Hii ni nini mimi kwenda pembejeo kama mtu kujaribu kupata ndani. Mimi naenda kuweka katika - hiyo ni moja alama ya kutaja. Ni tu squiggly kwa makosa. Na kisha nini code ni kwenda kufanya - sorry, mimi nina kwenda kuchukua hii nje. Nini code ni kwenda kufanya ni ni kwenda kuongeza kwanza quotation alama hapa. Na ni kwenda kuongeza mwisho alama ya kutaja pia. Na pia kwenda kuongeza mwisho, mwisho alama ya kutaja. Lakini nina maoni haya quotation alama ya nje, hivyo si kukimbia. Na mimi nina kumaliza quotation hii alama zaidi ya hapa. Je, unaelewa? Je, wewe ni kupotea? Mimi kutoa maoni quotation mwisho alama, na utunzaji wa kwanza quotation alama. Watazamaji: Na kumaliza tu kwanza moja. LUCIANO Arango: Yeah. Na tu kumaliza kwanza. Yeah, hiyo ni haki. Hiyo ni nini siwezi kufanya. Yeah. Maswali mengine kama hayo? Hiyo ni swali kubwa. No, ndiyo, labda. Hopefully, you guys itakuwa aina ya kufanya zaidi maana wakati wewe kujifunza SQL na mambo kama hayo. Lakini hakikisha - kuweka zana hizo katika kuangalia. Sorry, zana hizo zaidi ya hapa. Zana hizo ni kubwa. Kama mtu ana maswali yoyote, unaweza pia email yangu. Hii ni email yangu ya kawaida. Na hii ni kazi yangu ya barua pepe, ambayo ni wakati mimi kazi katika SEAS. OK, shukrani. Thanks, guys. Wewe nzuri ya kwenda. Huwezi kukaa hapa. Je, si makofi. Hiyo ni weird. OK, shukrani, guys.