LUCIANO Arango: Εντάξει, παιδιά. Το όνομά μου είναι Luciano Arango. Είμαι ένας δευτεροετής φοιτητής στο Adams House. Και θα πάμε να μιλάμε για ασφάλεια web ενεργητικής άμυνας. Γι 'αυτό και εργάζονται για το Γραφείο Πληροφοριών Ασφάλεια στο SEAS. Και το καλοκαίρι, μου υπό περιορισμό σε SeguraTec, η οποία ήταν μια πληροφορία Η εταιρεία ασφαλείας που εξυπηρετούνται για την Τράπεζα της Κολούμπια. Αυτό είναι ως επί το πλείστον όταν έμαθα ό, τι έχω μάθει μέχρι τώρα. Και έτσι ένα μέρος του υλικού που είμαστε πρόκειται να πάει πέρα ​​σήμερα, δεν έχουμε πραγματικά μίλησε στην τάξη. Αλλά θα το κάνουμε σύντομα. Είναι πρόκειται να είναι όπως SQL, JavaScript. Και δεν έχουν πραγματικά περάσει από πάνω του. Γι 'αυτό να ταξινομήσετε της πτήσης μέσα από αυτό, και που ίσως δεν γνωρίζετε κάποια πράγματα. Αλλά σύντομα, θα το μάθετε. Και όλα θα έχουν νόημα. Επίσης, ένα άλλο πράγμα - μείνετε δεοντολογίας. Μερικά από τα πράγματα που μπορείτε να μάθετε, σας θα μπορούσε να χρησιμοποιήσει σε μη ηθικές τρόπους. Αν είναι δική σας, σίγουρα να δοκιμάσετε. Σίγουρα σας παρακινήσει παιδιά να δοκιμάσουν τη δική τους διακομιστές σας, δοκιμάστε πηγαίνει στο εσωτερικό τους. Δείτε αν μπορείτε να τα διαπεράσει, αν μπορείτε να πάρετε μέσα τους. Αλλά δεν είναι κάποιος άλλος είναι. Οι μπάτσοι δεν ήθελα πραγματικά τα ανέκδοτα και το σύνολο, βάζουμε αυτό εδώ. Ήμασταν Messing περίπου. Παίρνουν πραγματικά θυμωμένος. Έτσι, το κεφάλι πάνω σε αυτή την ιστοσελίδα. Έχω άνοιξε εδώ. Αυτή είναι μια ιστοσελίδα, και έχει ένα σωρό παραδείγματα. Αυτό που συμβαίνει είναι ότι το πρώτο παράδειγμα είναι είδος πρόκειται να είναι πολύ πιο εύκολο από το τελευταίο παράδειγμα κατά μία έννοια ότι το πρώτο παράδειγμα είναι εντελώς ανασφαλής. Και το τελευταίο είναι το είδος του τι φυσιολογικό άτομο διαδικτυακή ασφάλεια θα κάνει. Αλλά μπορείτε ακόμα να ταξινομήσετε του να πάρει γύρω από αυτό. Και θα πάμε να επικεντρώνονται σε ένα και δύο παραδείγματα ένα και δύο. OK. Ας ξεκινήσουμε με cross-site scripting. Το JavaScript τρέχει σε browser του πελάτη. Είναι μια γλώσσα προγραμματισμού που χρησιμοποιείτε να τρέχει στον browser του πελάτη, ώστε δεν χρειάζεται να ενημερώσετε την ιστοσελίδα και να πάει πίσω στο διακομιστή. Έχετε το τρέξιμο. Για παράδειγμα, το Facebook, δεν έχετε για να φορτώσετε την ιστοσελίδα για το νέο καθεστώς ενημερώσεις για να καταλήξει. Είναι χρησιμοποιώντας JavaScript για να δημιουργήσει όλα αυτά τα πράγματα. Έτσι, μπορούμε να εισφέρει κακόβουλο κώδικα JavaScript σε ιστοσελίδες. Και με αυτόν τον τρόπο, όταν θα στείλουν ένα σύνδεσμο για κάποιος, θα μπορούσε το είδος να το στείλετε με μερικά του κώδικα που θέλουμε. Υπάρχει επίμονη και μη-επίμονο JavaScript - επίμονη και μη-επίμονο cross-site scripting, εννοώ. Και η διαφορά είναι ότι η επίμονη Είναι JavaScript που θα είναι αποθηκεύονται στην ιστοσελίδα. Και μη επίμονη θα είναι JavaScript ότι θα συμβεί στην πραγματικότητα μόνο μία φορά. Έτσι, ας δούμε ένα παράδειγμα πραγματικά γρήγορα. OK. Έτσι, αυτή την ιστοσελίδα, απλά, τίποτα δεν συμβαίνει εδώ. Και θα πάμε να προσπαθήσουμε να εισάγετε κάποια JavaScript. Έτσι, ο τρόπος που αρχίσετε να γράφετε JavaScript είναι να αρχίσουμε με την αρχή σενάριο. Και θα το κλείσει με το σενάριο. Είμαστε απλώς πρόκειται να τεθεί ένα μήνυμα - Θα σας δείξω - συναγερμού. Alert είναι μια λειτουργία που JavaScript χρησιμοποιεί για να εμφανίσει κάτι. Ας το προσπαθήσουμε πραγματικά γρήγορα. Πάω να πάει, γεια σου σε εγρήγορση. Λοιπόν, ξέχασα να πω - OK. Έτσι, αυτό είναι απλό. Βάζουμε JavaScript σε μια ιστοσελίδα, και ήρθε. Και αυτό το είδος της συμβαίνει μόνο στην ιστοσελίδα μας, έτσι δεν είναι; Φαίνεται λοιπόν ότι δεν είναι ένα πρόβλημα, σωστά; Θέλω να πω, πώς θα μπορούσατε να χρησιμοποιήσετε κακοπροαίρετα; Έτσι, ο τρόπος που οι hackers κάνουν αυτό είναι πραγματικά απλή. Θα πάμε για να το αρπάξει. Μπορούν να στείλετε αυτό το σύνδεσμο σας. Αν θα στείλετε αυτό τον σύνδεσμο σας τώρα, και να το ανοίξει, πρόκειται να πω, γεια, λέγοντας ότι η ιστοσελίδα μου σας λέει γεια. Και έτσι, αν ήμουν στη θέση να πω κάτι λίγο πιο έξυπνη, αν σηκώσει ένα JavaScript καθηκόντων I είδος ήδη έγραψε - αλλά αν το δει κανείς, θα πάω υπερ πριν το έγραψα. Έτσι θα πάμε για να ορίσετε ένα χρονικό όριο. Εμείς πάμε να περιμένουμε για ένα ζευγάρι δευτερόλεπτα. Στην πραγματικότητα, θα πάμε να περιμένουμε, αν Δεν είμαι λάθος, πέντε δευτερόλεπτα. Αυτό ισχύει σε χιλιοστά του δευτερολέπτου. Και τότε τι θα πάμε να κάνουμε είναι να είμαστε πρόκειται να προειδοποιήσει ότι η σύνδεση Εξαντλήθηκε το χρονικό όριο για να συνδεθείτε ξανά Και θα πάμε να αλλάξετε τη θέση σε μια διαφορετική θέση. Έτσι, αν μπορώ να στείλω αυτή την ιστοσελίδα σε κάποιον, από όπου και αν πρόκειται να είναι περιήγηση γύρω, ηρεμία. Τίποτα δεν συμβαίνει. Και σε πέντε δευτερόλεπτα, πρόκειται να πω, σύνδεσής σας έληξε. Παρακαλούμε συνδεθείτε ξανά Μόλις κάνετε κλικ στο κουμπί OK, Πάω να να τους σε μια άλλη ιστοσελίδα. Προφανώς, η ιστοσελίδα πρόκειται να είναι παρόμοιο με το δικτυακό τόπο που ήταν πριν. Και θα πάμε να συνδεθείτε τους διαπιστευτήρια στην ιστοσελίδα μου, αντί να ιστοσελίδα τους. Και έτσι μπορώ να στείλω ανθρώπους μια e-mail με αυτό το σύνδεσμο. Λέω, OH, εδώ είναι μια σύνδεση. Αυτή είναι μια τράπεζα, για παράδειγμα. Το λέω, εδώ, πηγαίνετε σε αυτό το σύνδεσμο. Και τη στιγμή που θα το στείλει, είναι πρόκειται να περιήγηση γύρω. Μπορώ να περιμένετε για 15 δευτερόλεπτα, 20 δευτερόλεπτα και στη συνέχεια να εμφανιστεί ότι μπορείτε να συνδεθείτε ξανά υπογράψουν ξανά. Εσείς μπορείτε να το δοκιμάσετε με πολύ περισσότερα πράγματα. Είναι περίπλοκο, επειδή εσείς Δεν έχω δει JavaScript, έτσι ίσως Δεν ξέρω ορισμένες λειτουργίες. Αλλά το μόνο που έχετε να κάνετε είναι να ξεκινήσετε με το σενάριο, τελειώνει με το σενάριο. Και θα μπορούσατε να βάλετε τίποτα στη μέση. Alert είναι μια λειτουργία, περιμένετε. Παράθυρο τοποθεσία σας παίρνει σε μια νέα θέση. Αλλά μπορείτε να κάνετε πολύ περισσότερα. Και έτσι η ιδέα είναι ότι παίρνουμε ότι μακριά. Αν πάω στο παράδειγμα δύο, και να θέσει σε αυτό ίδιο κωδικό, είναι δεν πρόκειται να λειτουργήσει. Γι 'αυτό εκτυπώνεται πάντα έξω επειδή τι αυτή την ιστοσελίδα αρχικά δεν είναι αν βάλω κάτι εδώ, θα μπορείς να το εκτυπώσετε εδώ. Έτσι είναι δεν εκτυπώνει τίποτα. Αυτό το παράδειγμα είναι στην πραγματικότητα έλεγχο για να δούμε αν το σενάριο δεν υπάρχει. Οπότε ναι, προχωρήστε. Ρωτήστε εμένα. ΚΟΙΝΟ: Δεν είναι αποστολή παίρνει ή μετά από αίτηση; LUCIANO Arango: Ναι. από όπου και αν την αποστολή ενός αιτήματος get. ΚΟΙΝΟ: Είναι; LUCIANO Arango: Ναι. Επίσης, τα προγράμματα περιήγησης χρησιμοποιούν μετά τα αιτήματα. Αλλά εγώ προσπαθώ να δείξω τις αιτήσεις get έτσι ώστε να μπορούμε να δούμε τι είναι πραγματικά συμβαίνει. Και έτσι, αν κοιτάξουμε αυτόν τον κώδικα - γι 'αυτό δεν λειτουργεί πια. Και αν ρίξουμε μια ματιά σε αυτόν τον κώδικα, πρόκειται να είναι το παράδειγμα δύο. Τι αυτό το άτομο να κάνει, το πρόσωπο στο τέλος αυτού του προγράμματος περιήγησης - ανοίξει, OK - αντικαθιστά το σενάριο λέξη. Αυτή είναι η PHP, το οποίο εσείς θα μπορούσε έχουν δει λίγο ακόμα. Είναι απλώς την αντικατάσταση της script λέξη με το όνομα. Έτσι, όμως, αν πάω μπροστά και μόλις τεθεί σε - αν πάρω ξανά τον κωδικό μου, και θα πάω να το τροποποιήσετε μόνο ένα μικρό κομμάτι. Αντί του σεναρίου, είμαι πρόκειται να αλλάξει αυτό για το σενάριο με κεφαλαίο R. Και θα πάμε να δούμε αν αυτός ο κώδικας λειτουργεί. Γι 'αυτό δεν το εκτυπώσετε, η οποία είναι ένα καλό σημάδι. Και ελπίζουμε ότι σε δύο δευτερόλεπτα, πρόκειται να εμφανιστεί. Η σύνδεσή σας έληξε. OK. Κανένα πρόβλημα. Έτσι, τον έλεγχο για το σενάριο θα μπορούσε όχι κατ 'ανάγκη να λειτουργήσει. Το πρόσωπο - μπορεί επίσης να ελέγξετε για το σενάριο κεφαλαία γράμματα, script πεζά, περίπτωση str συγκρίνουν, να βεβαιωθείτε ότι είναι το ίδιο. Όμως, ο χάκερ μπορεί να κάνει ακόμα είδος αυτό κάναμε σε Vigenere όταν μετακομίσαμε χαρακτήρες πίσω ένα ζευγάρι, προχωρήσουμε. Και μπορώ να καταλάβω πώς να θέσει script πίσω εκεί έτσι ώστε να μπορεί να εισφέρει ότι το σενάριο. Έτσι, αυτό που θέλετε να χρησιμοποιήσετε είναι htmlspecialchars να προστασία της ιστοσελίδας σας. Και τι είναι αυτό που κάνει είναι να κάνει βέβαιος ότι αυτό που βάζετε σε - για παράδειγμα, οι τιμές ή αυτό μεγαλύτερη ή μικρότερη από - αντικαθίσταται με κάτι ότι δεν θα είναι - επιτρέψτε μου να μεγεθύνετε εδώ - το πραγματικό εμπορικό. Θα αντικαταστήσει αυτές τις ειδικές HTML χαρακτήρες που θα δούμε όταν είμαστε μιλάμε - Ω, αυτό πρόκειται να με πάρει πίσω - αυτοί οι χαρακτήρες εδώ. Αυτά σημαίνουν ότι κάτι έρχεται. Για HTML, εκείνη αρχίζει βραχίονα μας λέει ότι κάτι HTML σχετικές έρχεται. Και θέλουμε να απαλλαγούμε από αυτό. Δεν θέλετε να βάλετε σε μια HTML website.k Δεν θέλουμε ο χρήστης να μπορούμε να βάλουμε κάτι στην ιστοσελίδα τους που μπορεί να επηρεάσει την ιστοσελίδα τους, όπως script ή HTML ή κάτι τέτοιο. Αυτό που είναι σημαντικό είναι ότι μπορείτε απολυμάνετε την είσοδο του χρήστη. Έτσι, οι χρήστες μπορεί να εισάγει πολλά πράγματα. Αυτός μπορεί να εισάγει ένα σωρό πράγματα για να δοκιμάσετε για να ξεγελάσουν το πρόγραμμα περιήγησής σας σε ακόμα εκτέλεση αυτού του κώδικα δέσμης ενεργειών. Τι θέλετε να κάνετε είναι να μην εξετάσουμε μόνο για το σενάριο, αλλά κοιτάξτε για τα πάντα ότι θα μπορούσε να είναι κακόβουλο. Και htmlspecialchars θα το κάνουμε αυτό για σας, έτσι ώστε να μην έχουν να ανησυχείτε για αυτό. Αλλά μην προσπαθήσετε να το κάνετε μόνοι σας είδος με τον δικό σας κώδικα. Είναι όλοι σαφείς σχετικά XSS; OK. Ας πάμε στο SQL ένεση. Έτσι, SQL ένεση είναι ίσως η υπ 'αριθμόν ένα θέμα ευπάθειας σε διάφορες ιστοσελίδες. Θέλω να πω, ένα καλό παράδειγμα - Ήμουν μόλις έρευνα περισσότερο για αυτό το πράγμα. Και βρήκα αυτό το φοβερό άρθρο, όπου Είδα ότι το Χάρβαρντ δεν τηρήθηκε, ήταν hacked. Και αναρωτιόμουν, καλά, πώς θα το κάνουν; Χάρβαρντ είναι το πιο φοβερό, οι περισσότεροι εξασφαλίσει πανεπιστήμιο ποτέ. Σωστά; Λοιπόν, για να παραβιάσει τους διακομιστές, οι hackers χρησιμοποιείται τεχνική που ονομάζεται SQL ένεση. Έτσι, αυτό συμβαίνει σε καθημερινή βάση. Οι άνθρωποι ξεχνούν να λάβουν υπόψη για ένεση SQL. Harvard κάνει. Νομίζω ότι λέει εδώ, Princeton, Stanford, Cornell. Λοιπόν, πώς μπορούμε - ναι, ποιο είναι αυτό το SQL ένεση που φέρνει όλα αυτά άτομα κάτω; OK. Έτσι SQL είναι μια γλώσσα προγραμματισμού που που χρησιμοποιούμε για να έχουν πρόσβαση σε βάσεις δεδομένων. Αυτό που κάνουμε είναι να επιλέξετε - έτσι ώστε ό, τι αυτό έχει αυτή τη στιγμή είναι να επιλέξετε τα πάντα, από τον πίνακα. SQL, αλλάζει σε αυτές τις βάσεις δεδομένων που έχουν πίνακες γεμάτο πληροφορίες. Έτσι, επιλέξτε τα πάντα, από τους χρήστες όπου το όνομα είναι το όνομα χρήστη. Σωστά; Αρκετά απλό. Η ιδέα της εισαγωγής SQL είναι ότι εισάγετε κάποιο κακόβουλο κώδικα που θα εξαπατήσει τον server σε κάτι τρέχει διαφορετικά από ό, τι αρχικά έτρεχε. Έτσι, ας πούμε για το όνομα χρήστη, βάζουμε ή 1 ισούται με 1. Έτσι βάλαμε ή 1 ισούται με 1. Ο τρόπος που θα διαβάσει θα είναι πλέον επιλογή από τους χρήστες, τα πάντα, από χρήστες - αυτό είναι το παν - όπου όνομα είναι το όνομα χρήστη, αλλά όνομα είναι ή 1 ισούται με 1. Έτσι, το όνομα δεν είναι τίποτα ή 1 ισούται με 1. 1 ισούται με 1 είναι πάντα αλήθεια. Έτσι, αυτή η πληροφορία θα επιστρέφει πάντα από τους χρήστες. OK. Εμείς δεν χρειάζεται να έχουν την σωστό όνομα χρήστη. Μπορούμε να έχουμε ακριβώς ό, τι θέλουμε, και θα επιστρέψει πληροφορίες ότι χρειαζόμαστε. Ας δούμε ένα άλλο παράδειγμα. Αν έχουμε επιλέξει τα πάντα, από το χρήστη, όπου όνομα είναι χρήστες ΠΙΝΑΚΑΣ DROP - έτσι τι νομίζεις ότι αυτό θα κάνω αν βάλω το όνομα χρήστη ως χρήστες DROP TABLE; Όποιος έχει μια ιδέα; Ναι. ΚΟΙΝΟ: Δεν πρόκειται να πω να απορρίπτουν όλα τα τραπέζια. LUCIANO Arango: Δεν πρόκειται να μας πει να απορρίπτουν τα πάντα στην ιστοσελίδα, πάντα στη βάση δεδομένων. Και αυτό που οι άνθρωποι χρησιμοποιούν αυτό για - έτσι Πάω να σας δείξω παιδιά. Θα απενεργοποιηθεί πτώση τους πίνακες γιατί δεν θέλετε παιδιά να ρίξει τα τραπέζια μου. Ας ρίξουμε μια ματιά σε αυτό. Έτσι, αυτό απλά τραβάει την πληροφορία για ένα συγκεκριμένο πρόσωπο. Επομένως, πώς θα ξέρω αν αυτό είναι επηρεάζονται από την ένεση SQL. Εμείς πάμε για να ελέγξει πραγματικά γρήγορα αν μπορούμε να βάλουμε κάτι - επιτρέψτε μου να αντιγράψετε αυτόν τον κώδικα. Πάω να πάει πέρα ​​από αυτό σε ένα δευτερόλεπτο. Πάω να θέσει ρίζα και 1 ισούται με 1. Το δικαίωμα αυτό εδώ, αυτό σύμβολο ποσοστού 23 - αυτό που πραγματικά είναι, αν εξετάσουμε εδώ στο - ο τρόπος HTML παίρνει σε αριθμούς, αν ρίξτε μια ματιά στο όταν έβαλα σε ένα χώρο εδώ - αν ήταν στο διάστημα κάτι εδώ, μετατρέπεται σε επί τοις εκατό 2. Μήπως εσείς βλέπετε αυτό το δικαίωμα εδώ όταν έβαλα σε ένα χώρο; Ο τρόπος που λειτουργεί είναι ότι μπορείτε μόνο να στείλτε τιμές ASCII μέσω HTML. Έτσι ώστε να αντικαθιστά, για παράδειγμα, ένα χώρο με 20 τοις εκατό. Δεν ξέρω αν εσείς το έχω ξαναδεί. Αντικαθιστά ένα hashtag με ποσοστό 23. Χρειαζόμαστε ένα hashtag στο τέλος του ή δήλωση έτσι ώστε να μπορούμε να πούμε το βάση δεδομένων για να ξεχάσετε να σχολιάσει τις Αυτό το τελευταίο ερωτηματικό στο τέλος. Θέλουμε να μην το σκέφτομαι. Εμείς απλά θέλουμε να τρέξει τα πάντα ότι έχουμε εκ των προτέρων και σχολιάζουν ότι έξω. Ας ρίξουμε μια ματιά σε αυτό. Έτσι, εάν επρόκειτο να βάλει κάτι λάθος - ας πούμε για παράδειγμα, έβαλα 2 ίσον 1, δεν μου δώσει τίποτα. Όταν έβαλα το 1 ισούται με 1, και το κάνει επιστρέψει κάτι, αυτό μου λέει ότι αυτό είναι ευπαθές σε μια ένεση SQL. Τώρα ξέρω ότι ανεξάρτητα από Έβαλα μετά από αυτό - και, για παράδειγμα, DROP ΠΙΝΑΚΕΣ ή κάτι τέτοιο σίγουρα θα λειτουργήσει. Ξέρω ότι είναι ευάλωτο σε SQL ένεση γιατί ξέρω ότι κάτω από την κουκούλα, είναι να αφήσει να Θέλω να κάνω το 1 ισούται με 1 πράγμα. Εντάξει; Και αν κοιτάξουμε αυτές τις άλλες, νούμερο δύο και το νούμερο τρία, είναι πρόκειται να κάνει λίγο περισσότερο έλεγχο κάτω από την κουκούλα του τι είναι. Έτσι όποιος επιτρέπει την πτώση τίποτα ακόμα ή δοκιμάσει; Μήπως εσείς το είδος του να πάρει SQL ακόμα; Επειδή ξέρω ότι εσείς δεν έχετε δει ακόμα, γι 'αυτό είναι το είδος της σύγχυση για σας παιδιά. Ας ρίξουμε μια ματιά. Έτσι τι είναι ο τρόπος για την πρόληψη της SQLI; OK. Έτσι, αυτό είναι πολύ σημαντικό, γιατί παιδιά σίγουρα θέλετε να αποτρέψετε αυτό σας ιστοσελίδες. Αν όχι, όλους τους φίλους σας πρόκειται να κάνει πλάκα με εσάς, όταν πέφτουν όλα τραπέζια σας. Έτσι, η ιδέα είναι ότι μπορείτε να επιδιορθώσετε το SQL με ένα συγκεκριμένο τρόπο, ενώ σας ταιριάζει ποιες είναι οι είσοδοι του χρήστη με μια ορισμένη σειρά. Έτσι, ο τρόπος με τον οποίο δουλεύει αυτό είναι σας προετοιμάσει τη βάση δεδομένων. Μπορείτε να επιλέξετε το όνομα, το χρώμα και τις θερμίδες από μια βάση δεδομένων που ονομάζεται φρούτο. Και στη συνέχεια, όταν θερμίδες είναι λιγότερο από ό, τι, και βάζουμε ένα ερωτηματικό εκεί λέγοντας ότι θα πάμε με την είσοδο κάτι σε ένα δευτερόλεπτο. Και το χρώμα ισούται, και βάζουμε μια ερώτηση σήμα λέγοντας ότι θα πάμε να κάτι εισόδου σε ένα δευτερόλεπτο, καθώς και. Εντάξει; Και τότε θα το εκτελέσει, βάζοντας σε 150 και κόκκινο. Και αυτό θα ελέγξει βέβαιος ότι αυτά τα δύο - αυτός ο πίνακας θα ελέγξει ότι αυτά δύο είναι ένας ακέραιος και ότι αυτό είναι μια συμβολοσειρά. Στη συνέχεια πάμε και εμείς φέρω όλα, το βάζουμε σε κόκκινο χρώμα. Αυτό σημαίνει ότι όλα τα φέρω. Αυτό σημαίνει ότι έχουμε εκτελέσει πράγματι την SQL δήλωση και το βάζουμε πίσω στο κόκκινο. Εδώ κάνουμε το ίδιο, αλλά εμείς κάνει το ίδιο για κίτρινο. Και εμείς φέρω όλους. Και με αυτόν τον τρόπο, έχουμε αποκλείσει τον χρήστη από το να είναι σε θέση να κάτι εισόδου ότι δεν είναι αυτό που καθορίζεται, ένα string ή ένας ακέραιος, για παράδειγμα. Μιλούσα νωρίτερα για στηρίζονται σε άλλους. Όταν εσείς ξεκινήσετε το έργο σας, είστε σίγουρα πρόκειται να χρησιμοποιήσετε bootstrap ή κάτι παρόμοιο. Έχετε παιδιά χρησιμοποιούνται ποτέ Wordpress; Μάλλον εσείς έχετε χρησιμοποιήσει Wordpress πιο πιθανό. Έτσι, το πρόβλημα με τη χρήση τα πράγματα των άλλων ανθρώπων - Είμαι ακριβώς πρόκειται να Google πραγματικά γρήγορα Wordpress ευπάθεια. Αν έχω τραβήξει αυτό μέχρι τώρα - I κυριολεκτικά έκανε δύο δευτερολέπτων Google. Μπορούμε να δούμε ότι Wordpress - Αυτό χρονολογείται από τον Σεπτέμβριο του '12. 26 ενημερώνεται. Η προεπιλεγμένη ρύθμιση του Wordpress πριν από 3.6 δεν εμποδίζει το ορισμένες προσθήκες, που θα μπορούσε να καταστεί ευκολότερο για επιθέσεις cross-site scripting. Έτσι, μια γρήγορη ιστορία, κάποτε δουλεύαμε με - έτσι ήμουν, το καλοκαίρι, δουλεύοντας ένα οικοτροφείο. Και δουλεύαμε με το είδος του σαν μια μεγάλη εταιρεία πιστωτικών καρτών. Και στηρίζονται σε κάτι που ονομάζεται - Δεν ξέρω αν εσείς παίξει ποτέ με ένα προϊόν που ονομάζεται Joomla. Joomla είναι ένα προϊόν που χρησιμοποιείται για την ελέγχου - είδος παρόμοιο με Wordpress, που χρησιμοποιείται για τη δημιουργία ιστοσελίδων. Έτσι είχαν την ιστοσελίδα τους εργάζονται σε Joomla. Αυτό είναι στην πραγματικότητα μια πιστωτική κάρτα εταιρείας στην Κολομβία. Θα σας πάρει για να τους ιστοσελίδα πραγματικά γρήγορα. Έτσι χρησιμοποιήθηκε το Joomla. Και δεν είχαν ενημερωθεί Joomla με την πιο πρόσφατη προσθήκη. Και έτσι όταν παίρναμε μια ματιά τον κωδικό τους, ήμασταν σε θέση να πραγματικά πηγαίνετε στο εσωτερικό τους κώδικα και να κλέψει όλα τα τα στοιχεία της πιστωτικής κάρτας που είχαν, όλοι οι αριθμοί πιστωτικών καρτών, τα ονόματα, τις διευθύνσεις. Και αυτό ήταν μόνο - και τον κωδικό τους ήταν απολύτως εντάξει. Είχαν μεγάλη κωδικό. Ήταν όλα ασφάλεια. Θα ελέγξει όλες τις βάσεις δεδομένων. Έκαναν σίγουρος cross-site scripting ήταν μια χαρά. Αλλά χρησιμοποιείται κάτι που δεν ήταν ενημέρωση, ότι δεν ήταν ασφαλής. Και έτσι που τους οδήγησαν στην - έτσι εσείς είναι σίγουρα πρόκειται να χρησιμοποιήσετε άλλες κώδικα, τα πλαίσια των ανθρώπων άλλων ανθρώπων για τη δημιουργία της ιστοσελίδας σας. Βεβαιωθείτε ότι είστε ασφαλείς επειδή Μερικές φορές δεν φταις εσύ, αυτός που κάνει ένα λάθος. Αλλά κάποιος άλλος κάνει ένα λάθος, και τότε θα πέσει κάτω λόγω του ότι. Κωδικοί πρόσβασης και ΑΕΑ. Έτσι, τους κωδικούς πρόσβασης. OK. Ας ρίξουμε μια ματιά στα passwords πραγματικά γρήγορα. OK. Παρακαλώ πείτε μου ότι ο καθένας χρησιμοποιεί ασφαλή - Ελπίζω όλοι εδώ χρησιμοποιεί ασφαλείς κωδικούς πρόσβασης. Είμαι απλά αφήνοντας ότι στην ως υπόθεση. Έτσι, εσείς είναι σίγουρα πρόκειται να αποθηκεύετε κωδικούς πρόσβασης για τις ιστοσελίδες σας. Θα πάμε για να κάνει κάτι τέτοιο ένα όνομα χρήστη ή κάτι τέτοιο. Αυτό που είναι σημαντικό δεν είναι να αποθηκεύσετε κωδικούς πρόσβασης σε μορφή απλού κειμένου. Αυτό είναι εξαιρετικά σημαντικό. Δεν θέλετε να αποθηκεύσετε ένα κωδικός πρόσβασης σε μορφή απλού κειμένου. Και σίγουρα δεν θέλουν πραγματικά να το αποθηκεύσετε σε μια μονόδρομη hash. Έτσι, ό, τι ένας τρόπος hash είναι ότι όταν δημιουργούν μια λέξη, όταν βάζετε αυτό λέξη σε μια συνάρτηση hash, θα παράγουν πίσω κάποια αινιγματικά μήνυμα ή αινιγματικά σετ κλειδιών. Θα σας δείξω ένα παράδειγμα. Πάω να hash που password1 λέξη. Έτσι md5 Hash πρόκειται να μου επιστρέψει κάποια περίεργα πληροφορίες. Το πρόβλημα είναι ότι οι άνθρωποι εκεί έξω ότι ήθελα να πάω σε ιστοσελίδες έχουν ήδη καταλάβει το είδος όλα τα αθροίσματα md5. Αυτό που δεν είναι κάθισαν για τους υπολογιστές, και κατακερματίζεται σε κάθε ενιαία δυνατή λέξη εκεί έξω μέχρι πήραν το είδος του τι είναι αυτό. Αν ήταν να εξετάσουμε αυτό επάνω - Απλά άρπαξε αυτό το κλειδί. Αν πάρω αυτό το κλειδί από - αν πάω σε μια ιστοσελίδα, και βρίσκω αυτό το hash γιατί έχω να το βάσεις δεδομένων, και εγώ κοιτάζω προς τα πάνω, κάποιος ήδη καταλάβει για μένα. Ναι. Έτσι οι άνθρωποι κάθισε, και ό, τι md5 κατακερματισμού που θα τεθεί σε, πρόκειται να επιστρέψει σε σας κάτι ότι είναι μια λέξη. Αν έχω hash άλλη λέξη, όπως - Δεν ξέρω - trees2. Δεν θέλω να είναι απογοητευμένος από τις αναζητήσεις μου στο Google. Εκεί είναι, trees2. Έτσι, πολλές ιστοσελίδες εξακολουθούν να χρησιμοποιούν το md5 hash. Λένε, OH, αυτό είναι ασφαλές. Δεν είστε αποθήκευση σε μορφή απλού κειμένου. Έχουμε αυτό το md5 hash. Και το μόνο που έχετε να κάνετε είναι απλά Google τον αριθμό. Δεν χρειάζεται καν να υπολογίσουμε τον εαυτό μου. Μπορώ να το Google μόνο, και κάποιος ήδη το έκανε για μένα. Εδώ είναι μια δέσμη από αυτά. Εδώ είναι μια δέσμη των κωδικών πρόσβασης. Έτσι, σίγουρα δεν χρησιμοποιούν md5 hash, γιατί το μόνο που έχετε να κάνετε είναι να το Google. Λοιπόν, τι θέλετε να χρησιμοποιήσετε αντ 'αυτού; OK. Κάτι που ονομάζεται αλάτισμα. Έτσι τι είναι το αλάτισμα - κάνετε εσείς θυμάστε όταν ήμασταν μιλάμε για τυχαία - Δεν είμαι σίγουρος τι Pset ήταν - ήταν αυτό το chipset εκεί ή τέσσερις; Μιλούσαμε για την εύρεση η βελόνα στα άχυρα. Και στην το chipset, είπε ότι θα μπορούσε πραγματικά να καταλάβω τι τυχαία παράγει επειδή κάποιος είναι ήδη έτρεξε τυχαία ένα εκατομμύριο φορές και απλά είδος που σχηματίζεται αυτό που παράγουν. Τι θέλετε να κάνετε είναι να θέσει σε μια είσοδο. Έτσι, αυτό είναι το αλάτισμα είδος είναι. Έχουν ήδη καταλάβει τι αλάτισμα επιστρέφει για κάθε εργασία. Έτσι, αυτό που κάνει είναι το αλάτισμα σας βάλει σε αλάτι. Βάζετε σε μια συγκεκριμένη λέξη. Και θα hash αυτή τη λέξη, ανάλογα σε ό, τι βάζετε στο εδώ. Έτσι, αν ένα hash κωδικό με αυτό φράση, πρόκειται να hash διαφορετικά εάν hash password1 με μια διαφορετική πρόταση. Το είδος του δίνει κάπου να ξεκινήσετε για τον κατακερματισμό της για να ξεκινήσει. Γι 'αυτό είναι πολύ πιο δύσκολο να υπολογιστεί, αλλά θα ακόμα να το υπολογίσει, ιδίως αν χρησιμοποιείτε μια κακή αλάτι. Οι άνθρωποι έχουν ήδη καταλάβει, επίσης, κοινά άλατα και υπολόγισα τι είναι. Τυχαία άλατα είναι πολύ καλύτερα, αλλά ο καλύτερος τρόπος είναι να χρησιμοποιήσετε κάτι που ονομάζεται κρύπτη. Και τι κρύπτη σας επιτρέπει να κάνει - έτσι ώστε οι λειτουργίες αυτές είναι ήδη κατασκευαστεί για εσάς. Πολλοί άνθρωποι ξεχνούν ότι, ή ξεχνούν να το χρησιμοποιήσουν. Αλλά αν αναζητήσετε κρύπτη PHP, κρύπτη Επιστρέφει ήδη μια σειρά hash για μένα. Και άλατα πραγματικά πολλές φορές και hashes πολλές φορές. Γι 'αυτό και δεν χρειάζεται να το κάνουμε αυτό. Έτσι, το μόνο που έχετε να κάνετε είναι να στείλτε το σε κρύπτη. Και αυτό θα δημιουργήσει μια μεγάλη hash χωρίς να χρειάζεται να ανησυχείτε για το αλάτι ή οτιδήποτε άλλο. Γιατί αν ήταν να αλάτι, έχετε να θυμηθείτε τι αλάτι χρησιμοποιήσατε γιατί αν όχι, δεν μπορείτε να πάρετε σας κωδικό πρόσβασης πίσω χωρίς το αλατιού που χρησιμοποιείται. OK. Και, επίσης, προσωπικά αναγνωρίσιμες πληροφορίες. Έτσι, την κοινωνική ασφάλιση, πιστωτική κάρτα - αυτό είναι αρκετά προφανές. Αλλά μερικές φορές οι άνθρωποι ξεχνούν τον τρόπο που έργα είναι, πόσες πληροφορίες κάνετε πραγματικά πρέπει να βρούμε κάποιον ένα άτομο; Κάποιος έκανε μια μελέτη για αυτό το δρόμο της επιστροφής. Και ήταν σαν, αν έχετε το πλήρες όνομα, δεν μπορείτε να βρείτε κάποιον που εύκολα. Αλλά τι εάν έχετε ένα πλήρες όνομα και την ημερομηνία γέννησής τους; Είναι αυτό αρκετό για να προσδιορίσει κάποιον συγκεκριμένα; Τι γίνεται αν έχετε το όνομά τους και η ταχυδρομική διεύθυνση που ζουν στην; Είναι αυτό αρκετό για να βρει κάποιος; Και αυτό είναι όταν αμφισβητούν, τι είναι προσωπικά δεδομένα, και τι θα έπρεπε να ανησυχείτε για δεν δίνει μακριά; Αν δώσει μακριά τα προσωπικά αναγνωρίσιμες πληροφορία ότι κάποιος σου δίνει, θα μπορούσαν ενδεχομένως να κάνουν μήνυση. Και σίγουρα δεν το θέλουμε αυτό. Έτσι, όταν βάζετε την ιστοσελίδα σας έξω, και έχετε ένα πραγματικά δροσερό σχεδιασμό, ελπίζω να σας κάνει ένα φοβερό τελικό σχέδιο. Κάθε είδος θα θέλετε να βάζουμε εκεί έξω. Θέλετε να βεβαιωθείτε ότι ανεξάρτητα από παίρνετε από τον χρήστη, αν είναι προσωπικά αναγνωρίσιμες πληροφορίες, μπορείτε θέλετε να βεβαιωθείτε ότι είστε είναι πραγματικά προσεκτικοί με αυτό. Ένεση Shell. OK. Ένεση Shell επιτρέπει τον εισβολέα να αποκτήστε πρόσβαση σε πραγματικές γραμμή εντολών σας στον server σας. Και έτσι είναι σε θέση να εκτελέσει κώδικα ότι δεν μπορείτε να ελέγξετε. Ας πάρουμε ένα παράδειγμα αυτής της όμορφη σειρά εδώ. Αν πάμε στην ιστοσελίδα και πάλι, είμαι πρόκειται να υπεισέλθω σε ένεση κώδικα. Έτσι τι είναι αυτό που κάνει είναι - Είναι επίσης αυτό που ήταν κοιτάζοντας πριν. Είμαστε αφήνοντας το χρήστη να θέσει σε ό, τι θέλει, και θα εκτυπώσετε ό, τι θέλετε. Έτσι, Πάω να θέσετε μια κλήση. Αυτό που κάνει είναι - θα ξεκινήσει από τη συνένωση. Γι 'αυτό θα επιτρέψτε μου να τρέξει ανεξάρτητα εντολή λειτουργίας του ατόμου πριν και την εντολή μου. Και Τρέχω μια εντολή συστήματος. Και αυτά τα τελευταία χορδές είναι - θυμηθείτε τι μίλησα σε σας παιδιά για, λαμβάνοντας υπόψη ότι θα πρέπει να κωδικοποιήσει το σε μια μέθοδο διεύθυνση URL. Αν τρέχω τώρα - Θα σας δείξω εδώ - θα δείτε ότι κατέληξα να τρέχει μια εντολή. Αυτό είναι στην πραγματικότητα το πραγματικό διακομιστή ότι η ιστοσελίδα μου τρέχει σε. Γι 'αυτό και δεν το θέλουμε αυτό, γιατί μπορεί να τρέξει - αυτός ο διακομιστής δεν είναι δικό μου. Γι 'αυτό δεν θέλω να χαλάσουν του αδελφή, server Μάρκους. Αλλά μπορείτε να εκτελέσετε περισσότερες εντολές που είναι επικίνδυνα. Και ενδεχομένως, μπορείτε να διαγράψετε αρχεία, αφαιρέστε καταλόγους. Μπορώ να αφαιρέσετε ένα συγκεκριμένο κατάλογο, εφόσον Ήθελα, αλλά δεν θέλω να το κάνουμε αυτό σε Marcus. Είναι ένας συμπαθητικός τύπος. Ο επιτρέψτε μου να δανειστώ τον server του. Έτσι, Πάω να τον αφήσει εκτός από την καλή. Έτσι, αυτό που δεν θέλουμε να χρησιμοποιήσει - δεν το κάνουμε θέλετε να χρησιμοποιήσετε eval ή το σύστημα. Eval ή το σύστημα μας επιτρέπει να κάνει αυτές τις κλήσεις συστήματος. Eval μέσα αξιολογούν. Σύστημα σημαίνει αυτό έτρεξα. Είναι τρέξει κάτι στο σύστημα. Αλλά μπορούμε να θέσει εκτός νόμου αυτά τα πράγματα PHP, έτσι ώστε να μην τα χρησιμοποιούν. Και upload αρχείων. Ήμουν έτοιμος να κάνω ένα φοβερό πράγμα με το upload αρχείων. Αλλά όπως έχω πει εσείς, το αρχείο μου μεταφόρτωση πράγμα δεν λειτουργεί. Εάν επρόκειτο να ανεβάσετε ένα αρχείο τώρα - αν ήμουν στη θέση να ανεβάσετε ένα αρχείο, και είναι μια εικόνα - έχετε ένα πράγμα αποστολής αυτό είναι μια εικόνα. Αυτό είναι μια χαρά. Τίποτα δεν συμβαίνει. Αλλά εάν έχετε ένα αρχείο αποστολής, για παράδειγμα, και ο χρήστης στην πραγματικότητα προσθήκες ένα αρχείο PHP ή ένα αρχείο exe ή κάτι όπως αυτό, τότε θα μπορούσε δυνητικά έχουν ένα πρόβλημα. Αυτό δούλευε πριν. Δυστυχώς για μένα, είναι δεν λειτουργεί πια. Αν εγώ, για παράδειγμα, να φορτώσετε αυτό το αρχείο, είμαι δεν πάρει την άδεια να ανεβάσετε το αρχείο που οφείλεται στο διακομιστή Δεν είναι δικό μου. Έτσι, ο τύπος είναι πραγματικά έξυπνο. Γι 'αυτό δεν θέλουν να - Πάω να σας δείξω παιδιά - Εντάξει, αυτά είναι μερικά πραγματικά δροσερά εργαλεία. Έτσι αυτά - πηγαίνετε σε - αν εσείς έχετε Firefox - ελπίζω να το κάνουν. Υπάρχουν δύο add-ons που ονομάζεται SQL Inject Εγώ και Cross-Site Script Me. Θα ανοίξει το μικρό πλευρά γραμμές στο πλάι. Κι αν ήταν να πάει στο Για παράδειγμα CS60 - έτσι ώστε αυτό που κάνει είναι να κοιτάζει για όλες τις μορφές που - ελπίζω, δεν θα πάρω στο πρόβλημα γι 'αυτό. Αλλά OK. Εδώ είναι το σύστημα pin. Έτσι, όταν θα αρχίσει να ψάχνει για τρύπες σε το σύστημα, το πρώτο πράγμα που κάνω είναι ανοίξει αυτό το όμορφο μικρό εργαλείο στο πλάι. Και Πάω να δοκιμάσουν τις μορφές με τις επιθέσεις αυτοκινήτων. Και έτσι τι είναι αυτό που κάνει είναι να σιγά-σιγά ανοίξει μια δέσμη των browsers. Εδώ είναι μια δέσμη των browsers. Και προσπαθεί κάθε συνδυασμός του cross-site scripting ότι υπάρχουν πιθανόν είναι, αν βλέπετε στο πλάι. Και θα μου δώσει ένα αποτέλεσμα είδος ποια είναι η απάντηση. Όλα περάσει. Προφανώς, όλοι περνούν. Θέλω να πω, είναι πραγματικά έξυπνος οι άνθρωποι εκεί. Αλλά αν ήταν να τρέξει - Είχα φορές στο παρελθόν, όταν το τρέχω την τελική έργα των μαθητών. Εγώ απλά τρέχει SQL Inject Me με όλες οι διαφορετικές επιθέσεις. Και αυτό είναι που προσπαθεί να SQL ένεση αυτός ο διακομιστής pin. Έτσι, αν μετακινηθείτε προς τα κάτω, για παράδειγμα, λέει - Αυτό είναι καλό, αν επιστρέφει. Έτσι έλεγξαν ορισμένες αξίες. Και ο διακομιστής επέστρεψε ένα κωδικός που ήταν αρνητική. Αφαιρέστε προσωρινά. Αυτό είναι καλό. Προσπαθεί όλες αυτές τις δοκιμές. Έτσι, θα μπορούσατε απλά να τρέξει - Μακάρι να μπορούσα να βρω μια πραγματική ιστοσελίδα γρήγορα ότι θα με αφήσει - ίσως το κατάστημα CS50. Πω πω, αυτό πρόκειται να να λάβει πάρα πολύ καιρό. Θα αφήσω το πρώτο τεστ Δεν τελειώσει σωστά. Γι 'αυτό διαμαρτύρεται. Έτσι, αυτά είναι τα τρία πράγματα. Αυτά τα εργαλεία είναι δωρεάν. Μπορείτε να τα κατεβάσετε και να εκτελέσετε τους σε την ιστοσελίδα σας, και θα σας πω αν έχετε cross-site scripting, αν έχετε SQL, αν έχετε κάτι του αρέσει. Είμαι το είδος του χαλούν. Αυτό που είναι σημαντικό - Εντάξει, έτσι ώστε να μην εμπιστεύονται το χρήστη. Όποια και αν είναι ο χρήστης εισάγει σε σας, κάνετε φροντίστε να το απολυμάνετε, μπορείτε να το καθαρίσετε, μπορείτε να ελέγξετε για τα σωστά πράγματα, ότι σου δίνει ό, τι θέλω να σας δώσω. Πάντα να ενημερωθεί σε ποια πλαίσια ότι είστε πραγματικά χρησιμοποιείτε. Εάν χρησιμοποιήσετε κάτι σαν εκκίνησης - Ξέρω ότι εσείς πρόκειται να χρησιμοποιήσετε bootstrap, επειδή πρόκειται να πάει πάνω από αυτό σύντομα στην τάξη - και Wordpress ή κάτι τέτοιο, κανονικά αυτό θα μπορούσε να είναι hacked. Και τότε δεν ξέρω ακόμη. Είσαι απλά τρέχει τον ιστοχώρο σας. Και είναι απόλυτα ασφαλής. Και θα πάει κάτω. Έτσι είμαι αλιεύουν πολύ νωρίς. Αλλά θέλω να ευχαριστήσω Pentest Labs. Πάω να σου δείξω κάτι παιδιά ονομάζεται Pentest Labs. Αν εσείς είστε πραγματικά ενδιαφέρονται για τι η ασφάλεια είναι πραγματικά, υπάρχει μια ιστοσελίδα που ονομάζεται Pentest Labs αν πάτε εσείς να το σωστό τώρα. Ω, καλά, δεν είναι αυτό. Είμαι ακριβώς πρόκειται να το τρέξει σαν αυτό. Google μου λέει την απάντηση. OK. Και αυτό σας διδάσκει χρήση - έτσι ώστε να λέει, να μάθουν διείσδυση web δοκιμή με το σωστό τρόπο. Θα σας διδάσκει - ελπίζουμε, είσαι ηθικός άνθρωπος. Αλλά σας διδάσκει πώς μπορείτε να δείτε πώς μπορείτε να πάρετε μέσα από websites. Και αν μπορείτε να μάθετε πώς μπορείτε να πάρετε μέσα ιστοσελίδες, μπορείτε να μάθετε πώς να προστατεύσετε τον εαυτό σας από να πάρει μέσα σε ιστοσελίδες. Επιτρέψτε μου να μεγεθύνετε γιατί ίσως εσείς δεν εξετάζουμε αυτό το δικαίωμα. Από το SQL ένεση για να πληρώνω, έτσι είδος του πώς μπορώ να πάρω από το SQL ένεση για να πληρώνω. Και μπορείτε να κατεβάσετε αυτήν την εικονική μηχανή. Και η εικονική μηχανή έρχεται ήδη με την ιστοσελίδα που είστε Θα το δοκιμάσω. Μπορείτε να κατεβάσετε αυτό το PDF. Και θα σας δείξω γραμμή προς γραμμή τι που έχετε να κάνετε, ό, τι έχετε ελέγξει. Αυτό είναι ό, τι ένας εισβολέας στην πραγματικότητα κάνει για να πάρει μέσα σε μια ιστοσελίδα. Και μερικά από αυτά τα πράγματα είναι περίπλοκα. Μακάρι να μπορούσα να πάω σε περισσότερες πράγματα μαζί σας. Αλλά φοβάμαι ότι εσείς δεν έχουν πραγματικά - Αυτό είναι ό, τι πήγα με εσείς, δοκιμές web για τον έλεγχο της διείσδυσης. Δεν ξέρω πραγματικά τι SQL είναι και τι - Σεμινάριο Καρλ Τζάκσον Είναι φοβερό, καθώς και. Εσείς δεν γνωρίζουν το είδος τι είναι αυτό. Αλλά αν πάτε σε αυτή την ιστοσελίδα, και σας κατεβάσετε αυτά τα σεμινάρια και οι PDF, μπορείτε να ρίξετε μια ματιά στο είδος του ό, τι στον τομέα της ασφάλειας πραγματικά στις δοκιμές διείσδυσης, δείτε πώς μπορείτε να να πάρει μέσα από websites και την προστασία τον εαυτό σας από αυτό. Έτσι, αν κάνω ένα σούπερ γρήγορη επισκόπηση, αυτό θα πρέπει να αποτρέψει cross-site scripting. Θέλετε να htmlspecialchars χρησιμοποιήσουν κάθε καιρό το κάτι εισάγει ο χρήστης. Αποτροπή SQL ένεση. Εάν το κάνετε αυτό, είστε ήδη σε καλύτερη θέση από ό, τι ήταν το Χάρβαρντ όταν έχεις παραβιάσει. Και φροντίστε κωδικούς πρόσβασής σας δεν είναι σε μορφή απλού κειμένου. Βεβαιωθείτε ότι θα κάνετε όχι μόνο ένας τρόπος hash τους, αλλά ότι θα χρησιμοποιήσετε κρύπτη, η PHP λειτουργία που σας έδειξα παιδιά. Με αυτόν τον τρόπο, θα πρέπει να είναι καλό. Επίσης, αν οι φίλοι σας να σας, εκτελέστε SQL Me Κάνετε την ένεση στις ιστοσελίδες τους. Εκτελέστε cross-site scripting στις ιστοσελίδες τους. Και θα δείτε πολλές από αυτές τις ιστοσελίδες έχουν έναν τόνο των τρωτών σημείων. Είναι απίστευτο το πόσο πολύ οι άνθρωποι ξεχνούν να αποστειρώνουν τις βάσεις δεδομένων τους ή να κάνουν σίγουροι για το τι εισαγωγής δεδομένων του ατόμου Δεν είναι κώδικα δέσμης ενεργειών. OK. I είδος τελείωσε πολύ νωρίς. Αλλά αν κάποιος έχει απορίες σχετικά με τίποτα, μπορείτε να μου ρίξεις μια ερώτηση. Ναι. Πάμε, πάμε. ΚΟΙΝΟ: Θέλω απλά να ρωτήσω, μπορεί να σας εξηγήσει πώς το αρχείο ανεβάσετε ακριβώς έργα. LUCIANO Arango: Ναι. Έτσι, επιτρέψτε μου να σας δείξω το αρχείο ανεβάσετε πραγματικά γρήγορα. Έτσι, η αποστολή του αρχείου - η εξυπνάδα πρόβλημα το upload αρχείου τώρα είναι ότι - Πάω να ανοίξει τον κώδικα έτσι ώστε εσείς δείτε τον κώδικα πίσω από τα παρασκήνια. Και αυτό είναι να ανεβάσετε. Εδώ είναι ένας κωδικός για το αρχείο uploader. Προσπαθούμε να μπω σε αυτό κατάλογο εδώ. Και προσπαθούμε να, από τη στιγμή που η είσοδος αρχείο, το αρχείο isset - έτσι όταν υπάρχει αρχείο στο FILES, αυτήν την εικόνα, τότε προσπαθούμε να το μετακινήσετε εδώ. Έχουμε τραβήξει το αρχείο εδώ. Η μέθοδος είναι POST, τον τύπο, την εικόνα, το αρχείο. Και θα στείλουμε αυτό το αρχείο. Και στη συνέχεια, όταν θα το πάρει, έτσι μόλις το αρχείο έχει μια εικόνα, προσπαθούμε να το στείλετε σε αυτόν τον κατάλογο. Το πρόβλημα είναι ότι η ιστοσελίδα δεν είναι αφήνεις να φύγω σε αυτόν τον κατάλογο, γιατί δεν θέλει να πάει πίσω. Δεν ήθελε να πάει - Πρέπει να πάω - είναι τόσο ανεβάσετε εδώ. Εδώ είναι οι εικόνες. Πρέπει να πάω όλος ο τρόπος πίσω στην αρχίζει και το βάζουμε εκεί και μετά πάει και να το βάλετε στον κατάλογο. Έτσι, αν έτρεχα ένα παράθυρο τερματικού, και θα ήθελα να μετακινήσετε ένα αρχείο - [Δεν ακούγεται] μπορεί να το δει. Αν ήθελα να μετακινήσετε ένα αρχείο, δεν έχω να βάλει το όνομα του αρχείου και στη συνέχεια το πλήρη διαδρομή που θέλω να το στείλετε σε. Και τότε ο διακομιστής δεν είναι επιτρέψατε μου να πάω πίσω. Και γι 'αυτό είναι να μην αφήσετε Θέλω να φτάσουμε σε αυτό το αρχείο. Αλλά κανονικά - έτσι υπάρχει ένας κωδικός για μεταφόρτωση ενός αρχείου. Έτσι, συνήθως αυτό που θα συμβεί είναι ότι η άτομο δεν είναι να ελέγξετε αν το αρχείο μου τελειώνει με. jpeg, γι 'αυτό θα θέλετε να ελέγξετε. Επιτρέψτε μου να ανοίξει ένα παράδειγμα πολύ πραγματικά γρήγορα. OK. Το δικαίωμα αυτό το πρόσωπο - έτσι το παράδειγμα δύο ελέγχει αν preg_match - εδώ είναι εδώ - για να βεβαιωθείτε ότι τελειώνει με PHP, το οποίο είναι καλό. Αυτό είναι καλό. Αλλά υπάρχει ένα πραγματικό μεγάλο πρόβλημα με αυτό. Αυτό είναι καλό. Αλλά αν ήταν να βάλει ένα αρχείο με όνομα myfavoritepicture.php.jpeg, θα μπορούσα ακόμη δυνητικά να απαλλαγούμε από το jpeg και να τρέξει it.k Η PHP είναι επικίνδυνο. Δεν θέλετε το άτομο να είναι σε θέση να εκτελέσει κώδικα στον ιστοχώρο σας. Στη συνέχεια, όμως. Jpeg αφήνει να περάσει. Η ιδέα είναι αυτό που πραγματικά θέλετε να κάνετε δεν πάρετε τα αρχεία, Α. Αλλά, εντάξει, τι θέλετε πραγματικά να κάνετε είναι να βεβαιωθείτε ότι μπορείτε να διαβάσετε όλη την υφήλιο. Και δεν υπάρχει τίποτα. Php σε αυτό. Δεν υπάρχει. Php στο ολόκληρο το όνομα του αρχείου. ΚΟΙΝΟ: Αλλά θα μπορούσε θέσει. jpeg στο τέλος. Οι servers εξακολουθούν να εκτελέσετε τον κώδικα. LUCIANO Arango: Όχι, δεν θα τρέχουν στην αρχή. Θα πρέπει να πάμε πίσω και να προσπαθήσουμε για να δείτε αν μπορείτε - ΚΟΙΝΟ: Έτσι πρέπει να - Εντάξει, απλώς άλλο ένα σετ που περιλαμβάνει - LUCIANO Arango: Ναι. ΚΟΙΝΟ: OK. LUCIANO Arango: Ναι. OK. Οποιεσδήποτε άλλες ερωτήσεις; OK. Πάω να αφήσουμε αυτό και να ταξινομήσετε της να προσπαθήσουμε να δούμε αν εσείς μπορείτε - τα υπόλοιπα είναι λίγο πιο περίπλοκη επειδή απαιτούν πολύ περισσότερη γνώση της SQL ό, τι ακριβώς η αρχίζει η γνώση του web SQL είναι και τι JavaScript είναι. Αλλά Πάω να προσπαθήσει να κρατήσει αυτό επάνω, και ελπίζουμε ότι εσείς θα μάθετε γι 'αυτό και να προσπαθήσουμε να ρίξουμε μια ματιά στο τι μπορείτε να κάνετε και πόσο πολλά παραδείγματα μπορείτε να πάρετε μέσα. Όποιος έχει οποιαδήποτε άλλη ερωτήσεις σχετικά με αυτό; Προχωρήστε. Ναι, σουτ, σουτ. Ναι, προχωρήστε. Προχωρήστε. ΚΟΙΝΟ: OK. Έτσι, έχω ακούσει για το πώς Magic Quotes δεν είναι αρκετά ασφαλείς. LUCIANO Arango: Τι - Magic Quotes; ΚΟΙΝΟ: Ναι. Γι 'αυτό προσθέτει - έτσι ώστε κάθε φορά που εισάγετε κάτι, πάντα προσθέτει εισαγωγικά. LUCIANO Arango: Ναι. Ναι. OK. ΚΟΙΝΟ: Και τότε όμως που λειτούργησε, αλλά στη συνέχεια μου αναζήτηση επάνω. Και είπε ότι δεν είναι καλό. Αλλά δεν είμαι σίγουρος γιατί. LUCIANO Arango: Ναι. ΚΟΙΝΟ: Μην χρησιμοποιείτε Magic Quotes, επειδή δεν είναι ασφαλής. LUCIANO Arango: OK. Έτσι Magic Quotes είναι όταν εισάγετε SQL και προσθέτει ήδη την προσφορά για εσάς. ΚΟΙΝΟ: Προσθέτει πάντα εισαγωγικά γύρω από ό, τι βάζετε μέσα LUCIANO Arango: Ναι. Έτσι, το πρόβλημα με αυτό είναι ότι - Θα ρίξω μια ματιά - ΚΟΙΝΟ: Πώς αποκτά η δήλωση SQL; Ή υποθέτω ότι θα μπορούσε να είναι όπως quote επιλέξετε. LUCIANO Arango: Ναι, θα πρέπει να έχετε καλές τιμές για την SQL. ΚΟΙΝΟ: Όχι, αλλά ο διακομιστής το κάνει για σας. LUCIANO Arango: Αυτά τα μικρά εισαγωγικά ακριβώς εδώ, αυτά τα μικρά αποσπάσματα; ΚΟΙΝΟ: Ναι. LUCIANO Arango: Ναι. Το πρόβλημα είναι ότι μπορείτε να σχόλια από την τελευταία - Εντάξει, έτσι τι μπορώ να κάνω είναι μπορώ να σχολιάσω out - οπότε ας ρίξουμε μια ματιά στο - επιτρέψτε μου ανοίξετε ένα αρχείο επεξεργασίας κειμένου. Επιτρέψτε μου μόνο να επεξεργαστείτε αυτό εδώ άμεσα. OK. Μπορεί εσείς να δείτε ότι με σαφήνεια; Τι μπορώ να κάνω είναι μπορώ να σχολιάσω από την τελευταία. Αυτό θα σχολιάσω το τελευταίο. Και τότε θα βάλω ένα εδώ, βάλτε όλα τα κακόβουλα πράγματα εδώ. Έτσι, ο χρήστης είναι στην πραγματικότητα εισαγωγή, σωστά; Ο χρήστης δεν είναι εισαγωγή τα πράγματα, έτσι δεν είναι; Αυτό είναι ό, τι Πάω να εισροών, το πρόσωπο που προσπαθεί να μπει μέσα. Πάω να θέσει σε - αυτό είναι ένα σημάδι εισαγωγικά. Είναι απλά squiggly κατά λάθος. Και τότε ποιος είναι ο κωδικός Είναι πρόκειται να κάνει - Συγγνώμη, Πάω να το βγάλετε. Τι είναι ο κωδικός πρόκειται να κάνουμε είναι πρόκειται να προσθέσετε το πρώτο εισαγωγικά εδώ. Και πρόκειται να προσθέσει την τελευταία εισαγωγικά, καθώς και. Και είναι, επίσης, πρόκειται να προσθέσει το τελευταία, τελευταίο σημάδι εισαγωγικά. Αλλά είμαι σχολιάζοντας αυτά τα εισαγωγικά σηματοδοτεί έξω, έτσι ώστε να μην τρέξει. Και τελειώνω αυτό το απόσπασμα σήμα εδώ. Καταλαβαίνετε; Είστε χαθεί; Μπορώ να σχολιάσω την τελευταία προσφορά σήμα, και να φροντίζει για την πρώτη εισαγωγικά. ΚΟΙΝΟ: Και ακριβώς φινίρισμα το πρώτο. LUCIANO Arango: Ναι. Και μόλις τελειώσει το πρώτο. Ναι, αυτό είναι σωστό. Αυτό είναι ό, τι μπορώ να κάνω. Ναι. Οποιεσδήποτε άλλες ερωτήσεις, όπως αυτό; Αυτό είναι ένα μεγάλο ερώτημα. Όχι, ναι, ίσως. Ας ελπίσουμε ότι, εσείς θα κάνετε το είδος της περισσότερο νόημα όταν μελετάτε και SQL τέτοια πράγματα. Αλλά βεβαιωθείτε ότι έχετε - κρατήσει αυτά τα εργαλεία στο ρολόι. Δυστυχώς, αυτά τα εργαλεία εδώ. Αυτά τα εργαλεία είναι μεγάλη. Αν κάποιος έχει οποιεσδήποτε ερωτήσεις, μπορείτε επίσης να στείλετε email μου. Αυτό είναι το κανονικό μου email. Και αυτή είναι η δουλειά μου e-mail, το οποίο είναι όταν δουλεύω στο SEAS. Εντάξει, ευχαριστώ. Ευχαριστώ, παιδιά. Είστε καλοί να πάτε. Δεν πρέπει να μείνουν εδώ. Μην χειροκρότημα. Αυτό είναι παράξενο. Εντάξει, ευχαριστώ, παιδιά.