ლუჩიანო ARANGO: OK, ბიჭები. ჩემი სახელი არის Luciano Arango. მე ვარ მეორე კურსის in Adams სახლი. და ჩვენ ვაპირებთ, რომ იყოს საუბარი ვებ უსაფრთხოების აქტიურ დაცვას. ასე რომ მე მუშაობა ოფისის ინფორმაცია უსაფრთხოების SEAS. და მეტი ზაფხულში, მე სტაჟირება SeguraTec, რომელიც ინფორმაციის უსაფრთხოების კომპანია, რომელიც ემსახურება ბანკის of Columbia. ეს ძირითადად სადაც გავიგე რა მე გავიგე ჯერჯერობით. და ა.შ. ზოგიერთი მასალა, რომ ჩვენ აპირებს წავიდეს დღეს სრულდება, ჩვენ არ ნამდვილად ისაუბრა კლასში. მაგრამ ჩვენ მალე. ეს იქნება, როგორიც SQL, JavaScript. და ჩვენ ნამდვილად არ წავიდა მას. ასე რომ, მე შეიძლება დასალაგებლად ფრენა მეშვეობით და თქვენ შეიძლება არ ვიცი ზოგი რამ. მაგრამ მალე, თქვენ ვისწავლოთ იგი. და ეს კიდე ყველა აზრი. კიდევ ერთი რამ - დარჩება ეთიკური. ზოგიერთი რამ, რომ თქვენ ისწავლით, თქვენ შეეძლო არასამთავრობო ეთიკური გზები. თუ ეს თქვენი, აუცილებლად შეეცდება. მე ნამდვილად მოტივირება თქვენ ბიჭები ცდილობენ საკუთარი სერვერები, ვცდილობთ მიმდინარეობს შიგნით მათ. აგრეთვე, თუ შეგიძლიათ შეაღწიონ მათ, თუ შეგიძლიათ მიიღოთ შიგნით მათ. მაგრამ არა ვინმე სხვისი. Cops ნამდვილად არ მიყვარს ხუმრობები და მთლიანობაში, ჩვენ ამ აქ. ჩვენ messing გარშემო. ისინი მართლაც გაბრაზებული. ასე რომ უხელმძღვანელებს გადასცა ამ ნახვა. მე ეს გაიხსნა უფლება აქ. ეს არის ნახვა და ეს აქვს bunch of მაგალითები. რა ხდება არის ის, რომ პირველი მაგალითი სახის იქნება ბევრი ადვილია ვიდრე ბოლო მაგალითი გრძნობა რომ პირველი მაგალითი სრულიად დაუცველად. და ბოლოს ერთი სახის რა ნორმალური ვებ უსაფრთხოების პირი ყველაფერს გააკეთებს. მაგრამ თქვენ მაინც ერთგვარი მისაღებად გარშემო რომ. და ჩვენ ვაპირებთ ფოკუსირება ერთი და ორი, მაგალითები ერთი და ორი. OK. დავიწყოთ cross-site სკრიპტირების. JavaScript აწარმოებს კლიენტის ბრაუზერში. ეს არის პროგრამირების ენა, რომ გამოიყენოთ აწარმოებს კლიენტის ბრაუზერი ისე თქვენ არ გაქვთ განახლება ნახვა და დავუბრუნდეთ სერვერზე. თქვენ გაქვთ გაშვებული. მაგალითად, Facebook, თქვენ არ გაქვთ განაახლეთ ნახვა ახალი სტატუსი განახლებების ამუშავება. ის გამოყენებით JavaScript გენერირება ეს ყველაფერი. ასე რომ, ჩვენ შეიძლება მიეცეს მუქარის JavaScript შევიდა საიტებზე. და რომ გზა, როდესაც ჩვენ გაგზავნას ბმული ვინმეს, ჩვენ შეგვიძლია სახის გაუგზავნე ეს ზოგიერთი კოდი, რომელიც ჩვენ გვინდა. არსებობს მუდმივი და არასამთავრობო დაჟინებული JavaScript - მუდმივი და არასამთავრობო დაჟინებული cross-site სკრიპტირების, ვგულისხმობ. და განსხვავება მიმდინარეობს, რომ მუდმივი არის JavaScript, რომ იქნება შენახული ნახვა. არასამთავრობო და მუდმივი იქნება JavaScript რომელიც რეალურად მხოლოდ მოხდეს ერთხელ. მოდით შევხედოთ მაგალითს რეალური სწრაფი. OK. ასე რომ, ამ ნახვა, მარტივი, არაფერი ხდება აქ. და ჩვენ ვაპირებთ ცდილობენ ჩადეთ ზოგიერთი JavaScript. ასე რომ გზა ჩვენ ვიწყებთ წერა JavaScript არის ჩვენ დავიწყებთ დასაწყისში სცენარი. და ჩვენ დახუროს ეს სცენარი. ჩვენ უბრალოდ აპირებს დააყენოს გაგზავნა - მე შენ გაჩვენებ - alert. Alert არის ფუნქცია, რომელიც JavaScript იყენებს არიან რაღაც. მოდით ცდილობენ რეალური სწრაფი. მე ვაპირებ წასვლა, alert hello. ისე, დამავიწყდა დააყენა - OK. ასე რომ მარტივი. ჩვენ JavaScript ნახვა, და ეს გამოვიდა. და ეს ერთგვარი მხოლოდ ხდება ჩვენს ვებგვერდზე, არა? ასე რომ, როგორც ჩანს, ეს ასე არ არის პრობლემა, არა? ვგულისხმობ, როგორ შეიძლება გამოიყენოთ ამ maliciously? ასე რომ, ისე, რომ ჰაკერების გაკეთება ეს მართლაც მარტივია. ისინი აპირებენ დაიბრუნოს ის. ისინი შეგიძლიათ გააგზავნოთ ამ ბმულზე თქვენ. თუ მე გამოგიგზავნით ამ ბმული თქვენ ახლა, და თქვენ გასახსნელად up, ის აპირებს ამბობენ, hello, რომელშიც ნათქვამია, რომ ჩემი ნახვა ეუბნება თქვენ hello. და ასე რომ მე რომ ვთქვა რაღაც ცოტა სასურველი სტუმარი გახდებით, თუ მე დახევის up JavaScript ფუნქცია I ტიპის უკვე წერდა - მაგრამ თუ თქვენ შეხედეთ მას, მე წასვლა მას ადრე დავწერე ეს. ამიტომ, ჩვენ ვაპირებთ მითითებული შეყოვნება. ჩვენ ვაპირებთ დაველოდოთ რამდენიმე წამში. ფაქტობრივად, ჩვენ ვაპირებთ დაველოდოთ, თუ მე არ ვცდები, ხუთ წამში. ეს გრძელდება მილიწამებში. და შემდეგ, რასაც ჩვენ ვაპირებთ გავაკეთოთ არის ჩვენ აპირებს გაფრთხილება, რომ შესვლისას მოცდის დრო ამოიწურა, რომ შეხვიდეთ უკან შემოსული და ჩვენ ვაპირებთ, რომ შეიცვალოს მდებარეობა სხვადასხვა ადგილმდებარეობა. ასე რომ, თუ მე ვგზავნი ამ ნახვა ვინმე, ისინი იქნება ათვალიერებს გარშემო, მშვიდი. არაფერი ხდება. და ხუთ წამში, ის აპირებს ვთქვათ, თქვენი მოცდის დრო ამოიწურა. გთხოვთ გაიაროთ უკან შემოსული მას შემდეგ, რაც ისინი დააწკაპუნეთ OK, მე ვაპირებ მათ სხვა ნახვა. სავარაუდოდ, website აპირებს იყოს მსგავსი ნახვა, რომ ისინი ადრე. და ისინი აპირებენ, რათა შეხვიდეთ მათი რწმუნებათა სიგელების გადაცემის ჩემს website ნაცვლად მათი ნახვა. და მე შეგიძლიათ გააგზავნოთ ადამიანი ელ ამ ბმულს. მე ვამბობ, რა, აქ არის ბმული. ეს არის ბანკი, მაგალითად. მე ვამბობ, აქ, მე ამ ბმულს. და კიდევ ისინი გამოგვიგზავნოთ, ისინი იქნება ათვალიერებს გარშემო. შემიძლია ლოდინი 15 წამი, 20 წამი, და მაშინ პოპ, რომ გთხოვთ შეხვიდეთ უკან მოაწეროს უკან. თქვენ ბიჭები შეიძლება ცდილობენ ეს კიდევ ბევრი რამ. ეს რთული, რადგან თქვენ ბიჭები არ მინახავს JavaScript, ასე რომ თქვენ შეიძლება არ ვიცი, გარკვეული ფუნქციები. მაგრამ ყველა თქვენ უნდა გააკეთოთ დაწყება ერთად სცენარი, დასრულდება სცენარი. და თქვენ ვერ დააყენა არაფერს ცენტრიდან. Alert არის ფუნქცია, დაველოდოთ. Window განთავსების მოგაწვდით ახალი ადგილმდებარეობა. მაგრამ შეგიძლიათ ამის გაკეთება ბევრად უფრო. ასე რომ, იდეა არის, რომ ჩვენ მიიღოს, რომ off. თუ მივდივარ, მაგალითად, ორი, და მე დასვა იგივე კოდი, ეს არ იმუშავებს. ამიტომ ბეჭდვის ყველაფერი, რადგან რა ამ ნახვა თავდაპირველად არ არის თუ მე ზუსტად არაფერი აქ, ეს თქვენ ამობეჭდოთ უფლება აქ. ამიტომ არ დაბეჭდვის არაფერი გამოვიდა. ეს მაგალითი ფაქტიურად შემოწმების თუ სცენარი არსებობს. ასე რომ, yeah, წავიდეთ წინ. მკითხავთ. აუდიტორია: არ გაგზავნის GET, ან POST მოთხოვნა? ლუჩიანო ARANGO: ჰო. ისინი გაგზავნის მისაღებად თხოვნით. აუდიტორია: ეს არის? ლუჩიანო ARANGO: ჰო. ასევე ბრაუზერები იყენებენ ჩანაწერის მოითხოვს. მაგრამ მე ვცდილობ რომ ნახოთ მისაღებად ითხოვს ასე რომ, ჩვენ ვხედავთ, თუ რა არის რეალურად მიმდინარეობს. და ასე თუ შევხედავთ, ეს კოდი - ასე რომ, ეს არ მუშაობს აღარ. და თუ ჩვენ შევხედოთ ამ კოდექსის ეს იქნება მაგალითი ორი. რა ეს ადამიანი აკეთებს, პირი პასუხისმგებელი ამ ბრაუზერის - გახსნას, OK - შეცვალა სიტყვა სცენარი. ეს არის PHP, რომელიც თქვენ ბიჭები შეიძლება ვნახეთ ცოტა არ არის. ის მხოლოდ შეცვლის სიტყვა სცენარი სახელი. ასე რომ, თუმცა, თუ მე წავიდეთ წინ და უბრალოდ დასვა - თუ მე აითვისებდა ჩემი კოდი, კიდევ ერთხელ, და მე ვაპირებ ცვლილებები უბრალოდ ცოტა. იმის ნაცვლად, რომ სცენარი, მე ვაპირებ შეცვლას ეს სცენარი ერთად დედაქალაქში R. და ჩვენ ვაპირებთ, რომ თუ ეს კოდი მუშაობს. ასე რომ არ ამობეჭდოთ, რომელიც არის კარგი ნიშანი. და იმედია კიდევ ორ წამში, ის აპირებს პოპ up. თქვენი მოცდის დრო ამოიწურა. OK. რომ ყველა უფლება. ასე შემოწმების სცენარი შეიძლება არ არის აუცილებელი მუშაობა. პირი - მას ასევე შეუძლია შეამოწმოს script ზედა, სცენარი ამას, ქ შემთხვევაში შევადარებთ, დარწმუნდით, რომ ისინი იგივე. მაგრამ ჰაკერი შეიძლება მაინც გავაკეთოთ ერთგვარი რა ჩვენ გააკეთა Vigenere როდესაც გადავედით უკან რამდენიმე პერსონაჟი, წინსვლა. და მას შეუძლია გაერკვნენ, თუ როგორ უნდა დააყენოს script უკან იქ, ასე რომ შეიძლება მიეცეს რომ სცენარი. ასე რომ თქვენ გსურთ გამოიყენოთ არის htmlspecialchars to დაიცვას თქვენი ნახვა. და რა ეს არ არის ის რაც დარწმუნებული ვარ, რომ ის, რაც თქვენ დააყენა - მაგალითად, ციტირებისა ან ამ მეტია ან ნაკლები - შეიცვალა რაღაც რომ არ იქნება - ნება მომეცით მიუახლოვდით აქ - ფაქტობრივი ampersand. მას ჩაანაცვლებს იმ სპეციალურ HTML სიმბოლო, რომ ჩვენ დავინახავთ, როდესაც ჩვენ საუბარი - oh, ეს აპირებს ჩემს უკან - ეს გმირები უფლება აქ. ეს ნიშნავს, რომ რაღაც მოდის. HTML, რომ დაწყებული bracket გვეუბნება, რომ რაღაც HTML დაკავშირებული მოდის. და გვინდა, რომ თავი დაეღწია, რომ. ჩვენ არ გვინდა, რომ დააყენა HTML შევიდა website.k ჩვენ არ გვინდა, მომხმარებელს უნდა იყოს შეუძლია დააყენოს რაღაც მათი ნახვა რომ შეიძლება გავლენა მოახდინოს მათი ნახვა, როგორიცაა Script ან HTML ან რამე მაგდაგვარს. მნიშვნელოვანია, რომ თქვენ სანიტარია მომხმარებლის შეყვანის. ასე რომ, მომხმარებლებს შეუძლიათ input ბევრი რამ. მას შეუძლია input bunch პერსონალის ცდილობენ შეასრულა თქვენი ბრაუზერის შევიდა კიდევ გაშვებული ამ სკრიპტის კოდი. რა გსურთ არ არის შევჩერდეთ განთავსების სკრიპტი, მაგრამ გამოიყურება ყველაფერი რომელიც შეიძლება მუქარის. და htmlspecialchars ყველაფერს გააკეთებს, რომ თქვენ, ასე რომ თქვენ არ გაქვთ ფიქრი მას. მაგრამ არ ცდილობენ ამის გაკეთებას თავს სახის თქვენი საკუთარი კოდი. ყველას ნათლად XSS? OK. მოდით წასვლა SQL ინექცია. ასე რომ, SQL ინექცია არის ალბათ ნომერ დაუცველობის სხვადასხვა საიტებზე. ვგულისხმობ, კარგი მაგალითი - მე უბრალოდ იკვლევს furthest ამ რამ. და აღმოვაჩინე ამ გასაოცარია სტატიაში, სადაც დავინახე, რომ ჰარვარდის დაირღვა, იყო კალენდარი. და მე მაინტერესებს, ასევე, როგორ ისინი ამას? ჰარვარდის ყველაზე გასაოცარია, საუკეთესო უზრუნველყოს უნივერსიტეტის ოდესმე. უფლება? ისე, რომ არღვევენ სერვერები, ჰაკერები გამოიყენა ტექნიკა მოუწოდა SQL ინექცია. ასე რომ, ეს ხდება ყოველდღიურად საფუძველზე. ხალხი დაივიწყებს გაითვალისწინოს განთავსების SQL ინექცია. ჰარვარდის აკეთებს. მე ვფიქრობ, რომ ამბობს აქ, პრინსტონის, სტენფორდის, კორნელი. ასე როგორ უნდა - ისე, რა არის ეს SQL ინექცია რომ მოაქვს ყველა ამ ადამიანი ქვემოთ? OK. ასე რომ, SQL არის პროგრამირების ენა, რომელიც ჩვენ ვიყენებთ Access ბაზაში. რას ვაკეთებთ ჩვენ აირჩიეთ - მერე რა ეს ნათქვამია ახლა არის select ყველაფერს მაგიდაზე. SQL, იგი შეიცვლის შევიდა ამ მონაცემთა ბაზები რომ აქვს მაგიდები სავსე ინფორმაციას. ასე რომ აირჩიეთ ყველაფერს მომხმარებლებს სადაც სახელი არის სახელი. უფლება? მარტივი საკმარისი. იდეა SQL ინექცია არის, რომ ჩვენ ჩადეთ რამოდენიმე მუქარის კოდი, რომელიც შეასრულა სერვერზე შევიდა გაშვებული რაღაც განსხვავებული, ვიდრე ის, რაც თავდაპირველად იყო გაშვებული. მოდით ვთქვათ, სახელი, ჩვენ დასვა ან 1 უდრის 1. ასე რომ, ჩვენ დააყენა ან 1 უდრის 1. ისე, როგორც ეს წაიკითხავს ახლა იქნება select მომხმარებლებს, ყველაფერი წევრებს - ეს არის ყველაფერი - სადაც სახელი არის სახელი, მაგრამ სახელი ან 1 უდრის 1. ასე რომ სახელი არის არაფერი ან 1 უდრის 1. 1 უდრის 1 ყოველთვის მართალია. ასე რომ, ეს ყოველთვის დაბრუნდება ინფორმაცია იმ მომხმარებლებს. OK. ჩვენ არ უნდა ჰქონდეს ზუსტი სახელი. ჩვენ შეგვიძლია მხოლოდ არაფერი რომ ჩვენ გვინდა, და ეს დაბრუნდება ინფორმაცია რომ ჩვენ გვჭირდება. მოდით შევხედოთ კიდევ ერთი მაგალითია. თუ ჩვენ აირჩიეთ ყველაფერს შესახებ, სადაც სახელი DROP TABLE წევრებს - ასე რომ რას ფიქრობთ ამ ნების გავაკეთო, თუ მე დასვა სახელი როგორც DROP TABLE წევრებს? ვინმეს აქვს იდეა? დიახ. აუდიტორია: იგი აპირებს ვუთხრა ეს ნაგავსაყრელი ყველა მაგიდები. ლუჩიანო ARANGO: იგი აპირებს გვითხრათ ნაგავსაყრელი ყველაფერს ნახვა, ყველაფერს მონაცემთა ბაზაში. და რა ხალხი გამოიყენოს ეს - ისე, მე ვაპირებ აჩვენებს, თუ ბიჭები. მე ინვალიდი ჩაშვების მაგიდები იმიტომ, რომ მე არ მინდა თქვენ ბიჭები ვარდნა ჩემი მაგიდები. მოდით შევხედოთ ამ. ასე რომ, ეს უბრალოდ pulls up ინფორმაცია გარკვეული პირი. ასე რომ, ვიცით, თუ ეს დაზარალებული SQL ინექცია. ჩვენ ვაპირებთ, რათა შეამოწმოს რეალური სწრაფი თუ ჩვენ შეგვიძლია დააყენა რაღაც - ნება მომეცით გადააკოპირეთ ეს კოდი. მე ვაპირებ წასვლა მას მეორე. მე ვაპირებ დააყენა root და 1 უდრის 1. ეს უფლება აქ, ამ პროცენტი ნიშანი 23 - ის, რაც ნამდვილად არ არის, თუ მე გამოიყურება უფლება აქ - გზა HTML იღებს ნომრები, თუ თქვენ შევხედოთ როცა დასვა ფართი აქ - მე რომ სივრცე რაღაც აქ, ცვლის მას პროცენტიანი 2. მიგაჩნიათ თუ არა ბიჭები, რომ ეს უფლება აქ როდესაც მე დააყენა სივრცეში? გზა მუშაობს ის არის, რომ თქვენ შეგიძლიათ მხოლოდ გაუგზავნე ASCII ფასეულობების HTML. ასე რომ, ეს ცვლის, მაგალითად, ფართი პროცენტი 20. მე არ ვიცი, თუ ბიჭები ვნახეთ, რომ ადრე. იგი ცვლის hashtag ერთად პროცენტიანი 23. ჩვენ გვჭირდება hashtag დასასრულს ან განაცხადი ასე რომ ჩვენ შეგვიძლია ვუთხრათ მონაცემთა ბაზის დაგავიწყდეთ კომენტარის ამ ბოლო მძიმით დასასრულს. ჩვენ გვინდა, რომ არ ვიფიქროთ, რომ. ჩვენ უბრალოდ გვინდა, რომ აწარმოებს ყველაფერს რომ ჩვენ გვაქვს წინასწარ და კომენტარის რომ. მოდით შევხედოთ მას. ასე რომ, თუ მე უნდა დააყენოს რაღაც - ვთქვათ, მაგალითად, მე ზუსტად 2 შეადგენს 1, ეს არ მაძლევს არაფერი. როდესაც მე 1 უდრის 1, და ეს იმას დაბრუნდება რაღაც, ამ მეუბნება, რომ ეს არის დაუცველი SQL ინექცია. მე ვიცი, რომ რასაც მე ზუსტად ამის შემდეგ - და მაგალითად, ვარდნა ცხრილები ან რამე მაგდაგვარს აუცილებლად იმუშავებს. მე ვიცი, რომ დაუცველი SQL ინექცია რადგან ვიცი, რომ ქვეშ Hood, ეს გაქირავების me გავაკეთოთ 1 უდრის 1 რამ. OK? და თუ დავაკვირდებით ეს სხვა პირობა, მეორე და მესამე, ეს ვაპირებთ გავაკეთოთ ცოტა მეტი შემოწმების ქვეშ hood რა არის. ასე რომ ყველას მისცემს drop არაფერი გაუკეთებია და ცდილობდა? მიგაჩნიათ თუ არა ბიჭები სახის მისაღებად SQL არის? იმიტომ, რომ მე ვიცი, რომ თქვენ ბიჭები არ აქვს მინახავს ეს არ არის, ამიტომ სახის დამაბნეველი თქვენ ბიჭები. ავიღოთ სახეს. რა გზა, რომ თავიდან ავიცილოთ SQLI? OK. ასე რომ, ეს მართლაც მნიშვნელოვანია, რადგან თქვენ ბიჭები ნამდვილად მინდა, რომ თავიდან ავიცილოთ ამ თქვენს საიტებზე. თუ არა, ყველა თქვენი მეგობრები ვაპირებთ დაგცინონ როდესაც მათ ჩამოაგდეს ყველა თქვენი მაგიდები. ასე რომ, იდეა არის, რომ თქვენ გარემონტებას SQL გარკვეული გზა, ხოლო თქვენ ემთხვევა რა მომხმარებლის საშუალებებით ერთად გარკვეული სიმებიანი. ასე რომ გზა ამ მუშაობს თქვენ მოამზადოს მონაცემთა ბაზაში. თქვენ აირჩიეთ სახელი, ფერი და კალორიებს მონაცემთა ბაზაში მოუწოდა ხილი. და მაშინ, სადაც კალორიებს ნაკლებია, და ჩვენ დააყენა კითხვის ნიშნის არსებობს ამბობდა ჩვენ ვაპირებთ შეყვანის რაღაც მეორე. და ფერი შეადგენს და ჩვენ დავსვამთ კითხვას მარკა ამბობდა ჩვენ ვაპირებთ input რაღაც მეორე ასევე. OK? და მაშინ ჩვენ შეასრულოს ის, აყენებს 150 და წითელი. და ეს შემოწმება, რათა დარწმუნებული ვარ, რომ ეს ორი - ამ მასივი შეამოწმებს, რომ ეს ორი რიცხვი და რომ ეს არის string. მაშინ ჩვენ წავიდეთ და ჩვენ მოიტანონ და ბოლოს, ჩვენ დააყენოს ის წითელი. ეს ნიშნავს, რომ ჩვენ მისაღებად ყველა. ეს ნიშნავს, რომ ჩვენ რეალურად შეასრულოს SQL განაცხადი და მისი უკან წითელი. აქ ჩვენ იგივე გავაკეთოთ, მაგრამ ჩვენ იგივეს ყვითელი. და ჩვენ მისაღებად ყველა. და ამ გზით, ჩვენ ასაცილებლად შესახებ მიმდინარეობს შეუძლია input რაღაც რომ არ არის ის, რაც ჩვენ მითითებული, სიმებიანი ან რიცხვი, მაგალითად. მე საუბარი ადრე ეყრდნობოდა სხვები. როდესაც თქვენ ბიჭები დაიწყოს თქვენი პროექტი, თქვენ საუკეთესო ნამდვილად აპირებს გამოიყენოს ჩატვირთვის ან რაღაც მსგავსი. თქვენ ბიჭები ოდესმე გამოყენებული დასაწყისში? ალბათ თქვენ ბიჭები არ გამოიყენება Wordpress სავარაუდოდ. ასე რომ, პრობლემა გამოყენებით სხვა ადამიანების რამ - მე უბრალოდ აპირებს Google რეალური სწრაფი დასაწყისში დაუცველობას. თუ მე გაიყვანოს ამ up ახლა - მე სიტყვასიტყვით გააკეთა ორი მეორე Google. ჩვენ ვხედავთ, რომ დასაწყისში - ეს არის დათარიღებული, როგორც September '12. 26 განახლება. ნაგულისხმევი კონფიგურაციის დასაწყისში სანამ 3.6 არ უშლის ამ გარკვეული ატვირთვის, რომელიც შეიძლება გაუადვილებს cross-site სკრიპტირების თავდასხმები. ასე სწრაფი ამბავი, ერთხელ ჩვენ ვმუშაობდით ერთად - ასე ვიყავი, ზაფხულში, სამუშაო სტაჟირება. და ჩვენ მუშაობის ერთგვარი როგორც დიდი საკრედიტო ბარათის კომპანია. და იმედი აქვთ რაღაც მოუწოდა - მე არ ვიცი თუ ბიჭები ოდესმე ითამაშა პროდუქტის მოუწოდა Joomla. Joomla არის პროდუქტი, რომელიც გამოიყენება კონტროლი - სახის მსგავსი WordPress, გამოიყენება აშენება საიტებზე. ამიტომ მათ მათი ნახვა მუშაობს Joomla. ეს არის რეალურად საკრედიტო ბარათი კომპანია კოლუმბიაში. მე გადაგიყვანთ მათი ნახვა რეალური სწრაფი. ასე რომ, ისინი გამოიყენება Joomla. და მათ არ განახლება Joomla უახლესი გარდა. და ასე, როდესაც ჩვენ აღების შევხედოთ მათი კოდი, ჩვენ შევძელით რეალურად წასვლა შიგნით საკუთარ კოდი და იპარავს ყველა საკრედიტო ბარათის ინფორმაცია, რომ მათ, ყველა საკრედიტო ბარათის ნომრები, სახელები, მისამართები. და ეს იყო მხოლოდ - და მათი კოდი იყო შესანიშნავად ჯარიმა. მათ ჰქონდათ დიდი კოდი. ეს იყო უსაფრთხოების ყველა. მათ შეამოწმეს ყველა ბაზაში. ისინი გააკეთა დარწმუნებულია, cross-site სკრიპტირების იყო ჯარიმა. მაგრამ ისინი გამოიყენება, რომ რაღაც არ იყო განახლებული, რომ არ იყო უსაფრთხო. და ასე შემდეგ, რამაც მათ - ასე რომ თქვენ ბიჭები ნამდვილად აპირებს გამოიყენოს სხვა ადამიანი კოდი, სხვა ადამიანების ფარგლებში დაამყარონ თქვენი ნახვა. დარწმუნდით, რომ ისინი უსაფრთხო, რადგან ზოგჯერ ეს არა თქვენ, ერთი, რომ რაც შეცდომა. მაგრამ ვინმე იღებს შეცდომა, და მაშინ ჩამონგრევის გამო. პაროლები და PII. ასე რომ პაროლები. OK. მოდით შევხედოთ პაროლები რეალური სწრაფი. OK. გთხოვთ, მითხრათ, რომ ყველას იყენებს უსაფრთხო - მე იმ იმედით, ყველას აქ იყენებს უსაფრთხო პაროლები. მე უბრალოდ გაქირავების რომ როგორც ვარაუდი. ასე, რომ თქვენ ბიჭები ნამდვილად აპირებს შესანახად პაროლები თქვენს საიტებზე. თქვენ აპირებს, რათა რაღაც შესვლა ან რამე მაგდაგვარს. მნიშვნელოვანია, რომ არ შესანახად პაროლები ძირითადი ტექსტი. ეს არის ძალიან მნიშვნელოვანი. თქვენ არ მინდა შესანახად დაგავიწყდათ ძირითადი ტექსტი. და თქვენ ნამდვილად ნამდვილად არ მინდა შესანახად ეს ერთი გზა hash. მერე რა, ერთი გზა hash არის, რომ როდესაც თქვენ გენერირება სიტყვა, მაშინ, როდესაც ამ სიტყვა შევიდა ქეშირების ფუნქცია, ეს იქნება გენერირება უკან გარკვეული cryptic გაგზავნა ან cryptic კომპლექტი გასაღებები. მე შენ გაჩვენებ მაგალითს. მე ვაპირებ hash ისინი სიტყვა password1. ასე რომ md5 Hash დაბრუნებას აპირებს me გარკვეული უცნაური ინფორმაციას. პრობლემა ისაა, რომ ხალხი არსებობს რომ მინდა წასვლა საიტებზე აქვს უკვე figured out სახის ყველა md5 ჰეშები. რაც გააკეთეს არის მათ დაჯდა მათი კომპიუტერები და ისინი hashed ყველა ერთი შესაძლო სიტყვა იქ, სანამ მათ მიიღეს ერთგვარი, რა არის ეს. მე რომ შევხედოთ ამ up - მე უბრალოდ მოგვეწონა ამ hash. იმ შემთხვევაში, თუ მივიღებ ამ hash დან - თუ მე წასვლას ნახვა, და მე ამ hash იმიტომ, რომ მე მისაღებად მონაცემთა ბაზა, და მე მჯერა, ეს, ვინმე უკვე figured ის ჩემთვის. ჰო. ასე რომ, ადამიანი დაჯდა, და რაც md5 hash, რომ თქვენ დააყენა, ისინი აპირებენ დაბრუნებას თქვენ რაღაც რომ არის სიტყვა. თუ მე hash კიდევ ერთი სიტყვა, როგორიცაა - მე არ ვიცი - trees2. მე არ მინდა, რომ იყოს იმედგაცრუებული ჩემი Google ძიება. იქ არის, trees2. ასე რომ, ბევრი საიტები კვლავ გამოიყენოთ md5 hash. ამბობენ, ოჰ, ეს უსაფრთხო. ჩვენ არ შენახვა ძირითადი ტექსტი. ჩვენ ამ md5 hash. და ყველა მე უნდა გავაკეთოთ მხოლოდ Google ნომერი. მე კი არ გამოთვლაც თავს. მე შემიძლია მხოლოდ Google, და ვინმე უკვე გააკეთა ჩემთვის. აი რამოდენიმე მათგანი. აი bunch of პაროლები. ასე რომ ნამდვილად არ გამოიყენოთ md5 hash, რადგან ყველა თქვენ უნდა გავაკეთოთ არის Google იგი. ასე რომ, რა გინდათ გამოიყენოთ ნაცვლად? OK. რაღაც მოუწოდა salting. ასე რომ, რა salting არის - თქვენ ბიჭები გახსოვთ, როდესაც ჩვენ ვიყავით საუბარი შემთხვევითი in - მე არ ვარ დარწმუნებული, თუ რა pset ეს იყო - იყო ეს pset იქ ან ოთხი? ჩვენ ვსაუბრობთ მოძიებაში ნემსის haystack. და pset, ნათქვამია, რომ შეიძლება რეალურად გაერკვნენ, რა შემთხვევითი ქმნის იმიტომ, რომ ვიღაცას უკვე გაიქცა შემთხვევითი მილიონი ჯერ და მხოლოდ სახის ჩამოყალიბდა, რაც მათ გენერირება. რა გსურთ არის დასვა შეყვანის. ასე რომ რა salting სახის არის. მათ უკვე figured რა salting ბრუნდება, თითოეული მუშაობა. ასე რომ, რა salting არ არის თქვენ დააყენა მარილი. თქვენ დააყენა გარკვეული სიტყვა. და ეს hash რომ სიტყვა დამოკიდებულია რა თქვენ დააყენა აქ. ასე რომ, თუ მე hash დაგავიწყდათ ერთი ამ წინადადება, ის აპირებს hash სხვაგვარად, თუ მე hash password1 სხვადასხვა სასჯელი. ეს ერთგვარი აძლევს მას სადღაც დაიწყოს hashing დაიწყოს. ასე რომ, ბევრი რთული გამოთვლაც, მაგრამ თქვენ ჯერ კიდევ შეუძლია გამოთვლაც, განსაკუთრებით თუ თქვენ იყენებთ ცუდი მარილი. ადამიანი უკვე ასევე figured out საერთო მარილები და figured რა, რომ ის არის. შემთხვევითი მარილები ბევრად უკეთესი, მაგრამ საუკეთესო გზა არის გამოიყენოს რაღაც მოუწოდა საძვალე. და რა საძვალე საშუალებას გაძლევთ არ - ასე რომ ეს ფუნქცია უკვე აშენებული თქვენთვის. ბევრი ადამიანი დაგვავიწყდეს, რომ, თუ ავიწყდებათ, გამოიყენოს იგი. მაგრამ, თუ გავითვალისწინებთ up საძვალე PHP, საძვალე უკვე დააბრუნებს hash string ჩემთვის. და ეს ფაქტიურად მარილები ბევრჯერ და ჰეშები ბევრჯერ. ასე რომ, ჩვენ არ უნდა გავაკეთოთ ეს. ასე რომ ყველა თქვენ უნდა გააკეთოთ გააგზავნეთ იგი საძვალე. და ეს იქნება შექმნათ დიდი hash გარეშე თქვენ ფიქრი მარილი ან არაფერი. იმიტომ, რომ თუ იყო მარილი, თქვენ უნდა უნდა გვახსოვდეს, რა მარილი გამოიყენება რადგან თუ არ, თქვენ არ შეგიძლიათ მიიღოთ თქვენი დაგავიწყდათ back გარეშე მარილი, რომ თქვენ გამოიყენება. OK. და ასევე პირადი ამოცნობადი ინფორმაციას. ასე რომ, სოციალური უსაფრთხოების, საკრედიტო ბარათი - ეს საკმაოდ აშკარაა. მაგრამ ზოგჯერ ადამიანი დაგავიწყდეთ ისე, როგორც ეს სამუშაოების, რამდენი ინფორმაცია თქვენ რეალურად უნდა გამოძებნოს ერთი ადამიანი? ვინმე გააკეთა კვლევის შესახებ ეს გზა უკან. და თითქოს, თუ თქვენ გაქვთ სრული სახელი და გვარი, თქვენ ვერ პოულობენ ვინმეს რომ ადვილად. მაგრამ რა, თუ თქვენ გაქვთ სრული სახელი და მათი დაბადების თარიღი? ის არის, რომ საკმარისი იდენტიფიცირება ვინმე კონკრეტულად? რა მოხდება, თუ თქვენ გაქვთ მათი სახელი და ქუჩის მისამართი, რომ ისინი ცხოვრობენ? ის არის, რომ საკმარისი, რათა იპოვოს ვინმე? და ეს მაშინ, როდესაც ისინი ეჭვქვეშ, თუ რა არის პირადი ამოცნობადი ინფორმაცია, და რა უნდა ფიქრი არ აძლევდა მოშორებით? თუ თქვენ მისცეს მოშორებით პირადი ამოცნობადი ინფორმაცია, რომ ვინმე გაძლევთ, თქვენ შესაძლოა მიიღოთ უჩივლა. და ჩვენ ნამდვილად არ გვინდა, რომ. ასე რომ, როდესაც თქვენ აყენებს თქვენი ნახვა out, და თქვენ მართლაც მაგარი დიზაინი, იმედია თქვენ გააკეთა გასაოცარია საბოლოო პროექტი. ნებისმიერი თქვენ ერთგვარი მინდა დააყენოს ის არსებობს. თქვენ გვინდა დავრწმუნდეთ, რომ რაც თქვენ აღების საწყისი მომხმარებელს, თუ ის პირადი ამოცნობადი ინფორმაცია, თქვენ გვინდა დავრწმუნდეთ, რომ თქვენ, რომ მართლა ფრთხილად ეს. Shell საინექციო. OK. Shell საინექციო საშუალებას აძლევს intruder to ხელმისაწვდომობის თქვენი ფაქტობრივი command line თქვენს სერვერზე. და ამიტომ იგი შეუძლია აწარმოებს კოდი რომ თქვენ ვერ აკონტროლებს. ავიღოთ მაგალითად ამ ლამაზი string უფლება აქ. თუ ჩვენ წასვლას ნახვა ისევ და ისევ, მე ვარ ვაპირებ წასვლას კოდი საინექციო. რა ეს არ არის - ასევე, რა ვიყავით ეძებს ადრე. ჩვენ გაქირავების შესახებ დასვა, რაც მას სურს, და ეს იქნება ამობეჭდოთ რაც გაგიხარდებათ. ამიტომ მე ვაპირებ დააყენოს ზარი. რა ეს იმას არის - ეს დაიწყება concatenating. ასე რომ, ნება მომეცით აწარმოებს, რაც ბრძანება პირის გაშვებული ადრე და ჩემი ბრძანება. და მე გაშვებული სისტემაში ბრძანება. და ამ ბოლო სიმები არიან - გვახსოვდეს ის, რაც მე ვესაუბრე ბიჭებს შესახებ, ხოლო თქვენ უნდა encode მას URL მეთოდი. თუ მე აწარმოებს ამ ახლა - მე შენ გაჩვენებ აქ - თქვენ ნახავთ, რომ მე დასრულდა გაშვებული ბრძანება. ეს არის რეალურად ფაქტობრივი სერვერზე რომ ჩემი ნახვა გაშვებულია. ასე რომ, ჩვენ არ გვინდა, რომ, იმიტომ, რომ მე შეიძლება აწარმოებს - ამ სერვერზე არ აფეთქდა. ასე რომ, მე არ მინდა, რომ mess up მისი დის, Marcus სერვერზე. მაგრამ თქვენ შეგიძლიათ აწარმოებს უფრო ბრძანებები რომ სახიფათოა. და პოტენციურად, შეიძლება წაშლა ფაილების, წაშლა დირექტორიების. შემიძლია ამოიღონ გარკვეული დირექტორია, თუ მინდოდა, მაგრამ მე არ მინდა, უნდა გავაკეთოთ, რომ Marcus. ის ლამაზი ბიჭი. მან ნება მომეცით სესხება თავის სერვერზე. ამიტომ მე ვაპირებ მისცეს off კარგი ერთი. ასე რომ, ის, რაც ჩვენ არ გვინდა, რომ გამოიყენოს - ჩვენ არ გსურთ გამოიყენოთ პოსტების ან სისტემა. Eval ან სისტემა საშუალებას გვაძლევს რათა ამ სისტემის ზარები. Eval საშუალებით შეაფასებს. სისტემა ნიშნავს, რაც მე გაიქცა. ის აწარმოებს რაღაც სისტემა. მაგრამ ჩვენ შეგვიძლია outlaw ეს ყველაფერი PHP ისე, რომ ჩვენ არ ვიყენებთ მათ. და ფაილის ატვირთვა. მე ამის გაკეთებას აპირებდა გასაოცარია რამ ფაილის ატვირთვა. მაგრამ როგორც გითხარით, ბიჭები, ჩემი ფაილი upload რამ არ მუშაობს. თუ იყო ფაილის ატვირთვა ახლა - თუ იყო ფაილის ატვირთვა, და ეს სურათი - თქვენ გაქვთ ატვირთეთ რამ ეს სურათი. ეს ჯარიმა. არაფერი ხდება. მაგრამ თუ თქვენ გაქვთ upload ფაილის, მაგალითად, და მომხმარებლის რეალურად ატვირთვები PHP ფაილი ან exe ფაილი ან რამე მოსწონს, რომ, მაშინ შესაძლოა აქვს პრობლემა. ეს მუშაობდა ადრე. სამწუხაროდ ჩემთვის, ეს არ მუშაობს აღარ. თუ მე, მაგალითად, ატვირთეთ ამ ფაილის, მე ვარ არ მიღების ატვირთვის უფლება ფაილი გამო სერვერზე არ მიმდინარეობს აფეთქდა. ასე, რომ ბიჭი მართლაც ჭკვიანი. ასე რომ, ჩვენ არ გვინდა, რომ - მე ვაპირებ აჩვენებს, თუ ბიჭები - OK, ეს არის რამდენიმე მართლაც მაგარი იარაღები. ასე რომ, ეს - წასვლას - თუ ბიჭები Firefox - იმედია თქვენ. არსებობს ორი მოდულების მოუწოდა SQL ინექცია მე და Cross-Site Script Me. მათ გახსნას, როგორც პატარა მხარეს ბარები მხარეს. და თუ იყო წასვლა CS60 მაგალითად - ასე რომ, ეს არ არის ის გამოიყურება ყველა ფორმებს, რომ - იმედია, მე ვერ მიიღებენ უბედურება ამ. მაგრამ OK. აი pin სისტემა. ასე რომ, როდესაც დავიწყო ეძებს ხვრელია სისტემა, პირველ რიგში გავაკეთო არის გახსნა ამ ლამაზი პატარა ინსტრუმენტი მხარეს. და მე ვაპირებ, რათა გამოსცადოს ფორმები ავტომატური თავდასხმები. და მერე რა ეს არ არის ის ნელა ქმნის bunch of ბრაუზერები. აი bunch of ბრაუზერები. და ის ცდილობს თითოეული კომბინაცია ჯვარი ადგილზე სკრიპტირების რომ იქ შესაძლოა არის, თუ ხედავთ მხარეს. და ეს მაძლევს შედეგი სახის რა პასუხი. ყველა გაივლის. ცხადია, რომ ყველა გაივლის. ვგულისხმობ, ისინი მართლაც ჭკვიანი ხალხი იქ. მაგრამ თუ მე აწარმოებს - მე მქონდა ჯერ ადრე, როდესაც მე აწარმოებს ამ სტუდენტთა საბოლოო პროექტების. მე უბრალოდ გაუშვით SQL მიეცეს Me ერთად ყველა სხვადასხვა თავდასხმები. და ის ცდილობს SQL ინექცია ამ pin სერვერზე. ასე რომ, თუ ჩვენ გადახვევა ქვემოთ, მაგალითად, ის ამბობს - ეს არის კარგი, თუ ის დააბრუნებს. ასე რომ, ეს ტესტირება გარკვეული ღირებულებები. და სერვერზე დაბრუნდა კოდი, რომელიც უარყოფითი იყო. ამოიღონ დროებით. ეს არის კარგი. ის ცდილობს, ყველა ეს ტესტები. ასე, რომ თქვენ უბრალოდ აწარმოებს - ვუსურვებ მე ვერ იპოვოს ნახვა რეალური სწრაფი, რომ ნება მომეცით - იქნებ CS50 მაღაზია. Wow, ეს აპირებს მიიღოს გზა გრძელია. მე ნება პირველი გამოცდა არ დასრულდება უფლება. ამიტომ უკმაყოფილო. ასე რომ ეს არის სამი რამ. ეს ინსტრუმენტი არის თავისუფალი. შეგიძლიათ ჩამოტვირთოთ მათ და აწარმოებს მათ თქვენი ნახვა, და ის გეტყვით, თუ თქვენ cross-site სკრიპტირების, თუ თქვენ გაქვთ SQL, თუ თქვენ გაქვთ რაღაც მსგავსი. მე სახის აგერიოთ. რა არის მნიშვნელოვანი - OK, ასე რომ არასოდეს ენდობა შესახებ. როგორიც არ უნდა იყოს მომხმარებლის საშუალებებით თქვენ, რათა დარწმუნდით, რომ თქვენ სანიტარია იგი, თქვენ გაწმენდა, თქვენ შეამოწმოთ უფლება რამ, რომ ის აძლევდა, რაც თქვენ მინდა მას მოგცემთ. ყოველთვის დაზუსტებას, თუ რა ფარგლებში რომ თქვენ რეალურად გამოყენებით. თუ თქვენ იყენებთ რაღაც ჩატვირთვის - მე ვიცი, თქვენ ბიჭები ვაპირებთ გამოვიყენოთ ჩატვირთვის რადგან ის აპირებს წავიდეს ამ მალე კლასის - და დასაწყისში ან რამე მაგდაგვარს, ჩვეულებრივ ეს შეიძლება hacked. და მაშინ არც კი ვიცი. თქვენ უბრალოდ გაშვებული თქვენი ნახვა. და ეს სრულიად უსაფრთხო. და თქვენ დაცემას. ამიტომ მე სათევზაოდ ნამდვილად დასაწყისში. მაგრამ მე მინდა ვუთხრა Pentest Labs. მე ვაპირებ აჩვენებს, თუ ბიჭები რაღაც ე.წ. Pentest Labs. თუ ბიჭები არიან ნამდვილად არის დაინტერესებული რა უსაფრთხოების ნამდვილად არის, იქ ნახვა მოუწოდა Pentest Labs თუ თქვენ ბიჭები წავიდეთ ახლავე. ოჰ, კარგად, ეს არ არის ის. მე უბრალოდ აპირებს, რომ აწარმოებს მოსწონს ეს. Google მეუბნება პასუხს. OK. და ის გვასწავლის, გამოიყენოთ თქვენ - ასე ამბობს, ვისწავლოთ ვებ შეღწევა ტესტირების სწორი გზა. იგი ასწავლის თქვენ - იმედია, თქვენ ეთიკური პირი. მაგრამ ეს გვასწავლის, თუ როგორ შეგიძლიათ შეხედოთ როგორ შეგიძლიათ მიიღოთ შიგნით საიტებზე. და თუ იცით, თუ როგორ შეგიძლიათ მიიღოთ შიგნით საიტები, თქვენ გაიგებთ თუ როგორ უნდა დაიცვას თავს საწყისი მისაღებად შიგნით საიტებზე. ნება მომეცით დიდი ზომით რადგან შესაძლოა თქვენ ბიჭები არ ეძებს ამ უფლებას. დან SQL ინექცია ჭურვი, ისე ერთგვარი როგორ შემიძლია მიიღონ SQL საინექციო ჭურვი. და თქვენ ჩამოტვირთოთ ამ ვირტუალურ მანქანას. და ვირტუალური მანქანა უკვე გააჩნია ერთად ნახვა, რომ თქვენ ვაპირებ ცდილობენ იგი. თქვენ ჩამოტვირთოთ ამ PDF. და ეს გაჩვენებთ ხაზს რა თქვენ უნდა გავაკეთოთ, რაც თქვენ შეამოწმოს. ეს არის ის, რაც თავდამსხმელი რეალურად არ მიიღოს შიგნით ნახვა. და ზოგიერთი ამ პერსონალის გართულებულია. მე მინდა მე შეიძლება წავიდეს მეტი რამ თქვენ ბიჭები. მაგრამ მე შიშობენ, რომ თქვენ ბიჭები არ მაქვს ნამდვილად - ეს არის ის, რაც მე გადავიდა თქვენ ბიჭები, ვებ ტესტირება განთავსების შეღწევადობის ტესტირება. ნამდვილად არ ვიცი, რა SQL არის და რა - Carl ჯექსონის სემინარი გასაოცარია, ისევე. თქვენ ბიჭები არ ვიცი, ერთგვარი რა ეს. მაგრამ თუ ამ ნახვა, და თქვენ ჩამოტვირთვა ეს გაკვეთილები და ამ PDFs, შეგიძლიათ შევხედოთ სახის რა ტერიტორიაზე უსაფრთხოების მართლაც შეღწევადობის ტესტირება, თუ როგორ შეგიძლიათ მიიღოს შიგნით საიტებზე და დაცვა თავს მისგან. ასე რომ, თუ მე სუპერ სწრაფი მიმოხილვა, ეს იქნება თავიდან ავიცილოთ ჯვარი ადგილზე სკრიპტირების. გსურთ გამოიყენოთ htmlspecialchars ყველა დროის შესახებ მასალები რაიმე. აკრძალვა SQL ინექცია. თუ თქვენ, რომ, თქვენ უკვე უკეთესი იქნება, ვიდრე ჰარვარდის იყო როცა ირღვევა. და დარწმუნდით, რომ თქვენი პაროლები არ არის ძირითადი ტექსტი. დარწმუნდით, რომ თქვენ არა მხოლოდ ერთი გზა hash , მაგრამ, რომ თქვენ იყენებთ საძვალე, PHP ფუნქცია, რომ მე აჩვენა თქვენ ბიჭები. ეს გზა, თქვენ უნდა იყოს კარგი. ასევე, თუ თქვენი მეგობრები, ნება თქვენ, აწარმოებს SQL მიეცეს Me თავიანთ ვებგვერდებზე. აწარმოებს cross-site სკრიპტირების თავიანთ ვებგვერდებზე. და დაინახავთ, რომ ბევრი ამ საიტებზე აქვს ტონა ხარვეზებს. ეს წარმოუდგენელი რამდენი ხალხი დაივიწყებს to სანიტარია მონაცემთა ბაზები ან მიიღოს დარწმუნებული რა პირის შესაყვანი არ არის script კოდი. OK. მე სახის დასრულდა ნამდვილად დასაწყისში. მაგრამ თუ ვინმეს აქვს რაიმე შეკითხვები არაფერს, შეგიძლიათ გადაღება me კითხვაზე. ჰო. წავიდეთ, წავიდეთ. აუდიტორია: მე უბრალოდ მინდა გთხოვოთ, ახსნით, თუ ფაილი ატვირთეთ ზუსტად სამუშაოები. ლუჩიანო ARANGO: ჰო. ნება მომეცით გაჩვენოთ ფაილი ატვირთეთ რეალური სწრაფი. ასე რომ, ფაილის ატვირთვა - პრობლემა ვიტ ფაილის ატვირთვა ახლა ის არის, რომ - მე ვაპირებ გახსნა კოდი, ასე რომ თქვენ ბიჭები იხ. კოდი კულისებში. და ის ატვირთვა. აი კოდი განთავსების ფაილის ამტვირთავისთვის. ჩვენ ვცდილობთ, რომ წასვლას ამ დირექტორია აქ. და ჩვენ ვცდილობთ, კიდევ ერთხელ შეყვანის ფაილი isset ფაილი - ასე რომ, როდესაც არსებობს ფაილი ფაილი, რომ image, მაშინ ჩვენ ვცდილობთ, რომ გადატანა აქ. ჩვენ დაიბრუნოს ფაილი აქ. მეთოდი POST ტიპის, სურათი, ფაილი. და გავაგზავნეთ ამ ფაილის. და შემდეგ კიდევ მივიღებთ, ასე რომ კიდევ ერთხელ ფაილი აქვს იმიჯი, ჩვენ ვცდილობთ გამოგვიგზავნოთ ამ დირექტორია. პრობლემა ის არის, რომ საიტი არ არის გაქირავების ჩემთვის წასვლა ამ დირექტორიაში, იმიტომ, რომ მას არ სურს თვალი დაბრუნდეს. ეს არ მინდა მე წასვლა - მე უნდა წასვლა - ასე რომ აქ ატვირთვა. აი images. მე უნდა წავიდეთ ყველა გზა უკან დაწყებული და დააყენოს ის არსებობს და შემდეგ წავიდეთ და დააყენა იგი დირექტორია. ასე რომ, თუ მე გაშვებული ტერმინალის ფანჯარა, და მინდოდა გადაადგილება ფაილი - [INAUDIBLE] ხედავთ მას. თუ მინდოდა გადაადგილება ფაილი, მაქვს დააყენოს ფაილის სახელი და შემდეგ სრული გზა მინდა გაგზავნას მას. და შემდეგ სერვერზე არ არის გაქირავების me დაბრუნდეს. და ამიტომ არ აძლევენ ჩემთვის მისაღებად რომ ფაილი. მაგრამ ჩვეულებრივ - ასე რომ კოდი ატვირთვა ფაილი. ასე რომ, ჩვეულებრივ, რა მოხდება, ის არის, რომ პირი არ შემოწმების თუ ჩემი ფაილი მთავრდება. jpeg, ამიტომ სურს შეამოწმოს. ნება მომეცით გახსენით მაგალითად ძალიან რეალური სწრაფი. OK. ამ პირის უფლება - ასე მაგალითად ორი ამოწმებს თუ preg_match - აქ არის აქ - დარწმუნდით, რომ მთავრდება PHP, რომელიც არის კარგი. ეს არის კარგი. მაგრამ არსებობს რეალური დიდი პრობლემა. ეს არის კარგი. მაგრამ თუ იყო დააყენოს ფაილი სახელად myfavoritepicture.php.jpeg, შემეძლო კვლავ პოტენციურად დავაღწიოთ jpeg და აწარმოებს it.k რომ PHP-ის სახიფათო. თქვენ არ მინდა პირი შეძლებს აწარმოებს კოდი თქვენს ნახვა. მაგრამ შემდეგ. Jpeg საშუალებას მას გაიაროს. იდეა არის ის, რაც თქვენ ნამდვილად გსურთ არ მიიღოს ფაილი, A. მაგრამ, OK, თუ რა ნამდვილად გსურთ ამის გაკეთება დარწმუნდით, რომ წაიკითხოთ მთელ მსოფლიოში. და არაფერი. Php მას. არ არსებობს. Php წელს მთელი ფაილის სახელი. აუდიტორია: მაგრამ თქვენ ვერ დააყენა. jpeg წლის ბოლომდე. სერვერები ჯერ კიდევ აწარმოებს კოდი. ლუჩიანო ARANGO: არა, ეს არ აწარმოებს დასაწყისში. თქვენ უნდა შებრძანდეთ თუ თქვენ - აუდიტორია: ასე რომ, ჩვენ - OK, მხოლოდ ერთი კომპლექტი, რომელიც მოიცავს - ლუჩიანო ARANGO: ჰო. აუდიტორია: OK. ლუჩიანო ARANGO: ჰო. OK. ნებისმიერი სხვა კითხვები? OK. მე ვაპირებ, რომ დატოვონ ეს მდე და დასალაგებლად ცდილობენ თუ თქვენ ბიჭები შეიძლება - მეორე პირობა არის ცოტა მეტი რთული იმიტომ, რომ საჭიროებს ბევრად მეტი ცოდნა SQL, ვიდრე უბრალოდ დაწყებული ცოდნა ვებ SQL და რა JavaScript არის. მაგრამ მე ვაპირებ ცდილობენ, რომ ეს up, და იმედია თქვენ ბიჭები შეისწავლიან ამ და ცდილობენ მიიღოს peek at რა შეგიძლიათ გააკეთოთ, და რამდენი მაგალითები შეგიძლიათ მიიღოთ მეშვეობით. ვინმეს აქვს რაიმე სხვა კითხვები ამის შესახებ? წავიდეთ წინ. ჰო, სროლა, სროლა. Yeah, წავიდეთ წინ. წავიდეთ წინ. აუდიტორია: OK. ასე გავიგე, თუ როგორ Magic შეთავაზებები არ შესანარჩუნებლად საკმარისი. ლუჩიანო ARANGO: რა - Magic შეთავაზებები? აუდიტორია: Yeah. ასე რომ, იგი დასძენს, - ასე როდესაც თქვენ input რაღაც, ის ყოველთვის დასძენს quotes. ლუჩიანო ARANGO: ჰო. ჰო. OK. აუდიტორია: და მერე მიუხედავად იმისა, რომ მუშაობდა, მაგრამ შემდეგ მე ჩხრეკა it up. და ეს განაცხადა, რომ ეს არ არის კარგი. მაგრამ მე არ ვარ დარწმუნებული, თუ რატომ. ლუჩიანო ARANGO: ჰო. აუდიტორია: არ გამოიყენოთ Magic შეთავაზებები, რადგან ეს არ არის უსაფრთხო. ლუჩიანო ARANGO: OK. ასე Magic შეთავაზებები არის, როდესაც თქვენ ჩადეთ SQL და ეს უკვე დასძენს გაცემა თქვენ. აუდიტორია: იგი ყოველთვის დასძენს შეთავაზებები გარშემო რასაც თქვენ დააყენა სისტემაში ლუჩიანო ARANGO: ჰო. ასე რომ, პრობლემა რომ არის, რომ - მე შევხედოთ - აუდიტორია: როგორ იგი შეიძინოს SQL განცხადება? ან ვფიქრობ, ეს შეიძლება იყოს როგორიცაა გაცემა შერჩევა. ლუჩიანო ARANGO: ჰო, თქვენ უნდა კარგი შეთავაზებები SQL. აუდიტორია: არა, მაგრამ სერვერზე აკეთებს იგი თქვენთვის. ლუჩიანო ARANGO: ეს პატარა შეთავაზებები სწორედ აქ, ამ პატარა შეთავაზებები? აუდიტორია: Yeah. ლუჩიანო ARANGO: ჰო. პრობლემა ის არის, რომ თქვენ შეგიძლიათ კომენტარის ბოლო - OK, ასე რომ შემიძლია არის შემიძლია კომენტარის დამატება out - მოდით შევხედოთ - ნება მომეცით გახსნა ტექსტის რედაქტირება ფაილი. ნება მომეცით უბრალოდ შექმნათ აქ პირდაპირ. OK. შეგიძლიათ ბიჭებს ვხედავ, რომ აშკარად? რა შემიძლია მე ვერ კომენტარს out ბოლო ერთი. ეს კომენტარის ბოლო ერთი. და შემდეგ მე დააყენა აქ, დააყენა ყველა მუქარის პერსონალის აქ. ასე რომ, მომხმარებელს ფაქტიურად შესაყვანი, არა? მომხმარებელს არ შესაყვანი რამ, არა? ეს არის ის, რაც მე ვაპირებ შეყვანის როგორც პირი ცდილობს შიგნით. მე ვაპირებ მა - რომ ერთი ბრჭყალებით. უბრალოდ squiggly შეცდომა. და მერე რა კოდი აპირებს - ვწუხვარ, მე ვაპირებ ამ გარეთ. რა კოდი აპირებს არის ის აპირებს პირველმა დაამატოდ ციტატა ნიშნები აქ. და ის აპირებს დაამატოთ ბოლო ბრჭყალებით ასევე. და ის ასევე აპირებს დაამატოთ ბოლო ბოლო ბრჭყალებით. მაგრამ მე კომენტარს ამ ციტატა აღნიშნავს გარეთ, რათა მათ არ აწარმოებს. და მე დამთავრებული ეს ციტატა აღსანიშნავად აქ. ნუ გესმით? თქვენ დაკარგა? შემიძლია კომენტარს ბოლო ციტატა მარკა და იზრუნოს პირველი ბრჭყალებით. აუდიტორია: და მხოლოდ დასრულება პირველი. ლუჩიანო ARANGO: ჰო. და მხოლოდ დასრულება პირველი. ჰო, მართალია. ის, რაც შემიძლია. ჰო. ნებისმიერი სხვა სახის კითხვებით ასე? ეს არის დიდი კითხვა. არა, დიახ, შესაძლოა. იმედია, თქვენ ბიჭები იქნება ერთგვარი მიიღოს უფრო გრძნობა, როდესაც თქვენ შესწავლა SQL და რამ, როგორიცაა, რომ. მაგრამ დარწმუნდით, რომ თქვენ - შენარჩუნება ეს ინსტრუმენტები watch. სამწუხაროდ, ეს საშუალებები აქ. ეს ინსტრუმენტი არის დიდი. თუ ვინმეს აქვს რაიმე შეკითხვები, ასევე შეგიძლიათ მომაწოდეთ. ეს არის ჩემი ნორმალური ელ. და ეს არის ჩემი მუშაობის ელ, რომელიც როდესაც ვმუშაობ SEAS. OK, მადლობა. Thanks, ბიჭები. თქვენ კარგი წასვლა. თქვენ არ უნდა დარჩეს აქ. არ clap. რომ უცნაურია. OK, მადლობა, ბიჭები.