Luciano Arango: OK, uşaqlar. My name Luciano Arango edir. Mən Adams House bir sophomore deyiləm. Və biz söhbət etmək olacaq web təhlükəsizlik fəal müdafiə. Mən İnformasiya İdarəsi üçün iş Dənizlərdə Təhlükəsizlik. Və yay ərzində, mən internatura Informasiya olan SeguraTec, xidmət təhlükəsizlik şirkəti Columbia Bank üçün. Mən öyrəndim harada ki, əsasən var Mən bu günə qədər öyrəndim nə. Və biz istəyirik ki, maddi bəzi Bu gün artıq getmək, biz yoxdur həqiqətən sinif danışdıq. Amma biz tezliklə olacaq. Bu SQL, JavaScript kimi olacaq. Və biz, həqiqətən, bu artıq getdi. Mən onun vasitəsilə uçuş sort bilər bəzi şeyləri bilmirəm bilər. Lakin tezliklə, onu öyrənmək lazımdır. Və bütün mənada etmək lazımdır. Həmçinin başqa bir şey - etik qalmaq. Siz öyrənmək ki, bəzi şeyləri, siz qeyri-etik yollarla istifadə edə bilər. Bu, sizin deyil, əgər mütləq cəhd edin. Mən mütləq uşaqlar həvəsləndirmək Öz server cəhd cəhd onların içərisində gedir. Əgər siz onları nüfuz edə bilər, əgər baxın, Əgər siz onları daxilində əldə edə bilərsiniz əgər. Amma hər kəsdən. Cops həqiqətən kimi zarafatlar və yoxdur bütün, biz burada bu qoydu. Biz ətrafında messing edilmişdir. Onlar, həqiqətən qəzəbli almaq. Belə ki, bu veb üzərində rəhbərlik. Mən burada açıldı. Bu veb və bu, nümunələri bir dəstə var. Nə olar ki, ilk nümunəsi sort bir çox daha asan olacaq bir mənada son misal çox ki, ilk nümunəsi tamamilə etibarsız edir. Və son bir sort nə bir deyil normal web təhlükəsizlik şəxs olardı. Amma siz hələ sort bilərsiniz ki, ətrafında almaq. Və biz bir diqqət olacaq və iki nümunələri bir və iki. OK. Nin cross-site scripting ilə başlamaq edək. JavaScript run müştərinin browser. Bu istifadə bir proqramlaşdırma dili müştərinin browser belə çalıştırmak üçün Siz web yeniləmə yoxdur və server geri gedin. Siz çalışan var. Məsələn, Facebook, siz yoxdur yeni statusu veb yeniden yenilikləri gəlmək. Bu yaratmaq üçün JavaScript istifadə edir bütün bu şeylər. Beləliklə, biz zərərli JavaScript yeritmək bilər web sites daxil. Və yol, biz bir link göndərmək kimsə, biz sort ilə göndərmək bilər biz istəyirik ki, kodu bəzi. Davamlı və qeyri-davamlı var JavaScript - davamlı və qeyri-davamlı cross-site scripting, demək. Və fərq israrlı olan olacaq JavaScript edir saytında saxlanılır. Və qeyri-davamlı JavaScript olacaq ki, həqiqətən, yalnız bir dəfə baş verəcək. Belə bir misal baxaq real sürətli. OK. Belə ki, bu veb sadə, burada heç bir şey olur. Və biz cəhd olacaq bəzi JavaScript daxil edin. Beləliklə, biz JavaScript yazmağa başlayın yolu biz başlayan script ilə başlayın. Və biz script ilə bağlayın. Biz sadəcə bir mesaj qoymaq olacaq - Mən sizə göstərmək lazımdır - alert. Alert bir funksiyası olduğunu JavaScript bir şey keçirmək üçün istifadə edir. Belə ki, real sürətli cəhd edək. Mən getmək üçün alert salam gedirəm. Yaxşı, mən qoymaq unuttum - OK. Belə ki, sadə. Biz veb JavaScript qoymaq, və bu qədər gəldi. Və bu növ yalnız baş bizim saytda, sağ? Bu deyil kimi belə görünür bir problem, sağ? Mən demək, necə istifadə edə bilər Bu pis niyetle? Hakerlər nə qədər ki, yol Bu, həqiqətən sadədir. Onlar onu qapmaq olacaq. Onlar sizin üçün bu linki göndərə bilərsiniz. İndi siz bu link göndərmək lazımdır əgər, və onu açmaq, bu olacaq deyərək, hello, demək ki, mənim veb salam söyləyirəm. Və mən bir şey demək olsaydı az asan, mən qoparmaq əgər JavaScript funksiyası I növ artıq yazdı - Siz baxmaq əgər, mən gedəcəyəm Mən bunu yazdı əvvəl artıq. Beləliklə, biz bir zaman aşımı müəyyən olacaq. Biz gözləmək olacaq bir neçə saniyə. Əgər Əslində, biz gözləmək olacaq Mən, beş saniyə səhv deyiləm. Bu ms gedir. Və sonra biz nə olacaq, biz istəyirik edir bildirmek üçün gedən giriş da geri daxil etmək başa çatmışdır Və biz yerini dəyişmək olacaq bir yere. Mən kimsə bu veb göndərmək əgər, onlar olacaq sakit, ətrafında gəzən. Heç bir şey baş verir. Və beş saniyə, gedir demək, giriş başa çatmışdır. Da geri daxil edin Onlar OK basın sonra, mən gedirəm Başqa bir web onları almaq. Ehtimal ki, veb olacaq saytına oxşar ola ki, Onlar əvvəl idi. Onlar daxil olacaq onların mənim web yerinə daxil etimadnaməsini onların veb. Və mən, onlara göndərə bilərsiniz bu link e-poçt. Mən oh, burada bir link var, deyirlər. Bu, misal üçün, bir bank deyil. Mən burada, demək bu link getmək. Onlar göndərmək Və bir dəfə, onlar ətrafında gəzən olacaq. Mən 15 saniyə, 20 saniyə gözləmək olar, və sonra geri daxil edin pop geri imzalamaq. Siz uşaqlar ilə cəhd edə bilərsiniz daha çox şeylər. Bu çətin uşaqlar, çünki JavaScript görüldü, belə ki yoxdur bəzi funksiyaları bilmirəm. Amma nə üçün bütün bir başlanğıc ssenari ilə, script ilə başa. Və bir şey qoymaq bilər ortada. Alert üçün gözləmək, bir funksiyası var. Window yer götürür yeni bir yeri. Amma çox daha çox edə bilərsiniz. Və belə fikir ki, biz çıxarmaq. Mən məsələn iki getmək və mən əgər bu kodu qoymaq, bu işləmək niyyətində deyil. Belə ki, çünki hər şeyi çap edir nə Bu veb ilk Mən burada bir şey qoymaq əgər etmir, Bu sağ burada çap edəcəyik. Belə ki, bir şey çap deyil. Bu, misal həqiqətən yoxlanılması olunur script var görmek üçün. Belə ki, Bəli, davam. Mənə soruş. Auditoriya: göndərilməsi deyil bir almaq və ya sorğu göndərin? Luciano Arango: Bəli. onlar bir get sorğu göndərməklə. Auditoriya: Bu nədir? Luciano Arango: Bəli. Həmçinin brauzerlər post sorğu istifadə edin. Amma get sorğu göstərməyə çalışıram biz nə edə bilərsiniz, belə ki, həqiqətən gedir. Və biz bu kodu baxsaq - belə ki, artıq iş deyil. Və biz bu kodu bir nəzər, Məsələn iki olacaq. Bu şəxs nə, şəxs Bu brauzer məsul - OK, açmaq - sözü script əvəz edir. Bu PHP, siz uşaqlar bilər hələ bir az gördük. O, yalnız əvəz oldu adı ilə söz script. Belə ki, lakin, Mən irəli getmək əgər və yalnız qoymaq - Mən yenə mənim kodu qamarlamaq və gedirəm əgər Bu, sadəcə bir az dəyişdirmək üçün. Əvəzində script, mən gedirəm bir paytaxt R. Və script üçün biz bu kodu işləri görmək olacaq. Belə ki, onu çap etmədi bir yaxşı əlamətidir. Və inşallah daha iki saniyə, onu pop üçün olacaq. Sizin giriş başa çatmışdır. OK. Yəni bütün doğru. Belə ki, script yoxlanılması bilər mütləq iş deyil. Şəxs - bu da script böyük kontrol edə bilərsiniz, script kiçik küç halda onlar eyni etdiyiniz əmin olun müqayisə. Amma hacker hələ nə növ edə bilərsiniz biz köçürülüb zaman biz Vigenere etdi geri bir neçə simvol, irəli hərəkət. Və bu script qoymaq üçün necə anlamaq olar geri yeritmək bilər, belə ki, orada ki, script. Beləliklə, nə siz istifadə etmək istədiyiniz htmlspecialchars edir Sizin veb qorumaq. Və nə bu edir Siz qoymaq nə - məsələn, kotirovkaların və ya bu - böyük və ya daha az bir şey ilə əvəz olunur olmayacaq - Mənə burada zoom imkan - faktiki işareti. O xüsusi HTML əvəz edəcək biz olduğunuzda biz görmək lazımdır ki, simvol söhbət - oh, bu məni geri almaq niyyətindədir - burada bu simvol. Bu, demek ki, bir şey gəlir. HTML ki, başlayan bracket üçün bizə deyir ki, bir şey Əlaqədar HTML gəlir. Və biz xilas etmək istəyirik. Biz daxil HTML qoymaq istəmirəm website.k Biz istifadəçi olmaq istəmirəm öz saytında bir şey qoymaq edə kimi, onların veb təsir edə bilər script və ya HTML və ya kimi bir şey. Nə vacib deyil ki, siz istifadəçi daxil sanitize. Belə ki, istifadəçilər input çox şeyi bilər. O, giriş cəhd məhsullarının bir dəstə bilər hələ brauzerinizin bezemek Bu script kodu çalışan. Nə istəyirəm yalnız baxmaq deyil script üçün, lakin hər şey üçün baxmaq ki, zərərli ola bilər. Və htmlspecialchars edəcəyik sizin üçün, belə ki, yoxdur bu barədə narahat. Amma özünüz üçün cəhd etməyin sort öz kodu ilə. Hər kəs XSS aydındır? OK. SQL injection gedək. Belə ki, SQL injection yəqin ki, bir nömrəli açığı müxtəlif web. Mən yaxşı bir nümunə demək - Mən yalnız uzaq tədqiq edilmişdir Bu şey üçün. Mən bu zəhmli məqalə, aşkar yerləşir Mən Harvard pozulub ki, gördüm, hücumu olub. Mən, yaxşı, merak Onlar nə olardı? Harvard, ən zəhmli var ən heç universitet təmin edir. Sağ? Yaxşı, server pozulması üçün, hakerlər istifadə SQL injection adlı texnika. Belə ki, bu gün əsasında bir gün olur. İnsanlar hesab etmək unutmaq SQL inyeksiya üçün. Harvard yoxdur. Mən, Princeton, burada deyir ki, Stanford, Cornell. Belə ki, necə biz - bu SQL nədir bütün bu cəlb edir ki injection insanlar aşağı? OK. Belə ki, SQL bir proqramlaşdırma dilidir ki, biz verilənlər bazası daxil olmaq üçün istifadə edin. Biz nə biz seçin edir - belə ki, nə bu indi oxuyur seçin edir Cədvəldən hər şey. SQL, bu verilənlər bazası daxil dəyişir məlumat tam masalar var. Belə ki, istifadəçilər hər şeyi seçin adı adı yerləşir. Sağ? Kifayət qədər sadə. SQL injection ideyası ki, biz bəzi zərərli kodu daxil təqdirdə bir şey çalışan server bezemek nə çox müxtəlif ilk çalışan edilmişdir. Belə ki, istifadəçi adı üçün deyək, biz qoymaq və ya 1 1 bərabərdir. Beləliklə, biz qoymaq və ya 1 1 bərabərdir. İndi oxuyacağınız yol seçin olacaq users, hər şey-dən users - Bu hər şey - adı adı, lakin burada istifadəçi adı və ya 1 1 bərabərdir. Belə ki, adı heç bir şey və ya 1 1 bərabərdir. 1 1 həmişə doğrudur bərabərdir. Belə ki, bu həmişə məlumat qayıdacaqlar istifadəçilər. OK. Biz var ehtiyac yoxdur doğru adı. Biz yalnız biz istəyirik ki, bir şey ola bilər, və bu məlumat qayıdacaqlar biz lazımdır. Başqa bir misal baxaq. Biz istifadəçi hər şeyi seçin varsa, adı DROP TABLE users olduğu - belə ki, nə düşünürsünüz bu iradə nə mən istifadəçi adı qoymaq əgər DROP TABLE istifadəçilər? Hər kəs bir fikir var? Bəli. Auditoriya: Bu demək olacaq bütün masalar kötük. Luciano Arango: Bu bizə olacaq web hər şeyi atmaq, bazasında hər şey. Və nə insanlar üçün istifadə - belə Mən sizə uşaqlar göstərmək üçün gedirəm. Mən masalar düşmə aradan Mən sizi istəmir, çünki uşaqlar mənim masalar düşməsi. Bu bir nəzər salaq. Belə ki, bu sadəcə məlumat çıxarmaz müəyyən bir şəxs üçün. Bu əgər Belə ki, necə biz bilirik SQL injection təsirləndi. Biz real sürətli yoxlamaq olacaq biz bir şey qoymaq bilər - görüntülərini kodu surəti imkan verir. Mən ikinci artıq getmək üçün gedirəm. Mən kök qoymaq gedirəm və 1 1 bərabərdir. Bu burada, bu faiz işarəsi 23 - həqiqətən nə, əgər mən sağ burada baxmaq - Əgər HTML, ədəd alır yolu Mən bir məkanda qoymaq zaman nəzər burada - I yer bir şey olsaydı burada, bir faiz 2 dəyişir. Uşaqlar burada bu görürsünüz Mən bir məkanda qoymaq zaman? Bu işləri yolu ki, yalnız bilərsiniz edir HTML vasitəsilə ASCII dəyərlər göndərin. Belə ki, məsələn, əvəz yüzdə 20 ilə bir məkan. Bilmirəm əgər uşaqlar əvvəl görmüşəm. Bu faiz 23 ilə bir hashtag əvəz edir. Biz sonunda və ya bir hashtag lazımdır Şərhdə biz deyə bilərik ki, şərh unutmayın bazası sonunda bu son nöqtəli vergül. Biz bu barədə düşünmək istəyirəm. Biz yalnız hər şeyi run etmək istəyirəm biz əvvəlcədən var ki, ki, şərh. Bunun bir nəzər salaq. Mən yanlış bir şey qoymaq idi əgər - Məsələn üçün deyək, I 2 bərabər qoymaq 1, mənə bir şey vermir. Mən 1 qoymaq zaman 1 bərabərdir və bu, yoxdur bir şey geri, bu mənə deyir ki, Bu həssas bir SQL injection. Mən indi bilirəm ki, nə Bu sonra qoymaq - və məsələn, Masaların DROP və ya kimi bir şey mütləq işləyəcək. Mən SQL injection həssas olduğunu bilirik Mən bilirəm ki, çünki başlıq altında, bu imkan var Mənə 1 1 şey bərabərdir yoxdur. OK? Və biz bu digər olanları baxsaq, sayı iki və sayı üç, bu bir az daha nə və altında yoxlanılması bu nə başlıq. Belə ki, hər kəs açılan imkan hələ bir şey və ya cəhd? Sizlərin sort hələ SQL almaq mı? Mən bilirəm çünki uşaqlar yoxdur hələ görməmişik, belə ki, bu cür var Siz uşaqlar üçün çaşdırıcı. Bir nəzər salaq. Belə ki, SQLI qarşısını almaq üçün yolu nədir? OK. Belə ki, bu həqiqətən vacibdir siz, çünki uşaqlar mütləq qarşısını almaq istəyirəm bu web. Əgər, bütün dostlara gedir onlar bütün açılan zaman lağ etmək masalar. Belə ki, fikir SQL təmir ki, müəyyən bir şəkildə, halbuki siz uyğun nə ilə istifadəçi giriş müəyyən bir string. Belə ki, bu işləri yolu deyil bazası hazırlayır. Siz adı, rəng, və kalori seçin bir verilənlər bazası adlı meyvə. Və sonra kalori, az olduğu və biz bir sual işarəsi qoymaq biz daxil olacaq deyərək ikinci bir şey. Və rəng bərabərdir və biz bir sual qoymaq mark biz olacaq deyərək Giriş ikinci bir şey də. OK? Və sonra biz qoyaraq, icra 150 və qırmızı. Və bu etmək üçün kontrol əmin bu iki ki - Bu array kontrol ki, bu iki bir tam və bu bir simli olduğunu. Sonra getmək və biz almaq bütün, biz qırmızı qoyun. Yəni biz bütün almaq deməkdir. Bu biz, həqiqətən, SQL icra deməkdir bəyanat və qırmızı onu geri qoymaq. Burada biz eyni, lakin biz sarı üçün eyni. Və biz bütün almaq. Və bu şəkildə, biz istifadəçi qarşısını almaq daxil bir şey edə olan ki, biz müəyyən nə, bir simli deyil və ya tam, misal üçün. Mən əvvəllər söhbət başqaları əsaslanaraq. Uşaqlar üçün layihə başlamaq zaman, siz ən mütləq istifadə etmək olacaq bootstrap və ya oxşar bir şey. Sizlərin heç Wordpress istifadə? Yəqin ki, siz uşaqlar istifadə Wordpress çox güman ki,. Belə ki, istifadə ilə problem digər insanların şeyi - Mən yalnız Google real İSTƏDİKLƏRİMƏ gedirəm Wordpress açığı. İndi bu qoparmaq varsa - Mən sanki iki ikinci Google etdi. Biz Wordpress bilərsiniz - Bu '12 Sentyabrın kimi aid edilir. 26 yenilənir. Wordpress default konfiqurasiya 3.6 Bu qarşısını almaq deyil əvvəl müəyyən yüklenenler olan qüdrəti üçün daha asan cross-site scripting hücumlarını. Belə ki, tez hekayə, bir dəfə biz iş ilə - mən bir iş, yayda idi staj. Və biz növ ilə iş böyük bir kredit kartı şirkəti kimi. Onlar deyilən bir şey etibar - Sizlərin heç oynamışdır əgər mən bilmirəm Joomla adlı məhsul ilə. Joomla üçün istifadə olunur ki, bir məhsul nəzarət - növ oxşar Web yaratmaq üçün istifadə Wordpress. Belə ki, onlar öz veb idi Joomla iş. Bu, həqiqətən bir kredit kartı Kolumbiya şirkət. Mən sizə almaq lazımdır onların veb real sürətli. Belə ki, onlar Joomla istifadə. Onlar Joomla updated deyildi son əlavə. Və belə ki, biz nəzər alaraq zaman onların kodu, biz, həqiqətən bacardıq kodlarla daxilində getmək və oğurlamaq bütün onlar ki, kredit kartı məlumat, bütün kredit kartı nömrələri, adları, ünvanları. Və bu yalnız idi - və onların kodu mükəmməl gözəl idi. Onlar böyük kodu idi. Bu, bütün təhlükəsizlik idi. Onlar bütün verilənlər bazası yoxlanılır. Onlar cross-site əmin etdi scripting gözəl idi. Lakin onlar deyil ki, bir şey istifadə yenilənir ki, təhlükəsiz deyildi. Və onları səbəb - belə ki, uşaqlar mütləq digər istifadə edir xalq kodu, digər insanların çərçivələr Sizin veb qurmaq. Onlar təhlükəsiz etdiyiniz əmin olun, çünki bəzən ki, biri deyil bir səhv edir. Amma başqasının səhv edir, və sonra ona görə ki, aşağı düşür. Parollar və PII. Belə ki, parol. OK. Parol nəzər salaq real sürətli. OK. Mənə verərdiniz ki, hər kəs təhlükəsiz istifadə edir - Mən burada hər kəs ümid edirəm təhlükəsiz parol istifadə edir. Mən yalnız imkan edirəm ki, bir fərziyyə kimi. Belə ki, uşaqlar mütləq gedir web saytları üçün parol saxlamaq. Siz kimi bir şey etmək olacaq kimi bir giriş və ya bir şey. Nə vacibdir saxlamaq üçün edir düz mətn parol. Bu son dərəcə əhəmiyyətli. Siz saxlamaq istəmirəm düz mətn parol. Və mütləq həqiqətən istəmirəm bir yol hash onu saxlamaq üçün. Belə ki, nə bir yol hash ki zaman Bu qoymaq zaman, bir söz yaratmaq bir hash funksiyası daxil söz, o, sirli bir növ geri yaratmaq mesaj və ya düymələri sirli set. Mən sizə bir misal göstərmək lazımdır. Mən söz password1 hash gedirəm. Belə ki, MD5 Hash mənə qayıtmaq üçün gedir qəribə bəzi məlumatlar sort. Bu problem ki, insanlar orada web sites getmək istəyirəm var artıq sort fiqurlu bütün md5 hashes. Onlar oturdu olunur nə onların kompüter və onlar hər hashed orada tək mümkün söz qədər Onlar növ bu nə var. Mən bu qədər baxmaq olsaydı - Mən yalnız bu hash tutdu. Mən bu hash almaq - Mən bir web daxil, və mən tapmaq əgər Bu hash Mən almaq çünki məlumat bazaları, və Mən onu axtarmaq, kimsə artıq mənim üçün bunu anladım. Bəli. Belə ki, insanlar oturdu və nə md5 Siz qoymaq ki, hash, onlar olacaq sizə geri şey ki, bir söz. Mən kimi, başqa bir söz hash varsa - Mən bilmirəm - trees2. Mən məyus etmək istəmirəm Google axtarışları ilə. Orada, trees2 edir. Belə ki, web sites bir çox hələ md5 hash istifadə edin. Onlar oh, o, təhlükəsiz, demək. Biz düz mətn saxlanılması deyilik. Biz bu md5 hash var. Mən nə üçün bütün yalnız Sayı google. Mən hətta özümü hesablamaq yoxdur. Mən yalnız Google bilər, və kimsə artıq mənim üçün bunu. Burada onlardan bir dəstə var. Burada parol bir dəstə var. Belə ki, mütləq md5 hash istifadə etməyin, çünki bütün bunu Google edir. Beləliklə, nə siz əvəzinə istifadə etmək istəyirsən? OK. Tuzlama adlı bir şey. Belə ki, nə tuzlama edir - biz zaman uşaqlar xatırlayırsınız təsadüfi söhbət - Mən bunu nə pset əmin deyiləm - orada pset və ya dörd idi? Biz tapmaq söhbət ot tayası ildə iynə. Və pset, belə ola bilər ki, həqiqətən nə təsadüfi anlamaq kimsə artıq qaçıb, çünki yaradır təsadüfi bir milyon dəfə və yalnız sort onlar yaratmaq nə formalaşır. Nə istəyirəm giriş qoydu. Belə ki, sort edir nə tuzlama var. Onlar artıq tuzlama nə fiqurlu hər bir iş üçün qaytarır. Belə ki, nə tuzlama yoxdur edir Bir duz qoyulur. Siz müəyyən bir söz qoydu. Və olaraq söz hash edəcək Burada qoymaq nə. Mən bu ilə parol bir hash əgər cümlə, bu hash olacaq Mən password1 hash fərqli əgər fərqli bir cümlə ilə. Bu növ haradasa verir başlamaq üçün hashing üçün başlamaq. Belə ki, siz hesablamaq üçün çox çətindir, lakin hələ də, xüsusilə, onu hesablamaq olar Bir pis duz istifadə edin. İnsanlar onsuz da həyata fiqurlu var ümumi duzları və fiqurlu bu ki, nə. Random duzları çox yaxşıdır, lakin ən yaxşı yolu istifadə etməkdir crypt deyilən bir şey. Və nə crypt sizə imkan verir belə ki, bu funksiyaları - yoxdur artıq sizin üçün inşa edilmişdir. Bir çox insanlar ki, unutmaq, və ya onlar istifadə unutmayın. Amma crypt PHP, crypt axtarmaq, artıq mənim üçün bir hash string qaytarır. Və həqiqətən bir neçə dəfə duzları və bir neçə dəfə hashes. Beləliklə, biz bu yoxdur. Beləliklə, siz nə üçün bütün crypt onu göndərmək. Və bu olmadan böyük hash yaratmaq siz duz narahat olan və ya bir şey. Siz duz bu olsaydı, çünki Siz nə üçün istifadə duz yadda çünki, siz ala bilərsiniz geri olmadan parol istifadə etdiyiniz duz. OK. Həmçinin şəxsi identifikasiya məlumat. Belə ki, sosial təminat, kredit kartı - ki, olduqca aydın deyil. Amma bəzən insanlar yol unutmaq bu işləri siz nə qədər məlumat, həqiqətən bəzi bir şəxs tapmaq lazımdır? Biri haqqında bir iş etdi bu bir yol geri. Və bu varsa, kimi idi tam adı, tapa bilməz asanlıqla kimsə. Amma bir tam adını nə varsa və Dəğum onların tarixi? Müəyyən etmək üçün kifayət qədər ki, xüsusi kimsə? Nə onların adı və varsa Onlar yaşayır ünvanı? Ki, kimsə tapmaq üçün kifayət qədər mi? Onlar sual zaman ki, nə var, şəxsi identifikasiya informasiya və Siz haqqında nə narahat etməlidir üz verən deyil? Siz şəxsi identifikasiya versəm kimsə sizə verir ki, məlumat, Siz potensial iddia almaq bilər. Və biz mütləq ki, istəmirəm. Belə ki, sizin veb qoyulması olduğunuz zaman həyata, və siz həqiqətən sərin var dizayn, inşallah etdi zəhmli final layihə. Sort istədiyiniz hər hansı bir onu qoymaq. Siz əmin etmək istəyirəm nə bu əgər, istifadəçi alaraq edirik şəxsi identifikasiya məlumatı, siz həqiqətən olan olduğunuz etmək istəyirəm ilə ehtiyatlı. Shell injection. OK. Shell injection üçün Giriş verir faktiki command line əldə Sizin server. Və o kodu run edə bilər siz nəzarət edə bilər. Bu nümunə edək burada gözəl string. Biz yenə veb getmək varsa, mən deyiləm kodu injection getmək üçün gedir. Belə ki, bu nə edir - biz nə də var əvvəl baxaraq. Biz nə qoymaq istifadəçi imkan etdiyiniz o istəyir və bu çap edəcək istədiyiniz nə. Mən zəng qoymaq üçün gedirəm. Bu nə edir - Bu concatenating başlayacaq. Belə ki, mənə run imkan verir nə şəxsin çalışan komanda əvvəl və command. Mən bir sistem komanda çalışan alıram. Və bu son strings var - xatırlayıram nə haqqında uşaqlar söhbət, Əgər kodlar var, halbuki bir URL metodu. Mən indi bu run əgər - Mən burada sizə göstərmək lazımdır - Mən başa çatdı ki, görürsünüz bir komanda çalışır. Bu əslində faktiki server edir mənim veb çalışan. Belə ki, istəmirəm, Mən çalıştırabilirsiniz çünki - Bu server mina deyil. Mən mess up istəmirəm onun bacısı, Marcus server. Amma daha çox əmrləri çalıştırabilirsiniz təhlükəli olan. Və potensial, siz silmək bilər faylları, rehberler çıxarın. Mən müəyyən bir kataloq əgər kaldırabilirsiniz Mən istədim, amma mən istəmirəm Marcus bunu. O gözəl oğlan var. O, mənə onun server borc imkan. Mən ona imkan gedirəm yaxşı bir off. Belə ki, nə biz istifadə etmək istəmirik - biz deyil Eval və ya sistem istifadə etmək istəyirik. Eval və ya sistem bizə imkan verir Bu sistem zəng etmək. Eval vasitələri qiymətləndirmək. System qaçdım nə deməkdir. Bu sistemdə bir şey run edir. Amma biz bu şeyi qaçaq bilər PHP biz onları istifadə etməyin ki. Və fayl upload. Mən zəhmli edəcəyik fayl yükləmə ilə bir şey. Amma kimi mən, mənim fayl sizə uşaqlar bildirib upload şey iş deyil. İndi bir fayl yüklemek üçün idi əgər - Mən bir fayl yüklemek üçün idi, əgər və bir şəkil var - Əgər upload şey var ki, bir şəkil var. Ki, gözəl. Heç bir şey olur. Amma bir upload fayl üçün varsa Məsələn, və istifadəçi həqiqətən yüklenenler bir PHP fayl və ya bir exe fayl və ya bir şey kimi, sonra potensial bilər bir problem var. Bu əvvəl çalışırdı. Təəssüf ki, mənim üçün, bu artıq iş deyil. Mən, məsələn, bu faylı Əgər, mən yüklemek üçün icazə almaq deyil server səbəbiylə fayl mina olmayan. Belə ki, oğlan həqiqətən ağıllı deyil. Beləliklə, biz istəmirik - Mən sizə uşaqlar göstərmək üçün gedirəm - OK, bu, bəzi həqiqətən sərin alətlər var. Belə ki, bu - daxil - Siz uşaqlar Firefox varsa - inşallah nə. SQL Inject adlı iki eklentiler var Me və Cross-Site Script Me. Onlar az yan açmaq tərəfində bar. Mən getmək idi əgər Məsələn CS60 - buna nə görünür edir bütün formaları üçün - inşallah, mən almaq deyil Bu problem. Amma OK. Burada pin sistemi var. Mən deşik axtarır başlattığınızda sistem, mən nə ilk şey Bu gözəl az açmaq tərəfində vasitədir. Mən test üçün gedirəm avtomatik hücumları ilə. Və nə bu yavaş-yavaş olacaq brauzerlər bir dəstə açmaq. Burada browser bir dəstə var. Və hər bir birləşməsi çalışır cross-site scripting orada bəlkə, əgər ki, Siz tərəfdən görürük. Və mənə bir nəticə verəcək cavab nə sort. Bütün keçir. Aydındır ki, onlar bütün keçir. Mən demək, onlar həqiqətən ağıllı olduğunuzu up orada insanlar. Amma əgər çalıştırmak üçün - Mən bu çalıştırdığınızda əvvəl dəfə yaşadım Şagirdlərin son layihələr üzərində. Mən sadəcə Yadda yeritmək SQL çalıştırmak bütün müxtəlif hücumlar. Və SQL inyeksiya üçün çalışırıq Bu pin server. Biz aşağı diyirləyin əgər, Belə ki, Məsələn, o deyir - qaytarır əgər bu yaxşıdır. Belə ki, bəzi müəyyən dəyərlər test. Və server geri qaytarılan kodu mənfi idi. Müvəqqəti çıxarın. Bu, yaxşı haldır. Bu, bütün bu testlər çalışır. Belə ki, sadəcə run bilər - Mən bir veb real tapmaq isterdim sürətli ki, mənə bildirin olardı - bəlkə CS50 mağaza. Wow, bu gedir yol çox uzun. Mən imkan lazımdır ilk test sağ bitirmək deyil. Belə ki, şikayətçi oldu. Belə ki, bu üç şey. Bu alətlər pulsuz. Siz onları yükləyə və onlara çalıştırabilirsiniz Sizin veb, və sizə xəbər verəcəkdir əgər Siz cross-site scripting var, Əgər varsa, SQL varsa kimi bir şey. I növ up messing alıram. Nə vacibdir - OK, belə ki, istifadəçi etibar heç vaxt. Sizə nə olursa olsun istifadəçi giriş etmək Siz onu sanitize, onu təmizləmək, Siz sağ şeyi kontrol, Bu sizə nə verilməsi ki, ona sizə vermək istəyirəm. Həmişə yenilənir nə çərçivələr Siz, həqiqətən, istifadə etdiyiniz. - Siz bootstrap kimi bir şey istifadə edin Mən sizə uşaqlar istifadə edir bilirik o getmək olacaq, çünki bootstrap bu tezliklə sinif - və Wordpress və ya kimi bir şey, adətən bu hücumu edilə bilər. Və sonra hətta bilmirəm. Siz yalnız veb çalışan edirik. Və tamamilə təhlükəsiz deyil. Və aşağı gedin. Mən, həqiqətən, erkən balıqçılıq edirəm. Amma Pentest Labs təşəkkür etmək istəyirəm. Mən sizə uşaqlar bir şey göstərmək üçün gedirəm Pentest Labs çağırıb. Siz uşaqlar həqiqətən maraqlı əgər həqiqətən, bir var nə təhlükəsizlik Pentest Labs əgər adlı veb Siz uşaqlar indi gedin. Oh, yaxşı ki, bu deyil. Mən yalnız bu kimi çalıştırmak üçün gedirəm. Google mənə cavab verir. OK. Və siz istifadə öyrədir - belə ki, deyir, web nüfuz öyrənmək doğru yol test. Bu sizə öyrədir - ümid edirəm ki, siz etik şəxs istəyirik. Ancaq baxmaq olar necə öyrədir web daxilində əldə edə bilərsiniz necə. Və öyrənmək əgər daxilində əldə edə bilərsiniz necə web saytları, siz öyrənə bilərsiniz necə əldə özünüzü qorumaq daxili saytları. Mənə zoom imkan bəlkə siz uşaqlar, çünki Bu hüququn baxaraq deyil. SQL injection belə, shell sort I SQL-dan əldə edə bilərsiniz necə shell injection. Və bu virtual maşın download. Və virtual maşın artıq gəlir siz ki, saytına bu cəhd gedir. Bu PDF download. Və bu xətti ilə siz line göstərəcək nə Əgər yoxlamaq nə, var. Bu nə bir təcavüzkar əslində bir web daxilində almaq üçün edir. Bu məhsulları bir mürəkkəbdir. Mən daha artıq getmək isterdim Siz uşaqlar ilə şeyi. Amma narahat edən uşaqlar həqiqətən yoxdur - bu mən artıq getdi nə Siz uşaqlar, web testlər penetrasiya test üçün. Həqiqətən bilmirəm nə SQL və nə - Carl Jacksonun seminar eləcə də zəhmli deyil. Siz uşaqlar sort bilmirəm bu nə. Amma əgər siz bu web getmək, və Bu Dərsliklər və bu download PDF, siz növ nəzər edə bilərsiniz təhlükəsizlik sahəsi həqiqətən nə penetrasiya test, necə siz daxili web almaq və qorumaq özünüzü ondan. Mən bir super sürətli bir genel bakış etmək əgər, Bu cross-site scripting qarşısını almaq olacaq. Siz htmlspecialchars hər istifadə etmək istədiyiniz istifadəçi giriş şey zaman. SQL injection qarşısını alır. Siz bunu əgər, siz artıq edirik Harvard daha off daha yaxşı onlar pozmuş oldum. Və parol əmin olun düz mətn deyil. Siz bunu bir yol hash yalnız etmək onlara ancaq crypt istifadə ki, PHP Mən sizə uşaqlar göstərdi ki, funksiyası. Bu yolla, siz yaxşı olmalıdır. Sizin dost bildirin Həmçinin, əgər siz run Öz saytlarında Yadda yeritmək SQL. Run cross-site scripting öz saytlarında. Və bu web sites bir çox görəcəksiniz zəifliklərin bir ton var. Bu çox insanlar unutmaq necə inanılmaz var öz verilənlər bazası sanitize və ya etmək əmin nə şəxsin giren script kod deyil. OK. I növ həqiqətən erkən sona çatdı. Amma hər kəs haqqında hər hansı bir sualınız varsa bir şey, siz məni bir sual vurmaq bilər. Bəli. Getmək, Go. Auditoriya: yalnız soruşmaq istəyirəm, Siz fayl necə izah edə bilər dəqiq işləri bərpa edin. Luciano Arango: Bəli. Mənə siz faylı göstərmək bildirin real sürətli bərpa edin. Belə ki, fayl upload - Bu problem fayl upload işləyir indi ki, - Mən sizə uşaqlar kodu açmaq üçün gedirəm pərdə arxasında kodu görürük. Və bu yüklemek olunur. Burada fayl uploader üçün bir kodu var. Biz bu getmək üçün çalışdığınız burada directory. Və biz, çalışdığınız biz input dəfə fayl, isset fayl - belə bir var sonra, faylları, image fayl biz burada hərəkət etmək üçün cəhd. Biz burada fayl grab. Bu üsul POST, növü, image, fayl. Və biz bu fayl göndərilməsi edirik. Və sonra biz onu almaq bir dəfə, belə ki, bir dəfə fayl bir nüfuza malikdir, biz bunu göndərmək üçün çalışdığınız bu dizine. Bu problem veb deyil ki , Bu kataloq getmək imkan mənə geri getmək istəmir, çünki. Mənə getmək istəmir - Mən getmək üçün var - belə ki, burada yüklemek edir. Burada images var. Mən bütün yol geri getmək üçün var sonra başlayan və orada qoymaq və getmək və kataloq koydu. Mən terminal pəncərə çalışan əgər, və mən bir fayl hərəkət etmək istədi - [Işitilemez] bunu görürük. Mən bir fayl hərəkət etmək istəyirdi, mən sonra fayl adı qoymaq və üçün tam yol Mən bunu göndərmək istəyirəm. Və sonra server deyil Mənə geri getmək imkan. Və belə bildirdiğiniz deyil mənə fayl almaq. Amma normal - belə bir kodu var bir fayl yüklemek. Belə ki, normal nə olacaq ki, şəxs yoxlanılması deyil, əgər mənim fayl . jpeg ilə başa çatır, mən yoxlamaq istəyirəm. Mənə çox real sürətli nümunə açaq. OK. Bu şəxs sağ - belə misal iki yoxlanılması olunur preg_match əgər - burada buraya edir - əmin ilə başa çatır etmək Yaxşı olan PHP,. Bu, yaxşı haldır. Amma real böyük var Bu problem. Bu, yaxşı haldır. Amma adlı bir fayl qoymaq olsaydı myfavoritepicture.php.jpeg, mən bilər hələ potensial jpeg qurtarmaq və Bu PHP təhlükəli it.k axır. Siz şəxs ola istəmirəm Sizin veb kodu run. Amma sonra. Jpeg keçmək imkan verir. Fikri siz həqiqətən etmək istəyirəm nə faylları, A. Lakin, OK, almaq deyil nə Siz, həqiqətən etmək istəyirəm ki, əmin olun Siz bütün dünyada oxumaq. Və heç bir şey yoxdur. Bu PHP. Bu heç. Php var bütün fayl adı. Auditoriya: Amma siz bilər qoymaq. jpeg sonunda. Server hələ kodu axır. Luciano Arango: Xeyr, olmaz başında axır. Siz geri getmək və cəhd var Siz əgər görmək - Auditoriya: Biz var - OK, əhatə edən yalnız bir set - Luciano Arango: Bəli. Auditoriya: OK. Luciano Arango: Bəli. OK. Hər hansı digər suallar? OK. Mən bu qədər tərk və düzmək üçün gedirəm Siz uşaqlar bilərsiniz görmek üçün cəhd - digər olanları bir az daha Onlar çox tələb mürəkkəb, çünki daha SQL daha çox bilik yalnız web SQL başlayan bilik və nə JavaScript edir. Amma bu qədər saxlamaq üçün cəhd gedirəm və inşallah uşaqlar öyrənmək olacaq bu və bir peek almaq üçün cəhd edin siz nə edə bilərsiniz və necə bir çox nümunələr Siz əldə edə bilərsiniz. Hər kəs hər hansı digər var bu barədə suallar? Durmayın. Bəli, atmaq, vurmaq. Bəli, davam. Durmayın. Auditoriya: OK. Mən haqqında eşitdim necə Magic Quotes kifayət qədər təmin olunmur. Luciano Arango nə - Magic Quotes? Auditoriya: Bəli. Belə ki, edir - belə zaman giriş bir şey, o, həmişə quotes edir. Luciano Arango: Bəli. Bəli. OK. Auditoriya: Və sonra mən də, çalışmışdır ki, lakin sonra mən onu axtarıldı. Və bu yaxşı deyil bildirib. Amma niyə əmin deyiləm. Luciano Arango: Bəli. Auditoriya: Magic Quotes istifadə etməyin Bu təhlükəsiz deyil, çünki. Luciano Arango: OK. SQL daxil zaman belə Magic Quotes edir və artıq sizin üçün quote edir. Auditoriya: Bu həmişə quotes edir Daxil qoymaq nə ətrafında Luciano Arango: Bəli. Belə ki, ilə problem ki, - Mən nəzər lazımdır - Auditoriya: necə əldə etmir SQL bəyanat? Və ya ola bilər danışarlar kimi quote seçin. Luciano Arango: Bəli, sizə lazım SQL üçün yaxşı quotes. Auditoriya: Xeyr, lakin server sizin üçün bunu edir. Luciano Arango: Bu kiçik quotes burada, bu kiçik quotes? Auditoriya: Bəli. Luciano Arango: Bəli. Bu problem siz ki, Son şərh - OK, belə ki, nə edə bilərsiniz Mən şərh edə bilər out - belə ki, bir nəzər salaq - Mənə bildirin bir mətn redaktə faylı açın. Mənə yalnız bu edit imkan burada birbaşa. OK. Sizlərin aydın görmək olar? Mən nə edə şərh edə bilər Son bir həyata. Bu son bir şərh edəcək. Və sonra mən qoymaq, buradan birini qoymaq lazımdır burada bütün zərərli stuff. Belə ki, istifadəçi həqiqətən var sağ, giren? Istifadəçi giren deyil şeylər, sağ? Bu kimi daxil gedirəm nə daxilində almaq üçün çalışırıq şəxs. Mən qoymaq gedirəm - ki, bir dırnaq işarəsi var. Bu səhv yalnız squiggly var. Və sonra nə kodu etmək niyyətindədir - Bağışlayın, mən bu almaq üçün gedirəm. Nə kodu nə gedir bu ilk əlavə olacaq kotirovka burada olur. Və bu son əlavə olacaq dırnaq işarəsi həmçinin. Və bu da əlavə etmək olacaq son, son dırnaq işarəsi. Amma bu kotirovka şərh alıram out qeyd, onlar run etməyin. Mən bu kotirovka başa alıram burada qeyd. Siz anlamaq edirsiniz? Siz itirilmiş edirsiniz? Mən son kotirovka şərh edə bilər mark, və qayğı ilk dırnaq işarəsi. Auditoriya: Və yalnız Salonun ilk biridir. Luciano Arango: Bəli. Və yalnız ilk bir başa. Bəli, doğru. Mən nə edə var. Bəli. Kimi hər hansı bir digər suallar? Böyük bir sual var. No, bəli, bəlkə. Ümid edirəm ki, uşaqlar sort edəcək SQL və öyrənmək zaman daha məntiqli kimi şeylər. Amma əmin olun - watch bu vasitələrdən saxlamaq. Üzr istəyirik, burada bu alətlər. Bu alətlər böyükdür. Hər hansı bir sualınız varsa, siz də mənə eməktub göndərin. Bu mənim normal e-poçt. Və bu, mənim iş e-poçt olan Mən Dənizlərdə iş zaman. OK, thanks. Thanks, uşaqlar. Siz getmək iyi. Siz burada qalmaq yoxdur. Clap etməyin. Bu qəribə deyil. OK, thanks, uşaqlar.