LUCIANO Arango: OK, fantje. Moje ime je Luciano Arango. Jaz sem letniku v Adams House. In bomo morali govoriti o Spletna varnost aktivne obrambe. Torej, delam za Urad za informiranje Varnost na morju. In čez poletje, sem se potikala po SeguraTec, ki je bila informacija varnostno podjetje, ki je služilo Banki Columbia. To je predvsem tam, kjer sem se naučil kar sem do zdaj naučili. In tako nekaj materiala, da smo bo šel čez danes nismo res govorili v razredu. Vendar bomo kmalu. To se dogaja, da se kot SQL, JavaScript. In nismo zares šli preko njega. Tako da sem lahko razvrstite letenja skozi njo, in morda ne boste vedeli, nekatere stvari. Toda kmalu, boš naučiti. In to bo vse smisla. Prav tako še ena stvar - ostati etično. Nekatere stvari, ki jih učijo, si lahko uporabite v ne-etičnih načinov. Če je tvoje, je vsekakor treba poskusiti. Jaz zagotovo motivirati vaju da preizkusite svoje strežnike, poskusite dogaja v njih. Bomo videli, če jih lahko prodrejo, če lahko dobite v njih. Ne pa kdo drug. Policaji ne res všeč šale in cele, to smo tukaj čaka. Smo se zajebavati. Dobijo res jezen. Torej, nad glavo, da te spletne strani. Imam jo odprl tukaj. To je spletna stran, in to ima kup primerov. Kaj se zgodi, da prvi primer je neke vrste bo veliko lažje kot zadnji primer v smislu da prvi primer je popolnoma negotov. In zadnja je nekako tisto, normalna spletni varnosti oseba bi naredil. Vendar pa lahko še vedno nekako za priti okoli tega. In bomo s poudarkom na eni in dva, primeri ena in dva. OK. Začnimo z cross-site scripting. JavaScript se izvaja na Brskalnik komitenta. To je programski jezik, ki ga uporabljate teči v brskalniku stranke tako vam ni treba posodobiti spletno stran in pojdite nazaj na strežnik. Imate to tekmovanje v teku. Na primer, Facebook, nimate da osvežite spletno stran za novega statusa posodobitve, da pridejo gor. To je z uporabo JavaScript za ustvarjanje vse te stvari. Tako bomo lahko injicirali zlonamerno JavaScript na spletnih straneh. In na ta način, ko smo poslali povezavo kdo bi lahko nekako ga poslati z nekaj kode, ki jo želimo. Tam je obstojna in ne-obstojna JavaScript - obstojne in niso obstojne cross-site skripte, mislim. In razlika je v tem, da je obstojna javascript, da bo shranjene na spletni strani. In ne-obstojna bodo JavaScript , ki bo dejansko zgodi samo enkrat. Zato si oglejmo primer resnično hitro. OK. Tako da je ta spletna stran, preprosto, nič ne zgodi tukaj. In bomo poskušali vstaviti nekaj JavaScript. Torej, pot začnemo pisati JavaScript se začnemo z začetkom scenarij. In smo jo zaprite s scenarij. Mi smo preprosto bo dal sporočilo - Pokazal vam bom - opozorilo. Alert je funkcija, ki JavaScript uporablja za prikaz nekaj. Torej, poskusimo to zelo hitro. Jaz grem, opozarjanje zdravo. No, pozabil sem dati - OK. Tako da je preprosta. Mi je dal JavaScript na spletni strani, in je prišel gor. In to nekako zgodi le na naši spletni strani, kajne? Tako se zdi, kot da je ni problem, kajne? Mislim, kako lahko uporabite to zlonamerno? Torej tako, da hekerji storiti to je res preprosto. Ti boš, da jo zgrabi. Prav tako lahko pošljete to povezavo za vas. Če bom poslal to povezavo za teboj, in jo odprli, gre za pravijo, hello, pravijo, da je moja spletna stran je povedal zdravo. In tako, če bi bil jaz rečem nekaj, kar malo pametnejši, če potegnem gor JavaScript funkcijo nekako že napisal - ampak če pogledaš na to, bom šel Je konec, preden sem ga napisal. Torej bomo nastavili zakasnitev. Bomo počakati par sekund. Dejstvo je, da bomo počakati, če Se ne motim, pet sekund. To gre v milisekundah. In kaj bomo storili potem, je, da smo gre za opozorilo, da je prijava potekla, da se prijavite nazaj noter In bomo spremenili lokacijo na drugo mesto. Torej, če mi pošljete to spletno stran, da nekdo, oni bo brskanjem okoli, miren. Nič se ne dogaja. In v petih sekundah, gre se pravi, vaša prijava je potekla. Prosimo, prijavite se nazaj noter Ko pa kliknite V redu, bom jih popeljal na drugo spletno stran. Domnevam, spletna stran bo bilo podobno spletno stran, ki so bili v prej. In oni 'tekoč, da se prijavite njihovo mandatov v moji spletni strani, namesto njihovi spletni strani. In tako sem lahko pošiljate ljudem pošljite e-pošto s to povezavo. Sem rekel, oh, tu je povezava. To je banka, npr. Jaz pravim, tukaj, pojdite na to povezavo. In ko so ga poslali, oni bodo brskanje okoli. Ne morem čakati 15 sekund, 20 sekund, in potem pop, da se ponovno prijavite podpisati nazaj. Vidva lahko poskusite z Veliko več stvari. To je zapleteno, saj fantje niso videli JavaScript, tako da boste morda ne vem nekaterih funkcij. Ampak vse, kar morate storiti, je začetek s skripto, konča z scenarija. In bi si dal ničesar v sredini. Alert je funkcija, počakaj. Lokacija okno vas popelje na novo lokacijo. Vendar lahko to stori še veliko več. In tako zamisel je, da vzamemo, da je off. Če grem na primer dva, in jaz dal v to isto šifro, je Ne bo šlo. Torej, to je vse, tiskanje, ker kaj ta spletna stran je prvotno pa je, če sem kaj dal tukaj, da bomo natisnete tukaj. Torej, to ni nič tiskanje. Ta primer je dejansko preverjanje da vidim, če scenarij je tam. Torej, ja, pojdi naprej. Ask me. PUBLIKA: ne pošilja zaslužiti ali objaviti prošnjo? LUCIANO Arango: Ja. oni pošljete zahtevo dobil. PUBLIKA: Je res? LUCIANO Arango: Ja. Tudi brskalniki objavljate prošenj. Ampak sem poskušal pokazati zahtevke get tako da bomo lahko videli, kaj je dejansko dogaja. In tako, če gledamo na to kodo - tako da ne deluje več. In če pogledamo na to oznako, to se dogaja, da je v primeru dveh. Kaj ta človek počne, oseba vodja te brskalnika - odpirajo, OK - nadomešča besedo scenarij. To je PHP, ki bi lahko vidva so videli malo še. Pravkar je zamenjava Beseda skript z imenom. Torej, če pa grem naprej in samo dal v - če sem spet vzamem kodo, in bom lahko spremeni le malo. Namesto, da scenarij, bom spremenila je za Script s kapitalom R. And bomo videli, če je ta koda deluje. Torej ga ni izpisal, kar je dober znak. In upajmo, da v dve sekundi, da se bo pop up. Tvoja prijava je potekla. OK. To je vse v redu. Tako preverjanje script je lahko ni nujno, da deluje. Oseba - pa lahko preverite tudi scenarij z velikimi črkami, Scenarij male črke, str primer primerjati, se prepričajte, da ste isti. Vendar pa lahko heker še vedno neke vrste, kar smo v Vigenere, ko smo se preselili nazaj nekaj znakov, napredovati. In lahko ugotovimo, kako postaviti skript nazaj notri, tako da lahko injicirali da scenarij. Torej, kaj želite uporabiti je htmlspecialchars za zaščito vaše spletne strani. In kaj to počne, je da naredi prepričan, da je tisto, kar si dal v - na primer kotacije ali to večja ali manjša - se nadomesti z nečim da ne bo - Naj povečate tukaj - dejanska ampersand. To bo nadomestila teh posebnih HTML znaki, da bomo videli, ko bomo govoriš - oh, to se dogaja, da me odpelje nazaj - Ti znaki tukaj. To pomeni, da je nekaj prihaja. Za HTML, ta začne konzole nam pove, da je nekaj HTML povezano prihaja. In želimo, da se znebite tega. Ne želimo postaviti v HTML website.k Nočemo uporabniku, da se lahko dajo nekaj na njihovi spletni strani , ki lahko vplivajo na njihovo spletno stran, kot so skript ali HTML ali kaj podobnega. Kar je pomembno, je, da vam čistiti uporabnik vložek. Tako da uporabniki lahko vhodne veliko stvari. On lahko vnesete kup stvari, da poskusite trik vaš brskalnik v vedno tekmovanje v teku to skriptno kodo. Kaj želite storiti, je, ne samo poglej za scenarij, ampak poglej za vse da bi bilo zlonamerno. In bo htmlspecialchars storiti, da za vas, tako da ne boste imeli skrbeti za to. Ampak ne poskusite narediti sami nekako s svojo kodo. So vsi jasno XSS? OK. Pojdimo v SQL injection. Torej SQL injekcija je verjetno Številka ena ranljivost na različnih spletnih straneh. Mislim, dober zgled - Pravkar sem raziskovanje najdlje za to stvar. In sem našel to super članek, kjer Videl sem, da je Harvard kršena, je kramp. In sem bil začuden, no, kako bi to naredil? Harvard je najbolj super, najbolj pritrdite na univerzo kdaj. Kajne? No, da krši strežnikov, hekerji uporabljajo tehniko, imenovano SQL injection. Torej se to zgodi na vsakodnevno. Ljudje pozabljajo, da se upošteva za injiciranje SQL. Harvard počne. Mislim, da tu piše, Princeton, Stanford, Cornell. Torej, kako delamo - kaj je to SQL injiciranje, ki prinaša vse te ljudje dol? OK. Torej SQL je programski jezik, ki bomo uporabili za dostop do podatkovnih baz. Kaj moramo storiti, je, da smo izbrali - kaj to bere zdaj je select vse, kar je iz tabele. SQL, se spremeni v teh baz podatkov da so mize polne informacij. Torej, izberite vse od uporabnikov kjer je ime ime. Kajne? Preprost. Ideja SQL injection je, da smo vstaviti nekaj zlonamerno kodo, ki bi trik strežnik v tek nekaj drugačen od tistega, kar je sprva je bil zagnan. Torej, recimo, za uporabniško ime, damo v ali 1 enaka 1. Zato smo se v 1. ali enak 1. Tako bo prebral zdaj bo select od uporabnikov, vse od Uporabniki - to je vse, kar je - kjer je ime ime, vendar uporabniško ime ali 1 enaka 1. Torej ime je nič ali 1 enak 1. 1 enaka 1, je vedno res. Tako da bo to vedno vrne podatke od uporabnikov. OK. Ne potrebujemo pravilno ime. Mi lahko samo še vse, kar smo želeli, in se bo vrnil informacije da moramo. Oglejmo si še en primer. Če smo izbrali vse od uporabnika, kjer je ime DROP TABLE uporabnikov - Torej, kaj misliš, da bo to storiti, če sem dal v uporabniškem imenu kot uporabniki DROP TABLE? Ima kdo idejo? Da. PUBLIKA: To bo povedal, to smetišče vse tabele. LUCIANO Arango: To se dogaja, da nam poveste smetišče vse na spletni strani, vse, kar je v bazi podatkov. In kaj ljudje to uporabili za - tako Jaz ti bom pokazal fantje. Jaz onemogočil pada tabel ker ti niso želeli Fantje, da se opusti svoje mize. Oglejmo pogled na to. Torej, to preprosto potegne podatke za določeno osebo. Torej, kako bomo vedeli, če je to vplivajo SQL injection. Bomo, da preverite na hitro če bomo lahko dal nekaj - Naj izvod to kodo. Jaz bom šel čez njega v sekundi. Bom dal korenine in 1 enako 1. Ta pravica je tu, ta znak za odstotek 23 - kaj je v resnici, če sem poglej tukaj na - Tako HTML traja v številkah, če si oglejte, ko sem dal v prostoru tu - če bi bil jaz vesolja nekaj tu, ga spremeni v 2 odstotka. Ali vi to vidite tukaj ko sem dal v prostoru? Kako deluje, je, da lahko le pošlji vrednosti ASCII s HTML. Tako je mogoče namesto npr prostor z 20-odstotno. Ne vem, če vidva so videli, da je pred. To nadomešča hashtag s 23 odstotkov. Potrebujemo hashtag na koncu ali Izjava, tako da bomo lahko povem baze podatkov, da bi pozabili, da zakomentirajte ta zadnja podpičje na koncu. Želimo, da ne razmišljam o tem. Hočemo samo, da teče vse da imamo pred in pripombe, ki ven. Oglejmo pogled na to. Torej, če bi bil jaz dal nekaj narobe - recimo, na primer, sem dal 2 enaka 1, pa ne mi dati ničesar. Ko sem dal v 1 enaka 1, in to ne nekaj vrniti, to mi je povedal, da To je občutljiva na SQL injection. Zdaj vem, da karkoli Sem dal po tem - in na primer, spuščanje tabel ali nekaj takega bo zagotovo delovalo. Vem, da je ranljiva za SQL injection ker vem, da Pod pokrovom motorja, to je dajanje v najem jaz 1 enaka 1 stvar. OK? In če gledamo na te druge tiste, številka dve in številka tri, to je naredili malo več preverjanja pod hood, kaj je to. Torej, kdo omogočite padec kaj še, ali poskusili? Ali vi nekako dobil SQL še? Ker vem, da vi niste videl še, da je to nekako zavajajoče za vas. Oglejmo pogled. Torej, kaj je način za preprečevanje SQLI? OK. Torej je to zelo pomembno, saj vam fantje zagotovo želeli preprečiti to v vaše spletne strani. Če ne, vsi tvoji prijatelji bodo norčevali iz vas, ko se spusti vse Vaše tabele. Torej ideja je, da to popravimo SQL na določen način, ker se ujemajo kaj uporabnik vhod s nekatere niz. Torej, kako to deluje, je vi pripraviti bazo podatkov. Izberete ime, barvo in kalorij iz baze podatkov, imenovano sadja. In kje je potem kalorij manj, kot in mi dal vprašaj tam pravijo, da bomo vhodu nekaj v sekundi. In barvno enaka, in mi dal vprašanje Oznaka rekel da bomo input nekaj v sekundi, kot tudi. OK? In potem smo jo izvrši, dajanje na 150 in rdeče. In to bo preveril, da bi prepričani, da ta dva - Ta niz bo preveril, da so ti dva sta celo število in da je ta niz. Potem gremo, mi prinesi vsi smo ga v rdeči barvi. To pomeni, da prinese vse. To pomeni, da smo dejansko izvedbo SQL izjavo in jo spraviti nazaj v red. Tukaj bomo naredili enako, vendar smo storijo enako za rumeno. In mi prinesi vse. In na ta način preprečujejo uporabniku , da bi lahko na vhodno nekaj to ni tisto, kar smo opredelili, niz ali celo število, npr. Sem govoril prej o zanašajo na druge. Ko vi začnete projekt, si prav gotovo bo uporabil bootstrap ali kaj podobnega. Sta sploh kdaj uporabili Wordpress? Verjetno so uporabili vi Wordpress najbolj verjetno. Torej, problem pri uporabi Stvari drugih ljudi - Grem na Google resnično hitro Wordpress ranljivost. Če to potegnem gor zdaj - Dobesedno sem naredil dva druga Google. Vidimo lahko, da Wordpress - Datum je od septembra '12. 26 je posodobljen. Privzeta nastavitev Wordpress pred 3.6 ne preprečuje, da te nekateri dodane, ki bi lahko olajšajo cross-site skriptno napade. Tako hitro zgodba, ko smo delali z - tako sem bil v poletnih mesecih, ki delajo pripravništvo. In smo delali z nekakšno kot družba velik kreditne kartice. In se zanašajo na nekaj, kar ti - Ne vem, če vama kdaj igral s proizvoda, imenovanega Joomla. Joomla je izdelek, ki se uporablja za Nadzor - nekako podobno Wordpress, ki se uporablja za izgradnjo spletne strani. Tako so imeli svojo spletno stran delajo na Joomla. To je dejansko kreditna kartica Družba v Kolumbiji. Odpeljal te bom na njihove Spletna stran zelo hitro. Zato so uporabili Joomla. In da ne bi posodobljena Joomla na najnovejši dodatek. In tako, ko smo ob pogled na njihova oznaka, smo lahko dejansko pojdi notri svojo kodo in kradejo vse podatke o kreditni kartici, ki jih je imel, Vse številke kreditnih kartic, imena, naslove. In to je bila le - in njihov kodeks je bil popolnoma v redu. Imeli so veliko kode. Vse je bilo varnost. Preverili vseh baz podatkov. Poskrbeli so cross-site skripte je bilo v redu. Vendar so uporabili nekaj, kar ni bilo posodobiti, da ni bilo varno. In tako, da jih je k - tako fantje Zagotovo boste uporabljali druge koda, okviri ljudi drugih ljudi zgraditi svojo spletno stran. Prepričajte se, da ste varni, ker včasih je ne boste, tisti, ki naredi napako. Ampak nekdo naredi napako, in potem padeš dol zaradi tega. Gesla in zavarovanja poklicne odgovornosti. Torej gesla. OK. Oglejmo si na gesel resnično hitro. OK. Prosim, povejte mi, da vsi uporablja varno - Upam, da vsi tu uporablja varnih gesel. Jaz sem samo pustil, da se kot predpostavki. Torej vidva definitivno bo shranjevanje gesel za vaše spletne strani. Ti boš, da bi nekaj podobnega prijava ali nekaj takega. Kar je pomembno, je, da ne hranite gesel v golo besedilo. To je izredno pomembno. Ne želite shraniti gesla v golo besedilo. In ti zagotovo ne res želite da ga shranite v eno smer hash. Torej, kaj je eden od načinov hash je, da ko ustvarjajo besedo, ko si dal to Beseda v funkcijo razpršitve, bo ustvarjajo nazaj nekakšen skrivnosten sporočilo ali Grobni nabor tipk. Pokazal vam bom primer. Jaz grem za razpršitev so besedo password1. Torej md5 hash se dogaja, da mi vrnejo nekakšen čuden informacij. Problem je, da ljudje tam , ki radi hodijo v spletne strani imajo že pogruntal nekako vseh MD5 haše s. Kaj si se ti usedel na njihovo računalniki, in so zgoščene vsak single mogoče beseda tam, dokler so dobili nekako, kaj je to. Če bi to poglej gor - Pravkar sem zgrabil to hašiš. Če dobim to hash od - če grem na spletno stran, in se mi zdi To hash, ker sem dobil za baze podatkov, in sem ga pogledati, kdo že pogruntal zame. Ja. Torej, ljudje sedli, in karkoli md5 hash, da si dal noter, pa boš vrniti v vas nekaj da je beseda. Če bi hash drugo besedo, kot so - Ne vem - trees2. Nočem biti razočaran po mojih iskanja Google. Tukaj je, trees2. Torej, veliko spletnih strani še vedno uporablja MD5 hash. Pravijo, oh, to je varno. Nismo shranjevanje v golo besedilo. Imamo to MD5 hash. In vse, kar morate storiti, je le Google številko. Nimam niti sam izračunati. Jaz lahko samo Google, in nekdo že to storil zame. Tukaj je kup jih je. Tukaj je kup gesel. Torej definitivno ne uporabljate MD5 hash, ker vse, kar morate storiti, je Google to. Torej, kaj si želite namesto nje uporabljati? OK. Nekaj, kar ti soljenje. Torej, kaj je soljenje - Ali vas spomnim, ko smo bili Govorimo o naključno - Nisem prepričan, kaj pset je bilo - je pset tam ali štiri? Sva se pogovarjala o iskanju igle v kopici sena. In v pset, je dejal, da si lahko dejansko ugotoviti, kaj naključno ustvarja zato, ker je nekdo že tekel naključne milijon krat in le nekako oblikovali kaj ustvarjajo. Kaj želite storiti, je, dal v vložek. Torej, to je tisto, soljenje vrste je. So že pogruntal, kaj soljenje vrne za vsako delo. Torej, kaj počne, je soljenje si dal v soli. Si dal v določeno besedo. In bo hash to besedo, odvisno o tem, kaj si dal noter. Torej, če sem hash geslo eno s tem stavek, da se bo hash drugače, če sem hash password1 z drugim stavkom. To nekako mu daje nekje začetek za hašiš za začetek. Tako da je veliko težje izračunati, vendar pa Še vedno lahko izračuna, še posebej, Če uporabljate slab sol. Ljudje so se že tudi pogruntal skupna soli in pogruntal tisto, ki je. Naključne soli so veliko boljši, vendar je najboljši način je uporaba nekaj, kar se imenuje grobnica. In kaj grobnica vam omogoča, da Ne - tako da te funkcije že zgrajena za vas. Mnogi ljudje pozabljajo, da je, ali so pozabili, da jo uporabljajo. Ampak, če gledam gor kripti PHP, grobnica že vrne hash niz zame. In to dejansko soli večkrat in to hashes večkrat. Torej ne bomo morali to storiti. Torej, vse, kar morate storiti je, pošljete v grobnici. In bo ustvaril velik hash brez boste morali skrbeti soli ali kaj podobnega. Ker če bi sol to, da imate se spomnite, kaj ste uporabili sol ker če ne, se ne more znebiti vaš Geslo nazaj brez sol, ki jo uporablja. OK. In tudi osebno določljivi informacije. Torej socialna varnost, kreditne kartice - To je precej očitno. Ampak včasih se ljudje pozabili, tako, kot je Dela je, koliko informacij si naredil dejansko morali najti nekaj eno osebo? Nekdo je naredil študijo o to pot nazaj. In je bilo všeč, če imate polno ime, ne morete najti nekdo, ki z lahkoto. Toda kaj, če imate polno ime in njihov datum rojstva? Je to dovolj za identifikacijo nekdo posebej? Kaj pa, če imate svoje ime in naslov, ki živijo na? Je to dovolj, da bi našli nekoga? In takrat se sprašujejo, kaj je osebno določljivi podatki, in kaj morate skrbeti ne daje stran? Če ste vdati osebno razpoznavnih informacije, da nekdo vam, Lahko dobiš lahko tožil. In prav gotovo ne želite, da. Torej, če ste dajanje vaše spletne strani ven, in ste res kul Zasnova, upajmo, da je super končni projekt. Koli si nekako želite ga dal ven. Hočeš, da poskrbite, da ne glede na ste ob od uporabnika, če je osebne prepoznavne podatke, ki jih želite zagotoviti, si pa res previdni z njim. Injiciranje Shell. OK. Injiciranje Shell omogoča napadalec dobili dostop do vaše dejanske ukazni vrstici V vašem strežniku. In tako je on sposoben teči kodo da ne morete nadzorovati. Vzemimo za primer tega lep niz tukaj. Če gremo v spletno stran še enkrat, sem bo šel v kodo injekcijo. Torej, kaj to pa je - to je tudi tisto, kar smo bili gledaš prej. Smo dovolili uporabniku dal v kakršnikoli hoče, in se bo izpisal karkoli hočeš. Torej bom dal klic. Kaj to pa je - se bo začelo s povezovanjem. Tako bo mi teče karkoli ukaz teče osebe Pred in moj ukaz. In tečem ukaz sistema. In v teh zadnjih strune so - ne pozabite kaj sem govoril z vami o tem, ker se imate za kodiranje je v postopku URL. Če vodim to zdaj - Pokazal ti bom tukaj - boste videli, da sem končal up teče ukaz. To je pravzaprav dejanski strežnik da je moja spletna stran teče naprej. Tako da ne želimo, da se ker lahko tečem - Ta strežnik ni moje. Torej, ne želim pokvariti njegov sestra, Marcus je strežnik. Vendar lahko zaženete več ukazov da so nevarne. In potencialno, lahko izbrišete datoteke, odstranite imenike. Ne morem odstraniti določen direktorij, če Hotela sem, ampak nočem za to, da Marcus. On je dober fant. On mi posodi njegov pomočnik. Torej bom ga pustil off na eno dobro. Torej, kaj ne želimo uporabljati - ne bomo želite uporabiti eval ali sistema. Eval ali sistem nam omogoča, da da te sistemske klice. Eval sredstva ovrednotiti. Sistem pomeni tisto, kar sem tekel. To bo nekaj v sistemu. Lahko pa smo prepovedali te stvari v PHP, tako da jih ne uporabljate. In nalaganje datotek. Hotel sem narediti super stvar pri nalaganju datoteke. Ampak, kot sem ti rekel, fantje, moj datoteko upload stvar ne deluje. Če bi bili, da naložite datoteko zdaj - če bi bil jaz naložite datoteko, in to je slika - imate upload stvar to je slika. To je v redu. Nič se ne zgodi. Ampak, če imate za nalaganje datotek, na primer, in uporabnik dejansko dodane PHP datoteko ali exe ali kaj tako, potem si lahko potencialno problem. To je delala prej. Žal za mene, to je ne deluje več. Če bi, na primer, naložite datoteko, da sem niso dobili dovoljenja za nalaganje datotek zaradi strežniku niso moje. Torej, tip je res pametno. Tako da ne želimo, da - Bom pokazal fantje - OK, to je nekaj res kul orodja. Torej ti - gredo v - če imate vi Firefox - upam, da boste to storili. Obstajata dve dodatkov imenovane SQL Inject Jaz in Cross-Site Script Me. Odpirajo tako malo strani bari na strani. In če bi bil jaz, da gredo na CS60 na primer - kaj počne je videti Za vse oblike, ki - upam, da ne bom dobil v težavah za to. Ampak OK. Tukaj je pin sistem. Torej, ko začnem iskati luknje v Sistem, prva stvar, ki mi je odpreti ta prelepi Orodje na strani. In jaz grem testirati oblike z avto napadov. Pa kaj, to pa je, da bo počasi odpirajo kup brskalnikov. Tukaj je kup brskalnikov. In to poskuša vsak kombinacije of cross-site scripting da je možno je, če vidite na strani. In mi bo dal rezultat nekako, kaj je odgovor. Vse mimo. Očitno je, da so vse mimo. Mislim, da si res pameten ljudje tam gor. Ampak, če bi bil jaz teči - Imel sem večkrat prej, ko sem teči ta o končnih projektov študentov. Jaz preprosto zaženite SQL vbrizgamo me z vse različne napade. In to poskuša SQL injicirate to pin server. Torej, če smo se pomaknite navzdol za Na primer, pravi - To je dobro, če se vrne. Tako da testirajo nekaj določenih vrednosti. In strežnik je vrnil kodo, ki je bil negativen. Začasno odstrani. To je dobro. Skuša vse te teste. Tako da boste lahko preprosto zaženite - Želim si, da bi našel pravi spletni strani hitro, da bi pustil me - Morda CS50 trgovina. Wow, to se dogaja, da bo predolgo. Jaz bom pustil prvi test se ne konča dobro. Tako da je sodnik. To so tri stvari. Ta orodja so brezplačne. Jih lahko prenesete in jih predvajajo na vaše spletne strani, in to vam bo povedal, če je imate cross-site scripting, če imate SQL, če imate Nekaj ​​od podobno. Jaz sem nekako pokvarila. Kaj je pomembno - OK, tako da nikoli ne zaupaj uporabnika. Ne glede na vložke uporabnik za vas, da prepričajte, da ste jo razkužila, ga očistite, ste se prijavili za prave stvari, da je tisto, kar vam daje želim, da bi vam. Vedno se posodablja o tem, kaj okviri da ste dejansko uporabljate. Če ste uporabili nekaj podobnega bootstrap - Vem, da gresta za uporabo bootstrap, ker on bo šel zaradi tega kmalu v razredu - in Wordpress ali nekaj takega, običajno je to mogoče kramp. In potem si niti ne vedo. Ste pravkar teče vaše spletne strani. In to je popolnoma varno. In greš dol. Torej sem ribolovu res zgodaj. Vendar bi se rad zahvalil Pentest Labs. Bom pokazal vidva nekaj imenovano Pentest Labs. Če sta vidva res zanima kakšna varnost res je, da je Spletna stran se imenuje Pentest Labs, če vi iti k njej prav zdaj. Oh, no, to ni to. Jaz bom samo, da bi sistem deloval, kot je ta. Google mi pravi odgovor. OK. In uči vam uporabo - tako da pravi, da se učijo spletni vdor testiranje na pravi način. To vas uči - upam, da si etično osebo. Ampak to vas uči, kako si lahko ogledate na kako lahko dobiš notri spletne strani. In če boste izvedeli, kako lahko dobiš noter spletne strani, boste lahko izvedeli, kako zaščitite pred pridobivanje znotraj spletne strani. Dovolite mi, da povečate ker morda vi ne gledaš te pravice. Od SQL injection lupini, zato nekako, kako lahko dobim od SQL injiciranja na lupini. In prenesete ta virtualni stroj. In stvaren stroj že prihaja s spletno stranjo, ki ste dogaja, da jo poskusite na. Prenesete ta PDF. In to vam bo pokazal po vrsticah, kar kar morate storiti, kar morate preveriti. To je tisto, kar napadalec dejansko does priti v spletno stran. In nekateri od teh stvari je zapleteno. Želim si, da bi lahko šel čez več stvari z vami. Vendar pa me skrbi, da fantje še ni res - To je tisto, kar sem šel z vidva, spletne testi za prodor testiranje. Res ne vem, kaj SQL je in kaj - Carla Jacksona seminar je super, kot dobro. Vi ne veste, nekako kaj je to. Ampak, če greš na tej spletni strani, in si prenos teh vaj in ti PDF, si lahko ogledate vrsto tisto področje varnosti res V prodor testiranje, si oglejte, kako lahko prišli v spletne strani in zaščito sami od njega. Torej, če naredim super hiter pregled, da bomo preprečili cross-site scripting. Želite htmlspecialchars uporabljate vsak Čas nekaj uporabnika vhoda. Preprečiti SQL injection. Če boste to storili, da ste že Bolje kot je Harvard ko je dobil so kršene. In poskrbite, da vaša gesla niso v golo besedilo. Poskrbite, da vam ne samo na en način razpršitve njih, ampak da uporabljate grobnico, PHP funkcija, ki sem ti pokazala, fantje. Na ta način, morate biti dober. Tudi, če vaši prijatelji vam, zaženite SQL vbrizgamo mi na svojih spletnih straneh. Run cross-site skriptno na svojih spletnih straneh. In boste videli veliko teh spletnih strani imajo tono ranljivosti. To je neverjetno, koliko ljudi pozabi razkužila svojih zbirk podatkov, ali da prepričani, kaj vnosom osebe ni script code. OK. Sem nekako končal res zgodaj. Ampak, če ima kdo kakršna koli vprašanja o karkoli, lahko me ustreli vprašanje. Ja. Pojdi, pojdi. PUBLIKA: Rad bi samo vprašati, lahko pojasnite, kako se datoteka upload natanko dela. LUCIANO Arango: Ja. Naj vam pokažem datoteko upload zelo hitro. Torej upload file - problem wit file upload zdaj je, da je - Bom odprl kodo, tako da boste vi glej kodo v ozadju. In ga naložite. Tukaj je koda za datotečni strežnik. Trudimo se, da gredo v to Imenik tukaj. In se trudimo, da, ko smo vhodnega Datoteka, isset file - tako da, ko je vloži v datotekah, to podobo, nato pa skušamo premakniti tukaj. Mi zgrabi datoteko tukaj. Metoda POST, tip, slik, datotek. In smo poslali to datoteko. In potem, ko smo ga dobili, tako da, ko datoteka ima podobo, smo poskušali, da ga pošljete za ta imenik. Problem je, da je spletna stran ni da me spustite v to mapo, saj ne želijo, da grem nazaj. Da ne želiš iti - Moram iti - Torej, tukaj je upload. Evo slike. Moram iti vso pot nazaj se začne in ga dal noter in potem pojdi in ga v imeniku. Torej, če sem tekel terminalsko okno, in sem hotel, da se premaknete datoteke - [Neslišno] vidim. Če bi želel, da se premaknete datoteko, imam dati ime datoteke in nato popolna pot želim, da ga pošljete. In potem strežnik ni spustili so me nazaj. In tako je ne najemnin mi prišli do te datoteke. Vendar običajno - tako da je koda za naložite datoteko. Torej normalno, kaj se bo zgodilo, je, da oseba, ki se ne preverja, če je moja slika se konča s. jpeg, zato sem bi želeli preveriti. Dovolite mi, da odprejo primer preveč na hitro. OK. Ta oseba pravico - Tako na primer dva preverja če preg_match - tukaj je tukaj - zagotoviti, da se konča z PHP, kar je dobro. To je dobro. Ampak tam je resnično velik problem s tem. To je dobro. Ampak, če bi bil jaz dal datoteko z imenom myfavoritepicture.php.jpeg, sem lahko Še vedno lahko znebite jpeg in vodijo it.k To PHP je nevarno. Vi ne želite, da oseba, ki bi lahko teči kodo na vašo spletno stran. Ampak potem. Jpeg omogoča, da prenese. Ideja je, kaj si resnično želite storiti se ne bi pila, A. Ampak, OK, kaj si resnično želite storiti, je zagotoviti, da ste prebrali celem svetu. In tam ni nič. Php v njem. Ni. Php v Celoten ime datoteke. PUBLIKA: Ampak ti lahko dal. jpeg na koncu. Strežniki še vedno teče kodo. LUCIANO Arango: Ne, ne bo teči na začetku. Moraš iti nazaj in poskusiti da vidim, če je to mogoče - PUBLIKA: Zato moramo - OK, samo še en set, ki vključuje - LUCIANO Arango: Ja. PUBLIKA: OK. LUCIANO Arango: Ja. OK. Še kakšno vprašanje? OK. Jaz bom to prepustil in razvrščanje od poskusite da vidim, če vidva lahko - druge pa so malo bolj zapletena, saj zahtevajo veliko Več poznavanje SQL kot le začenši poznavanje spletnih SQL je in Kaj JavaScript. Ampak bom poskusil, da to ne bi zaostajala, in upajmo, da se bodo fantje naučijo O tem in poskusite, da si oglejte na kaj lahko storite in koliko primerov lahko prideš skozi. Vsakdo ima katera koli druga Vprašanja o tem? Pojdi naprej. Ja, streljaj, streljaj. Ja, pojdi. Pojdi naprej. PUBLIKA: OK. Tako sem slišal, kako Magic Quotes niso dovolj varna. LUCIANO Arango: Kaj - Magic Quotes? OBČINSTVO: Ja. Zato dodaja - tako vsakič, ko vhodni nekaj, kar je vedno dodaja ponudbe. LUCIANO Arango: Ja. Ja. OK. PUBLIKA: In potem sem si mislil, da je delal, potem pa sem ga iskal gor. In je rekel, da to ni dobro. Ampak nisem prepričan, zakaj. LUCIANO Arango: Ja. PUBLIKA: Ne uporabljajte Magic Quotes, ker to ni varno. LUCIANO Arango: OK. Torej Magic Quotes je, ko vstavite SQL in že dodaja ponudbo za vas. PUBLIKA: Vedno dodaja ponudbe okoli karkoli si dal noter LUCIANO Arango: Ja. Torej, problem pri tem je, da - Bom si oglejte - PUBLIKA: Kako se pridobi SQL izjavo? Ali mislim, da bi bilo kot quote izberete. LUCIANO Arango: Ja, morate dobre citate za SQL. PUBLIKA: Ne, ampak strežnik to naredi za vas. LUCIANO Arango: Te majhne quotes tukaj, ti mali quotes? OBČINSTVO: Ja. LUCIANO Arango: Ja. Problem je, da lahko zakomentirajte zadnji - OK, kaj lahko storim, je, ne morem komentirati ven - tako da je lahko pogled na - mi dovolite, odprto besedilo za urejanje datoteke. Dovolite mi, da to uredi Tukaj neposredno. OK. Lahko vi videli, da je jasno? Kaj lahko storim, je, ne morem komentirati od prejšnjega. To bo zakomentirajte zadnjega. In potem bom dal enega tukaj, dal vse zlonamerne stvari tukaj. Torej, uporabnik je dejansko vnašanja, kajne? Uporabnik ni vnesla stvari, kajne? To je tisto, kar bom vhoda, kot oseba, ki poskuša priti noter. Bom dal v - to je en narekovaj. To je samo squiggly po pomoti. In kaj potem koda je storila - Žal mi je, da bom vzeti ven. Kaj je koda bo naredil, je to se dogaja, da dodate prvi Narekovaji tukaj. In to se dogaja, da dodate zadnji narekovaj kot dobro. In to tudi dogaja, da dodate zadnja, zadnja narekovaj. Ampak jaz sem komentiral te kotacije Ocene ven, tako da ne teče. In jaz koncu tega citata označite tukaj. Razumete? Ali ste se izgubili? Ne morem komentirati zadnjo ponudbo mark, in poskrbel za Prvi narekovaj. PUBLIKA: In ravno zaščita prvi. LUCIANO Arango: Ja. In ravno končal prvo. Ja, to je res. To je tisto, kar lahko storim. Ja. Katera koli druga vprašanja, kot je ta? To je veliko vprašanje. No, ja, mogoče. Upajmo, da bodo fantje nekako narediti bolj občutek, ko si študija SQL in take stvari. Ampak poskrbite, da - da teh orodij v uro. Oprostite, ta orodja več tukaj. Ta orodja so super. Če ima kdo kakšna vprašanja, me lahko tudi preko elektronske pošte. To je moja normalna email. In to je moje delo, e-pošta, ki je, ko delam na morju. OK, hvala. Hvala, fantje. Ste na dobri poti. Vam ni treba ostati tukaj. Ne aplavzom pozdravilo domače. To je čudno. OK, hvala, fantje.