Luciano Arango: OK, krakkar. Mitt nafn er Luciano Arango. Ég er sophomore í Adams House. Og við erum að fara að tala um Web öryggi virka varnar. Svo ég vinn fyrir skrifstofu Upplýsingar Öryggi í höfunum. Og yfir sumarið, ég interned á SeguraTec, sem var upplýsinga öryggi fyrirtæki sem þjónaði bankanum of Columbia. Það er að mestu leyti þar sem ég lærði það sem ég hef lært hingað til. Og svo sumir af the efni sem við erum að fara yfir í dag, höfum við ekki virkilega talað um í bekknum. En við munum fljótlega. Það er að fara að vera eins og SQL, JavaScript. Og við höfum í raun ekki farið yfir það. Svo ég geti raða flugs í gegnum það, og þú might ekki vita nokkra hluti. En fljótlega, þú munt læra það. Og það verður allt vit. Einnig annar hlutur - vera siðferðileg. Sumir af þeim hlutum sem þú lærir, þú gæti notað í non-siðferðilegum hætti. Ef það er þitt, ákveðið að reyna. Ég hvetja ákveðið ykkur að reyna eigin þjónum þínum, reyndu fara inni þá. Sjá hvort þú geta komast þá, ef þú getur fengið inni í þeim. En ekki einhver annar er. Löggur í raun ekki eins brandara og allt, leggjum þetta hér. Við vorum Messías í kring. Þeir fá raunverulega reiður. Svo höfuð yfir á þetta vefsvæði. Ég hef það opnaði hérna. Þetta er vefsíða, og það hefur fullt af dæmum. Hvað sem gerist er að fyrsta dæmið er tegund af að fara til vera a einhver fjöldi auðveldlega en síðustu td í vissum skilningi að fyrsta dæmið er alveg óörugg. Og það síðasta er eiginlega hvað eðlilegur vefur öryggi maður myndi gera. En þú getur samt raða af komast í kringum það. Og við erum að fara að einblína á einn og tveir, dæmi eitt og tvö. OK. Við skulum byrja með kross-staður forskriftarþarfir. JavaScript er keyrt á vafranum viðskiptavinarins. Það er forritunarmál sem þú notar að keyra á vafranum viðskiptavinarins svo þú þarft ekki að uppfæra heimasíðuna og fara aftur til the framreiðslumaður. Þú hafa það að keyra. Til dæmis, Facebook, þú þarft ekki að endurhlaða heimasíðu fyrir nýja stöðu uppfærslur til að koma upp. Það er að nota JavaScript til að búa til allt þetta. Svo við getum sprautað illgjarn JavaScript inn í vefsíður. Og þannig, þegar við að senda tengil einhver, gætum við svoleiðis senda hana með sumir af the merkjamál sem við viljum. Það er viðvarandi og ekki viðvarandi JavaScript - viðvarandi og ekki viðvarandi kross-staður forskriftarþarfir, ég meina. Og munurinn er sú að viðvarandi er JavaScript sem mun vera vistuð á heimasíðu. Og ekki viðvarandi verður að hafa JavaScript sem mun í raun bara gerst einu sinni. Svo skulum líta á dæmi raunverulegur fljótur. OK. Svo þetta vefsvæði, einfalt, ekkert gerist hér. Og við ætlum að reyna að setja smá JavaScript. Svo leið við byrjum að skrifa JavaScript er við byrjum við upphaf handriti. Og við að loka því með handriti. Við erum einfaldlega að fara að setja skilaboð - Ég skal sýna þér - vakandi. Alert er fall sem JavaScript notar til að sýna eitthvað. Svo skulum reyna það raunverulegur fljótur. Ég ætla að fara, vakandi Hello. Jæja, ég gleymdi að setja - OK. Svo einfalt er það. Við setjum JavaScript á vefsíðu, og það kom upp. Og það svoleiðis bara gerist á heimasíðu okkar, ekki satt? Svo það virðist eins og það er ekki vandamál, ekki satt? Ég meina, hvernig væri hægt að nota þetta illgirni? Svo leið að tölvusnápur gera þetta er mjög einfalt. Hann ætlar að grípa það. Þeir geta sent þennan tengil til þín. Ef ég ætla að senda á þennan tengil til þín núna, og þú opnar það upp, það er að fara að segja, halló, að segja að vefsíðan mín er að segja þér halló. Og svo ef ég væri að segja eitthvað svolítið betri, ef ég draga upp JavaScript fall ég konar af þegar skrifaði - en ef þú lítur á það, ég fer yfir það áður en ég skrifaði það. Þannig að við erum að fara að setja tímamörk. Við ætlum að bíða eftir nokkrar sekúndur. Í raun erum við að fara að bíða eftir, ef Ég er ekki skakkur, fimm sekúndur. Þetta fer í millisekúndur. Og þá er það sem við erum að fara að gera við erum fara til að láta að tenging rann út til að skrá þig aftur inn Og við erum að fara að breyta staðsetningu á annan stað. Þannig að ef ég sendi þessa vefsíðu til einhvers, hann ætlar að vera beit í kring, logn. Ekkert er að gerast. Og í fimm sekúndur, það er að fara að segja, tenging þín rann út. Vinsamlegast skráðu þig aftur inn Þegar þeir smella á OK, ég ætla að taka þá í annan vef. Væntanlega, the website er að fara að vera svipað á vef sem þeir voru í áður. Og hann ætlar að skrá þig þeirra persónuskilríki á minni heimasíðu í stað heimasíðu þeirra. Og svo ég geti sent fólki email með þennan tengil. Ég segi, ó, hér er tengill. Þetta er í banka, til dæmis. Ég segi, hér fara á þennan tengil. Og þegar þeir senda það, þá eru þeir að fara að beit í kring. Ég get beðið í 15 sekúndur, 20 sekúndur, og þá skjóta það vinsamlegast skráðu þig aftur í inn aftur á. Þú krakkar getur prófað það með A einhver fjöldi fleiri hlutum. Það er flókið vegna þess að þú krakkar hef ekki séð JavaScript, svo þú might ekki sumar aðgerðir. En allt sem þú þarft að gera er að byrja með handrit, enda með handriti. Og þú gætir sett neitt í miðju. Alert er fall, bíða. Window staðsetning tekur þig á nýjan stað. En þú getur gert svo margt fleira. Og svo er hugmyndin að við tökum það burt. Ef ég fer til dæmis tvö, og ég setja í sama kóða, það er ekki að fara að vinna. Svo það er prentun allt út af því að hvað þetta vefsvæði upphaflega gerir er ef ég setja neitt hér, það verður að prenta það út hérna. Svo það er ekki prentun neitt út. Þetta dæmi er í raun að skoða að sjá ef handritið er þar. Svo já, fara á undan. Spurðu mig. Áhorfendur: Er ekki að senda A fá eða sent beiðni? Luciano Arango: Já. þeir eru senda FÁ beiðni. Áhorfendur: Það er? Luciano Arango: Já. Einnig vafrar nota POST beiðnir. En ég er að reyna að sýna komast óskir svo að við getum séð hvað er í raun að fara á. Og svo ef við skoðum þennan kóða - svo það er ekki að virka lengur. Og ef við lítum á þennan kóða, það er að fara að vera í dæmi tvö. Hvað þessi maður er að gera, sá í forsvari þessa vafra - opna, OK - er skipta orðið handriti. Þetta er PHP, sem þið gætu hafa séð smá ennþá. Hann er bara að skipta um Orðið handrit með nafni. Svo hins vegar ef ég fer á undan og var að setja í - ef ég grípa númerið mitt aftur, og ég ætla að breyta henni bara smá. Í stað þess að handriti, ég ætla að breyta það fyrir handrit með höfuðborg R. og við erum að fara að sjá hvort þetta númer virkar. Svo það var ekki að prenta það út, sem er gott tákn. Og vonandi í tveimur fleiri sekúndur, það er að fara að skjóta upp kollinum. Innskráning þín rann út. OK. Það er allt í lagi. Svo stöðva fyrir handrit gæti ekki endilega að vinna. Sá - það getur einnig athugað fyrir handrit hástafi, handrit lágstafir, STR ræða bera saman, ganga úr skugga um að þeir séu það sama. En tölvusnápur geta enn gert konar hvað við gerðum í Vigenere þegar við fluttum aftur a par stafir, halda áfram. Og það er hægt að reikna út hvernig á að setja handrit aftur í það svo það getur sprautað að handritið. Svo hvað sem þú vilt nota er htmlspecialchars til vernda þinn website. Og hvað þetta gerir er að það gerir viss um að það sem þú setur í - til dæmis, tilvitnanir eða þetta meiri en eða minna en - komi með eitthvað sem mun ekki vera - láta mig súmma inn hér - í raun merkið. Það mun skipta slíkar sérstaka HTML stafir sem við munum sjá þegar við erum að tala um - ó, þetta er að fara að taka mig aftur til - Þessir stafir hérna. Þetta signify að eitthvað kemur. Fyrir HTML, að byrjun krappi segir okkur að eitthvað HTML tengdar kemur. Og við viljum losna við það. Við viljum ekki að setja HTML inn í website.k Við viljum ekki notandanum kleift að vera fær um að setja eitthvað í heimasíðu þeirra sem getur haft áhrif á vefsíðu þeirra, eins og handrit eða HTML eða eitthvað svoleiðis. Hvað er mikilvægt er að þú sanitize notandi inntak. Þannig að notendur geta inntak margt. Hann getur inntak fullt af efni til að reyna að plata vafrann inn enn að keyra þetta handrit kóðann. Það sem þú vilt gera er ekki bara að líta fyrir handrit, en útlit fyrir allt sem gæti verið illgjarn. Og htmlspecialchars mun gera það fyrir þig, svo þú þarft ekki að hafa áhyggjur óður í það. En ekki reyna að gera sjálfur svoleiðis með eigin kóðann þinn. Er allir á hreinu XSS? OK. Við skulum fara að SQL inndælingu. Svo er SQL innspýting líklega númer eitt varnarleysi í mismunandi vefsíður. Ég meina, gott dæmi - Ég var bara að rannsaka lengst fyrir þetta. Og ég fann þetta frábæra grein, þar Ég sá að Harvard var brotið, var tölvusnápur. Og ég var að spá, vel, Hvernig myndu þeir gera það? Harvard er mest ógnvekjandi, flest tryggja háskóla alltaf. Satt? Jæja, til að brjóta netþjóna, tölvusnápur notaði tækni sem nefnist SQL innspýting. Þannig að þetta gerist á degi til dags. Fólk gleymir að taka tillit til fyrir SQL stungulyf. Harvard gerir. Ég held að það segir hér, Princeton, Stanford, Cornell. Svo hvernig gera við - hvað er þetta SQL innspýting sem er að koma öllum þessum fólk niður? OK. Svo er forritunarmál SQL sem við notum til að fá aðgang gagnagrunna. Það sem við gerum er að við að velja - Svo er það þetta les núna er að velja allt frá borðinu. SQL, það breytist í þessum gagnasöfnum sem hafa borðum fullt af upplýsingum. Svo velja allt frá notendum þar sem nafn er notendanafnið. Satt? Nógu einfalt. Hugmyndin af SQL stungulyf er að við setja sumir illgjarn merkjamál sem myndi plata miðlara í gangi eitthvað öðruvísi en það sem það upphaflega var í gangi. Svo skulum segja username, við setja í eða 1 er 1. Þannig að við setjum í eða 1 er 1. Hvernig það mun lesa nú verður að velja frá notendum, allt frá notendur - þetta er allt - þar sem nafn er notendanafnið, en notendanafn er eða 1 er 1. Svo nafn er ekkert eða 1 er jafnt og 1. 1 er jafnt og 1 er alltaf satt. Þannig að þetta verður alltaf skila upplýsingum frá notendum. OK. Við þurfum ekki að hafa rétt notandanafn. Við getum bara haft neitt sem við viljum, og það mun skila upplýsingum að við þurfum. Við skulum líta á annað dæmi. Ef við höfum valið allt frá notanda, þar sem nafn er DROP TAFLA notendur - svo hvað finnst þér þetta mun gera ef ég setti inn notandanafnið sem DROP TAFLA notendur? Einhver hafa hugmynd? Já. Áhorfendur: Það er að fara að segja það að afrita öll borðin. Luciano Arango: Það er að fara að segja okkur að afrita allt í viðbót, allt í gagnagrunninum. Og það sem fólk notar þetta fyrir - svo Ég ætla að sýna ykkur. Ég fatlaður sleppa borðum vegna þess að ég vildi ekki að þú krakkar að falla borðum mínum. Láta 'taka a líta á þetta. Þannig að þetta einfaldlega draga upp upplýsingar í tiltekinn einstakling. Svo hvernig vitum við hvort þetta er áhrifum af SQL stungulyf. Við erum að fara að athuga raunverulegur fljótur ef við getum sett eitthvað - láta mig afrita þennan kóða. Ég ætla að fara yfir það í annað. Ég ætla að setja rót og 1 er 1. Þetta hérna, þetta prósentumerkið 23 - hvað það er í raun, ef ég líta hérna á - hvernig HTML tekur í tölur, ef þú taka a líta á þegar ég setti í rúm hér - ef ég væri að rúm eitthvað hér, það breytist það til prósent 2.. Gera þú krakkar sjá þetta hérna þegar ég setti í rúmi? The vegur það verksmiðja er að þú getur aðeins senda ASCII gildi gegnum HTML. Þannig að það kemur í stað, til dæmis, pláss með prósent 20. Ég veit ekki hvort þið hafa séð það áður. Það kemur í stað hashtag með prósent 23. Við þurfum að hashtag lok eða yfirlýsingu svo að við getum sagt að gagnagrunninn til að gleyma að tjá út þetta síðasta semíkommu í lokin. Við viljum það til að hugsa ekki um það. Við viljum bara það að keyra allt að við höfum fyrirfram og comment þessi út. Láta 'taka a líta á það. Þannig að ef ég væri að setja eitthvað rangt - segjum til dæmis, ég setti 2 jafn 1, er það ekki gefa mér neitt. Þegar ég setti í 1. jafngildir 1, og það gerir aftur eitthvað, þetta segir mér að þetta er viðkvæmt fyrir SQL stungulyf. Ég veit nú að allt sem Ég setti eftir þetta - og til dæmis, falla TÖFLUR eða eitthvað svoleiðis mun örugglega vinna. Ég veit að það er viðkvæmt fyrir SQL stungulyf vegna þess að ég veit að undir hetta, það er að láta mig gera 1 er 1 hlutur. OK? Og ef við lítum á þessar öðrum sjálfur, númer tvö og númer þrjú, það er að fara að gera svolítið meira stöðva undir hlutanum hetta hvað það er. Svo einhver gera falla eitthvað enn eða reynt? Gera þú krakkar konar fá SQL enn? Vegna þess að ég veit að þið hafið ekki séð hana ennþá, þannig að það er eins konar ruglingslegt fyrir ykkur. Skulum taka a útlit. Svo er það leiðin til að koma í veg fyrir SQLI? OK. Þannig að þetta er mjög mikilvægt vegna þess að þú krakkar vilja örugglega koma í veg fyrir þetta í vefsíður þínar. Ef ekki, eru allir vinir þínir fara að gera grín af þér þegar þeir falla allt töflur. Svo hugmyndin er að þú gera við SQL á vissan hátt, en þú passa hvað notandi inntak með ákveðinn strengur. Svo leið þetta virkar er að þú undirbúa gagnagrunninn. Þú velur nafn, lit og hitaeiningar úr gagnagrunni sem kallast ávöxtum. Og þá hitaeiningar er þar minni en, og við setjum spurningarmerki þar segja að við erum að fara að inntak eitthvað í annað. Og lit jafnt og við setjum spurningu keppni að segja að við erum að fara að inntak eitthvað í annað eins vel. OK? Og þá erum við að framkvæma það, setja í 150 og rauður. Og þetta mun athuga til að viss um að þessir tveir - Fylkið mun athuga að þessi tveir eru heiltala og að þetta er band. Þá erum við að fara, og við ná allt, leggjum það í rauðu. Það þýðir að við ná allt. Það þýðir að við framkvæmum raun SQL yfirlýsingu og setja hana aftur í rauðu. Hér við að gera það sama, en við gera það sama fyrir gulu. Og við ná allt. Og á þennan hátt, koma í veg fyrir að við notandann frá því að vera fær um að inntak eitthvað það er ekki það sem við tilgreint, a band eða heiltala sem er, til dæmis. Ég var að tala áðan um reiða sig á aðra. Þegar þú krakkar byrja verkefnið, þú ert mest ákveðið að fara að nota ræsi eða eitthvað svipað. Hefur þú krakkar alltaf notað Wordpress? Sennilega þú krakkar hafa notað Wordpress líklegast. Þannig að vandamálið með því að nota hlutir annarra - Ég ætla bara að fara að Google raunverulegur fljótur Wordpress varnarleysi. Ef ég draga þetta upp núna - Ég gerði bókstaflega tveggja annað Google. Við sjáum að Wordpress - þetta er dagsett og september '12. 26 er uppfærð. Sjálfgefin stilling af Wordpress áður 3,6 ekki í veg fyrir þessi ákveðin skrárnar, sem gæti gera það auðveldara fyrir kross-staður forskriftarþarfir árásum. Svo fljótur saga, þegar við vorum að vinna með - þannig að ég var í sumar, vinna að Starfsnám. Og við vorum að vinna með einhverskonar eins og stór greiðslukort fyrirtæki. Og þeir treysta á eitthvað sem kallast - Ég veit ekki hvort þið alltaf spilað með vöru sem heitir Joomla. Joomla er vara sem er notað til að Control - konar svipað Wordpress, notað til að byggja upp vefsíður. Þannig að þeir höfðu heimasíðu þeirra vinna á Joomla. Þetta er í raun kreditkort fyrirtæki í Kólumbíu. Ég tek þig til þeirra website raunverulegur fljótur. Svo þeir nota Joomla. Og þeir höfðu ekki uppfært Joomla að nýjasta viðbótin. Og svo þegar við vorum að horfa á númer þeirra, við varúlfur fær til raunverulega fara inn númer þeirra og stela öllum greiðslukort sem þeir höfðu, allar kreditkortanúmer, nöfn, heimilisföng. Og þetta var bara - og númer þeirra var fullkomlega í lagi. Þeir höfðu mikla kóðann. Það var allt öryggi. Þeir athugað alla gagnagrunna. Þeir gerðu viss kross-staður forskriftarþarfir var fínn. En þeir nota eitthvað sem var ekki uppfærð, það var ekki örugg. Og svo sem leiddi þá til - svo þið eru örugglega að fara að nota aðra kóða, ramma fólks annarra að byggja upp vefsíðuna. Gakktu úr skugga um að þeir eru örugg því stundum er það ekki þú, sá sem gerir mistök. En einhver annar gerir mistök, og þá þú falla niður vegna þess. Lykilorð og PII. Svo lykilorð. OK. Láta 'taka a líta á lykilorð raunverulegur fljótur. OK. Vinsamlegast segja mér að allir notar örugg - Ég vona að allir hér notar öruggt lykilorð. Ég ætla bara að láta það inn sem forsendu. Svo þú krakkar eru örugglega að fara að geyma lykilorð fyrir vefsíður þínar. Þú ert að fara að gera eitthvað eins og tenging eða eitthvað svoleiðis. Hvað er mikilvægt er að ekki geyma lykilorð í texta. Þetta er ákaflega mikilvægt. Þú vilt ekki að geyma lykilorð í texta. Og þú ákveðið að gera ekki raunverulega vilja að geyma það í einn veg kjötkássa. Svo hvað ein leið kjötkássa er að þegar þú búa til orð, þegar þú setur þetta orð í kjötkássa virka, mun það búa til baka einhverskonar dulinn skilaboð eða dulinn setja lykla. Ég skal sýna ykkur dæmi. Ég ætla að kjötkássa þeir orð password1. Svo MD5 kjötkássa er að fara að skila mér einhverskonar undarlegt upplýsingum. Vandamálið er að fólk þarna úti sem eins og að fara inn í vefsíður hafa þegar mynstrağur út Raða af öllum MD5 kjötkássa. Hvað þeir gerðu er þeir settust niður á þeirra tölvur, og þeir kjötkássa hverjum einn kostur orð þarna úti fyrr en þeir fengu svoleiðis hvað þetta er. Ef ég væri að leita þetta upp - Ég greip bara þetta hass. Ef ég fæ þetta kjötkássa úr - ef ég fer inn á vefsíðu og ég finna þetta kjötkássa vegna þess að ég fá að gagnagrunna, og ég lít upp, einhver þegar mynstrağur það út fyrir mig. Já. Svo fólk settist niður, og hvað sem md5 kjötkássa sem þú setur inn, þá eru þeir að fara að aftur til þín eitthvað sem er orð. Ef ég kjötkássa annað orð, eins og - Ég veit ekki - trees2. Ég vil ekki vera fyrir vonbrigðum með Google leitum mínum. Það er það, trees2. Svo mikið af vefsíðum enn nota MD5 kjötkássa. Þeir segja, ó, það er öruggt. Við erum ekki að geyma í látlaus texti. Við höfum þetta MD5 kjötkássa. Og allt sem ég þarf að gera er bara Google númerið. Ég er ekki einu sinni að reikna sjálfur. Ég get bara Google það, og einhver þegar gerði það fyrir mig. Hér er fullt af þeim. Hér er fullt af lykilorð. Svo ákveðið ekki nota MD5 kjötkássa, því allt sem þú þarft að gera er Google það. Svo hvaða gera þú vilt nota í staðinn? OK. Eitthvað sem kallast söltun. Svo hvað söltun er - gera þú krakkar muna þegar við vorum tala um handahófi í - Ég er ekki viss um hvað pset það var - var það pset þar eða fjögur? Við vorum að tala um að finna nálin í Heysátan. Og í pset, sagði að það sem þú gætir raun að finna út hvað handahófi býr vegna þess að einhver er þegar hljóp handahófi milljón sinnum og bara konar myndast hvað þeir mynda. Það sem þú vilt gera er að setja í inntak. Svo er það sem söltun konar er. Þeir mynstrağur þegar út hvað söltun skilar fyrir hvert verk. Svo er það sem söltun er þú setur í salt. Þú setur í ákveðnu orði. Og það mun kjötkássa þessi orð eftir á hvað þú setur hérna. Svo ef ég kjötkássa lykilorð einn með þetta setningu, það er að fara að kjötkássa öðruvísi ef ég kjötkássa password1 með mismunandi setningu. Það gefur svona það einhvers staðar til byrja að hass til að byrja. Svo það er mikið erfiðara að reikna, en þú getur samt reikna það, sérstaklega ef þú notar slæmur salt. Fólk hefur nú þegar einnig mynstrağur út algengar sölt og mynstrağur út hvað sem það er. Handahófi sölt eru mun betri, en besta leiðin er að nota eitthvað sem kallast Crypt. Og hvað Crypt gerir þér kleift að gera - svo þessar aðgerðir eru þegar byggt fyrir þig. Margir gleyma því, eða þeir gleyma að nota það. En ef ég lít upp Crypt PHP, crypt þegar skilar kjötkássa streng fyrir mig. Og sölt raun það mörgum sinnum og kjötkássa það mörgum sinnum. Þannig að við þurfum ekki að gera þetta. Svo er allt sem þú þarft að gera senda það inn crypt. Og það mun skapa mikla kjötkássa án þú þurfa að hafa áhyggjur salt eða eitthvað. Vegna þess að ef þú varst að salta það, hefur þú að muna hvað salti sem þú notaðir því ef ekki, getur þú ekki fá þinn lykilorð til baka án þess að salt sem þú notaðir. OK. Og einnig persónulega persónugreinanlegar upplýsingar. Svo almannatryggingar, greiðslukort - það er nokkuð augljóst. En stundum fólk gleyma því hvernig það verk er, hversu miklar upplýsingar þú reyndar þarf að finna einhvern mann? Einhver gerði rannsókn um þetta leið til baka. Og það var eins, ef þú ert með fullt nafn, getur þú ekki fundið einhver sem auðveldlega. En hvað ef þú ert með fullt nafn og dagsetning þeirra fæðingu? Er það nóg til að bera kennsl einhver sérstaklega? Hvað ef þú hefur nafn sitt og því götuheiti sem þeir lifa á? Er það nóg til að finna einhvern? Og það er þegar þeir spurning, hvað er persónulega persónugreinanlegar upplýsingar, og hvað ættir þú að hafa áhyggjur af ekki gefa burt? Ef þú gefur í burtu persónulega Þekkjast upplýsingar sem einhver gefur þér, þú gætir hugsanlega fá lögsótt. Og við ákveðið vil ekki. Svo þegar þú ert að setja vefsíðuna þína út, og þú hafa a raunverulega kaldur hönnun, vonandi þú gert ógnvekjandi lokaverkefni. Allir sem þú vilt svoleiðis til setja það þarna úti. Þú vilt tryggja að allt þú ert að taka frá notanda, ef það er persónulega persónugreinanlegar upplýsingar, þú vilja til að tryggja að þú ert að raunverulega varkár með það. Shell innspýting. OK. Skel innspýting gerir Viktor að fá aðgang að raunverulegur stjórn lína þín á vefþjóninum þínum. Og svo er hann fær um að keyra kóða að þú getur ekki stjórnað. Skulum taka dæmi um þetta falleg band hérna. Ef við förum inn í the website aftur, ég er að fara inn í kóða innspýting. Og hvað er þetta gerir - það er líka það sem við vorum horfa á áður. Við erum að láta notandann setja í hvaða hann vill, og það mun prenta út hvað sem þú vilt. Þannig að ég ætla að setja símtal. Hvað þetta gerir er - það mun byrja á því að concatenating. Svo það mun láta mig keyra hvað stjórn gangi viðkomandi áður og stjórn mín. Og ég er að keyra kerfi stjórn. Og þessar síðustu strengir eru - muna það sem ég talaði við ykkur um, en þú þarft að umrita það í vefslóð aðferð. Ef ég keyrt þetta núna - Ég skal sýna þér hérna - þú munt sjá að ég endaði upp keyra skipun. Þetta er í raun í raun miðlara að vefsíðan mín er í gangi á. Þannig að við viljum ekki að, því ég get keyrt - this framreiðslumaður er ekki mitt. Svo ég vil ekki að skipta sér upp hans systir, framreiðslumaður Marcus er. En þú getur keyrt fleiri skipanir sem eru hættulegar. Og hugsanlega gætir þú eytt skrár, fjarlægja framkvæmdarstjóra. Ég er að fjarlægja ákveðna möppu ef Ég vildi, en ég vil ekki að gera það að Marcus. Hann er ágætur strákur. Hann lét mig taka lán miðlara sinn. Þannig að ég ætla að láta hann burt á kaup einn. Svo það sem við viljum ekki að nota - við gerum ekki vilt nota eval eða kerfi. Eval eða kerfi gerir okkur kleift að gera þessi kerfi kalla. Eval þýðir meta. Kerfi þýðir það sem ég hljóp. Það er rekið eitthvað í kerfinu. En við getum útlaga þetta í PHP svo að við notum ekki þá. Og skrá hlaða. Ég ætlaði að gera ógnvekjandi hlutur með the skrá hlaða. En eins og ég sagði ykkur, minn skrá hlaða hlutur er ekki að virka. Ef ég væri að hlaða inn skrá núna - ef ég væri að hlaða inn skrá, og það er mynd - þú hefur hlaðið hlutur það er mynd. Það er allt í lagi. Ekkert gerist. En ef þú hefur hlaðið-skrá, Dæmi, og notandinn í raun skrárnar PHP skrá eða EXE skrá eða eitthvað svona, þá gætir þú hugsanlega hafa a vandamál. Þetta var að vinna áður. Því miður fyrir mig, það er ekki að virka lengur. Ef ég til dæmis hlaða þessari skrá, ég er ekki að fá leyfi til að senda inn skráin vegna þess að miðlara ekki vera minn. Svo er gaurinn virkilega klár. Þannig að við viljum ekki að - Ég ætla að sýna ykkur - OK, þessir ert sumir raunverulega kaldur verkfæri. Svo þessi - fara í - ef þið hafið Eldur - vonandi þú gerir. Það er tveir bæta við-ons sem kallast SQL Sprautið Ég og Cross-Site Script Me. Þeir opna eins lítið hlið bars á hlið. Og ef ég væri að fara að CS60 til dæmis - svo hvað það gerir er að það lítur fyrir öll eyðublöð sem - vonandi mun ég ekki fá í vandræðum fyrir þetta. En allt í lagi. Hér er pinna kerfi. Svo þegar ég byrja að leita að holur í kerfið, the fyrstur hlutur ég er opna upp þessa fallega litla tól á hlið. Og ég ætla að prófa eyðublöð með farartæki árás. Og svo hvað þetta gerir er það verður hægt opna upp fullt af vöfrum. Hér er fullt af vöfrum. Og það er að reyna hvert einasta samsetning kross-staður forskriftarþarfir að það hugsanlega er, ef þú sérð á hlið. Og það mun gefa mér niðurstöðu konar hvað svarið er. Standast allir. Vitanlega, fara þeir allir. Ég meina, þeir eru virkilega klár fólk þarna uppi. En ef ég væri að keyra - Ég hef átt sinnum áður þegar ég keyra þetta á nemenda lokaverkefnum. Ég keyrt einfaldlega SQL Sprautið mig með öll mismunandi árásir. Og það er að reyna að SQL sprauta þetta pinna miðlara. Svo ef við fletta niður, til dæmi, segir hann - þetta er gott ef það skilar. Svo það prófað nokkrar ákveðinna gilda. Og miðlara skilaði númer sem var neikvæð. Fjarlægja tímabundið. Þetta er gott. Það reynir öll þessi próf. Svo að þú gætir einfaldlega hlaupa - Ég vildi að ég gæti fundið heimasíðu raunveruleg fljótur sem myndi láta mig - kannski CS50 geyma. Vá, þetta er að fara að taka allt of langan tíma. Ég læt fyrsta próf ekki að klára rétt. Svo það er að kvarta. Svo að þetta eru þrír hlutir. Þessi verkfæri eru ókeypis. Þú getur sótt þá og keyra þá á vefsvæðið þitt, og það mun segja þér ef þú hafa kross-staður forskriftarþarfir ef þú ert SQL, ef þú hefur eitthvað af því um líkt. Ég er tegund af Messías upp. Hvað er mikilvægt - OK, svo aldrei treysta notandi. Whatever notandi inntak til þín, gera viss um að þú sótthreinsa það, þú að hreinsa það, þú stöðva fyrir rétta hluti, að það er að gefa þér hvað þú langar hann að gefa þér. Alltaf að vera uppfærð á hvað ramma að þú ert í raun að nota. Ef þú notar eitthvað eins ræsi - Ég veit að þú krakkar ert að fara að nota ræsi vegna þess að hann er að fara að fara yfir þetta fljótlega í bekknum - og Wordpress eða eitthvað svoleiðis, venjulega þetta gæti verið tölvusnápur. Og þá getur þú ekki einu sinni vita. Þú ert bara að keyra á vefsvæðið þitt. Og það er algerlega örugg. Og þú ferð niður. Þannig að ég ætla að veiða virkilega snemma. En ég vil þakka Pentest Labs. Ég ætla að sýna ykkur eitthvað heitir Pentest Labs. Ef þú krakkar eru í raun áhuga á hvaða öryggi er í raun, það er website gestur Pentest Labs ef þú krakkar fara að því núna. Ó, jæja, það er það ekki. Ég ætla bara að fara að keyra þetta svona. Google segir mér svarið. OK. Og það kennir nota þig - þannig að það segir, að læra vefur skarpskyggni prófa á réttan hátt. Það kennir þér - vonandi, þú ert siðferðilega manneskja. En það kennir þér hvernig þú getur litið á hvernig er hægt að fá inni vefsíður. Og ef þú læra hvernig þú getur fengið inni vefsíður, getur þú lært hvernig á að vernda sjálfur frá getting Inni vefsíður. Leyfðu mér að súmma inn því kannski þú krakkar eru ekki að leita á þennan rétt. Frá SQL innspýting að leggja, svo Raða um hvernig ég get fengið úr SQL inndælingar til að skel. Og þú sækja þessa raunverulegur vél. Og the raunverulegur vél kemur þegar með heimasíðu sem þú ert að fara að reyna það á. Þú sækir þennan PDF. Og það mun sýna þér línu fyrir línu hvað þú þarft að gera, það sem þú skoðar. Þetta er það sem árásarmaður raun er að fá inni á vefsíðu. Og sumt af þessu efni er flókið. Ég vildi að ég gæti farið yfir fleiri hluti með ykkur. En ég óttast að þú krakkar hafa í raun ekki - þetta er það sem ég fór yfir með þú krakkar, prófanir vefur fyrir skarpskyggni próf. Í raun ekki vita hvað SQL er og hvað - Málstofa Carl Jackson er ógnvekjandi eins og heilbrigður. Þú krakkar veist ekki svoleiðis hvað þetta er. En ef þú ferð á þessa vefsíðu, og þú sækja þessa námskeið og þessir PDFs, getur þú taka a líta á konar hvað á sviði öryggis raunverulega hjartarskinn í skarpskyggni próf, sjá hvernig þú getur Fá inni vefsíður og vernda sjálfur frá því. Þannig að ef ég geri frábær fljótur yfirlit, það verður að koma í veg kross-staður forskriftarþarfir. Þú vilt nota htmlspecialchars hverjum sinn sem notandi inntak eitthvað. Hindra SQL innspýting. Ef þú gerir það, þú ert nú þegar betur en Harvard var þegar þeir fengu brotið. Og ganga úr skugga um lykilorð eru ekki í látlaus texti. Gakktu úr skugga um að þú ekki bara ein leið kjötkássa þá heldur að þú notar crypt, PHP virka sem ég sýndi ykkur. Þannig ættir þú að vera góður. Einnig, ef vinir þínir láta þig, hlaupa SQL Sprautið mér á vefsíðum sínum. Hlaupa kross-staður forskriftarþarfir á vefsíðum sínum. Og þú munt sjá a einhver fjöldi af þessum vefsíðum hafa tonn af veikleika. Það er ótrúlegt hversu mikið fólk gleyma að sótthreinsa gagnagrunna þeirra eða til að gera viss hvað Inputting viðkomandi er ekki handrit kóða. OK. Ég endaði konar virkilega snemma. En ef einhver hefur einhverjar spurningar um eitthvað, getur þú skjóta mig spurningar. Já. Fara, fara. Áhorfendur: Ég vil bara að spyrja, getur þú útskýrt hvernig skrá hlaða nákvæmlega verk. Luciano Arango: Já. Svo láta mig sýna þér skránna hlaða raunverulegur fljótur. Svo skrá hlaða - vandamálið vitsmuni skrá senda núna er að - Ég ætla að opna kóðann Svo þú krakkar sjá kóðann á bak við tjöldin. Og það er að senda inn. Hér er númer fyrir skrá Upphlaðarann. Við erum að reyna að fara inn á þetta Listinn hérna. Og við erum að reyna að, þegar við inntak skrá, isset skrá - svo þegar það er skrá í skrám, þessi mynd, þá við að reyna að færa það hér. Við grípa skrá hérna. Aðferðin er POST, tegund, mynd eða skrá. Og við erum að senda þessa skrá. Og svo þegar við fáum það, svo þegar skrá hefur mynd, við erum að reyna að senda það í þessa skrá. Vandamálið er þessi the website er ekki láta mig fara í þessa möppu, vegna þess að það vill ekki að ég fari aftur. Það vill ekki að ég fari - Ég verð að fara - svo hér er hlaðið. Hér er myndir. Ég verð að fara alla leið aftur til hefst og setja það í þar og þá fara og setja það inn í möppuna. Þannig að ef ég var að keyra a umferðamiðstöð gluggi, og ég vildi til að færa skrá - [Inaudible] getur séð það. Ef ég vildi færa skrá, ég hef að setja skrá nafn og þá heill gangstígur Mig langar að senda það til. Og þá er miðlarinn ekki láta mig fara til baka. Og svo það er ekki að láta mig fá til að skrá. En venjulega - svo er það númer fyrir hlaða upp. Svo venjulega það mun gerast er að maður er ekki að stöðva ef minn skrá endar með. JPEG, þannig að ég myndi vilja til að athuga. Leyfðu mér að opna dæmi of raunverulegur fljótur. OK. Þessi manneskja rétt - svo dæmi tvö er að haka ef preg_match - hér er það aftur hér - að ganga úr skugga um að endar með PHP, sem er gott. Þetta er gott. En það er alvöru stór vandamálið við þetta. Þetta er gott. En ef ég væri að setja skrá sem heitir myfavoritepicture.php.jpeg, ég gat enn hugsanlega að losna við JPEG og hlaupa it.k að PHP er hættulegt. Þú vilt ekki að maður á að vera fær um til að keyra kóðann á vefsvæðið þitt. En þá. Jpeg lætur það fara framhjá. Hugmyndin er það sem þú vilt í raun að gera er ekki að taka skrár, A. En, OK, hvað þú vilt virkilega að gera er að ganga úr skugga um að þú lest yfir allan heiminn. Og það er ekkert. PHP í henni. Það er engin. PHP í heild skrá nafn. Áhorfendur: En þú gætir setja. JPEG á enda. Netþjónum hlaupa enn kóðann. Luciano Arango: Nei, það verður ekki hlaupa í upphafi. Þú þarft að fara til baka og reyna til að sjá hvort þú getur - Áhorfendur: Þannig að við verðum að - OK, bara annað sett sem felur - Luciano Arango: Já. Áhorfendur: OK. Luciano Arango: Já. OK. Aðrar spurningar? OK. Ég ætla að hafa þetta allt og raða af að reyna að sjá hvort þið getið - hinar eru svolítið meira flókið vegna þess að þeir þurfa mikið meiri þekkingu á SQL en bara upphafi þekkingu Vefur SQL er og hvað JavaScript er. En ég ætla að reyna að halda þetta upp, og vonandi þú krakkar vilja læra um þetta og reyna að taka gægjast á hvað þú getur gert og hversu mörg dæmi þú kemst í gegnum. Einhver hefur einhverjar aðrar spurningar um það? Fara á undan. Já, skjóta, skjóta. Já, fara fram í tímann. Fara á undan. Áhorfendur: OK. Svo heyrði ég um hvernig Magic Quotes eru ekki nógu öruggt. Luciano Arango: Hvað - Galdur vitna í? Áhorfendur: Já. Svo það bætir - svo þegar þú inntak eitthvað, bætir það alltaf vitna. Luciano Arango: Já. Já. OK. Áhorfendur: Og svo ég þó að unnið, en ég leitaði það upp. Og hann sagði að það er ekki gott. En ég er ekki viss hvers vegna. Luciano Arango: Já. Áhorfendur: Ekki nota Magic Quotes, því það er ekki öruggt. Luciano Arango: OK. Svo Magic Quotes er þegar þú setja SQL og það bætir nú þegar tilboð fyrir þig. Áhorfendur: Það bætir alltaf vitna um hvað þú setur inn Luciano Arango: Já. Þannig að vandamálið með það er að - Ég tek að líta á - Áhorfendur: Hvernig virkar það eignast SQL staðhæfing? Eða ég giska á það gæti verið eins vitna velja. Luciano Arango: Já, þú þarft góðar tilvitnanir fyrir SQL. Áhorfendur: Nei, en þjóninn gerir það fyrir þig. Luciano Arango: Þessar litlu vitna hérna, þessi litlu vitna? Áhorfendur: Já. Luciano Arango: Já. Vandamálið er að þú getur athugasemd út síðasta - OK, svo það sem ég get gert er að ég get comment út - þannig að við skulum kíkja á - láta mig opna Texti Breyta skrá. Leyfðu mér að breyta bara þetta hérna beint. OK. Getur þú krakkar sjá að skýrt? Hvað ég get gert er að ég get comment út og það síðasta. Þetta mun comment út það síðasta. Og svo ég setti hann hér, setja allt illgjarn efni hér. Svo er notandinn í raun inputting, ekki satt? Notandinn er ekki inputting hlutir, ekki satt? Þetta er það sem ég ætla að inntak sem sá að reyna að fá inni. Ég ætla að setja í - það er ein tilvitnun merkja. Það er bara hlykkjóttu fyrir mistök. Og þá hvað númerið er að fara að gera - Því miður, ég ætla að taka þetta út. Hvað númerið er að fara að gera er að það er að fara að bæta við fyrsta gæsalappa hér. Og það er að fara að bæta við síðasta Gæsalappir eins og heilbrigður. Og það er líka að fara að bæta við síðast, síðasta Gæsalappir. En ég er að tjá þessa tilvitnun markar út, svo þeir keyri ekki. Og ég er að klára þessa tilvitnun merkja hérna. Skilur þú? Ert þú tapað? Ég get comment síðasta tilvitnun árangur, og gæta að Fyrsta tilvitnun merkja. Áhorfendur: Og bara ljúka sá fyrsti. Luciano Arango: Já. Og bara að klára það fyrsta. Já, það er rétt. Það er það sem ég get gert. Já. Aðrar spurningar eins og þessi? Þetta er frábær spurning. Nei, já, kannski. Vonandi þú krakkar vilja svoleiðis gera meira vit þegar þú læra SQL og svoleidis. En vertu viss um að - halda þessum tækjum í horfa. Því miður, þessi verkfæri hérna. Þessi verkfæri eru frábær. Ef einhver hefur einhverjar spurningar, þú getur líka sent póst á mig. Þetta er eðlilegt netfangið mitt. Og þetta er vinna netfangið mitt, sem er þegar ég vinn á sjó. OK, takk. Takk, strákar. Þú ert góður til fara. Þú þarft ekki að vera hér. Ekki klappa. Það er undarlegt. OK, takk, krakkar.