[MUSICA] DAVID J. MALAN: Va bene. Quindi questo è CS50 e questo è la fine della settimana 10. Così alcuni di voi avranno visto questo già, ma che sta circolando di ritardo è un articolo che ho pensato che avevo letto un estratto e poi ti mostrano una video di tre minuti che dipinge la stessa immagine. E 'stata davvero una storia toccante, mi pensato, di questa intersezione della mondo reale con genuinamente avvincente usi della tecnologia. Così l'articolo è stato intitolato, "Un ragazzo oversleeps sul treno, utilizza Google Maps per trovare la famiglia 25 anni dopo. "E il primi due commi sono stati, "Quando Saroo aveva cinque anni è andato con il fratello maggiore di scroccare per cambiare su un treno passeggeri in una città di circa due ore dalla sua piccola città natale. Saroo diventato stanco e saltò su un vicina stazione dove si pensava che la sua fratello è stato, poi si addormentò. Quando si svegliò era a Calcutta, quasi 900 chilometri di distanza. Saroo cercato di trovare la sua strada indietro, ma non sapeva il nome della sua città natale. E come un piccolo ragazzo analfabeta in una vasta città piena di bambini dimenticati che aveva praticamente alcuna possibilità di tornare a casa. Era un bambino di strada per un po 'fino a quando una agenzia di adozione locale agganciato lui con una coppia australiana che lo ha portato a vivono a Hobart, Tasmania. Saroo vi si trasferì, imparato Inglese, ed è cresciuto. Ma non ha mai smesso di cercare la sua famiglia e la sua città natale. Decenni più tardi, scoprì Google Terra e binari seguiti. E dandosi un raggio prescritta in base a quanto tempo pensava di essere addormentato e quanto velocemente ha pensato il treno stava succedendo, sapeva che era cresciuto in un clima caldo, sapeva ha parlato Hindi come un bambino, e gli era stato detto che sembrava che era da est dell'India. Finalmente, dopo anni di purga le foto satellitari, ha riconosciuto un paio di punti di riferimento. E dopo aver chiacchierato con un amministratore di una città vicina di Pagina Facebook, si rese conto che aveva trovato a casa. " Ecco allora il video dicendo che il racconto dalla sua prospettiva. [RIPRODUZIONE VIDEO] -E 'stato 26 anni fa e mi è stato in procinto di girare cinque. Siamo arrivati ​​alla stazione ferroviaria e ci siamo imbarcati un treno insieme. Mio fratello ha appena detto che resterò qui e tornerò. E ho pensato, beh, sai, io potrebbe anche solo andare a dormire e poi lui mi ha appena svegli. E quando mi sveglio il giorno dopo, il tutta la carrozza era vuota su un fuggiasco treno, un treno fantasma prendendo io non so dove. Sono stato adottato verso l'Australia ad una famiglia australiana. E la mamma aveva decorato la mia stanza con la mappa di India, che ha mettere accanto al mio letto. Mi sono svegliato ogni mattina visto che la mappa, e, quindi, è sorta di tenuta del vivi i ricordi. La gente diceva, si sta cercando di trovare un ago in un pagliaio. Saroo, vi troverete mai. Dovrei lampi dei luoghi che Ho usato per andare, i flash delle facce della mia famiglia. C'era l'immagine di mia madre seduta giù con le gambe incrociate solo a guardare il suo grido. La vita è così difficile. Quello era il mio tesoro. E stavo cercando in Google Map e realizzato c'è Google Earth pure. In un mondo dove si poteva zoomare I iniziato ad avere tutti questi pensieri e quali possibilità che questo potrebbe fare per me. Mi sono detto, beh, sai, hai tutto il fotografico memorie e monumenti dove sei da e si sa che cosa la città assomiglia. Questo potrebbe essere un programma che si possono utilizzare per trovare la strada del ritorno. Ho pensato, bene, metto un punto su La stazione ferroviaria di Calcutta in un raggio linea che si dovrebbe essere alla ricerca intorno a questa zona. Mi sono imbattuto in questi binari del treno. E ho cominciato a seguirla e mi è venuto a una stazione ferroviaria, che riflette la stessa immagine che era nei miei ricordi. Tutto abbinato. Ho solo pensato, sì. So dove sto andando. Sto solo andando a lasciare la mappa che ho avere nella mia testa per me portare e prendere me Torna alla mia città natale. Sono arrivato alla soglia della casa che sono nato e fatto un giro circa quindici metri dietro l'angolo. C'era tre signore in piedi al di fuori adiacente all'altro. E quello centrale si fece avanti. E ho pensato, questo è tua madre. E 'venuta avanti, mi ha abbracciato, e noi erano lì per circa cinque minuti. Mi afferrò la mano e mi ha preso la casa e ha al telefono e lei rang mia sorella e mio fratello a dire che tuo fratello ha appena tutte le improvviso apparve come un fantasma. E poi la famiglia era riuniti di nuovo. Va tutto bene. Io aiuto mia madre. Lei non ha bisogno di essere sgobbare. Lei può portare il resto della la sua vita in pace. E 'stato un ago in un pagliaio, ma l'ago era lì. Tutto ciò che c'è. Tutto ciò che abbiamo nel mondo è la pressione di un tasto. Ma hai avuto modo di avere la volontà e la determinazione a volerlo. [FINE RIPRODUZIONE VIDEO] Quindi una storia molto dolce. Ed effettivamente mi ricorda un bel argomento che è stato sempre un po ' di attenzione di recente in The Crimson, più in generale, a livello nazionale. Tanto più MOOCs stanno prendendo la fase di ritardo. MOOCs essendo questi massiccia e aperta corsi on-line di cui CS50 è uno. E la gente a parlare di come, per esempio, le scienze umane non sono davvero recupero o non sono così in voga come erano una volta. E vorrei incoraggiare i ragazzi, molto come Jonathan ha fatto il Lunedi, per pensare su come si esce 50, e noi sappiamo già circa il 50% di voi non lo farà continuare a prendere un altro computer corso di scienze, e questo è del tutto fine e previsto. Poiché uno degli obiettivi generali di una classe come questa è veramente responsabilizzare voi ragazzi con un semplice comprensione di come tutte queste cose funziona e come questo mondo di opere tecnologiche. In modo che quando si torna nel proprio mondi, che si tratti di pre-med o se si tratta di discipline umanistiche o le scienze sociali o qualche altro campo del tutto, che voi ragazzi stanno portando qualche esperto di tecnica per la tavola e aiutando a prendere decisioni intelligenti quando esso viene all'uso di e introduzione della tecnologia nel tuo mondo. Per esempio mi sono ricordato di ritardo anche di due dei laurea lezioni che ho preso due anni fa, che erano tali usi semplici di tecnologia ma mai così avvincente. Prime notti con il professor Tom Kelly se hai preso la classe. Si tratta di una classe di musica classica questa fase qui dove si impara un qualcosa su musica. In realtà è che le prime notti CS50 preso in prestito l'idea di tracce per quelli meno confortevole in mezzo e più confortevole. Nel tempo hanno avuto diverse tracce per i bambini con assolutamente nessuna musica esperienza come me, e poi i bambini che era stata l'esecuzione da quando erano cinque anni di età. E che classe, per esempio, appena avuto un sito come la maggior parte qualsiasi altra, ma è è un sito web che vi ha permesso di esplorare la musica su di esso e riprodurre clip musicali di classe, dal Web, e basta usare la tecnologia in modo molto senza soluzione di continuità. Un altro anno di classe dopo che ho sottoposto a revisione, in sostanza, a scuola grad, Anthro 1010, Introduzione di Archeologia qui. E 'stato incredibile. E uno dei più convincenti ancora super- ovvio, in retrospettiva, utilizza dei software era che i professori di quella classe utilizzato Google Earth. Eravamo seduti dall'altra parte della strada in qualche aula. E non si poteva viaggiare, per esempio, per il Medio Oriente per lo scavo che uno dei professori era appena tornato su, ma potremmo fare che praticamente da volano intorno a Google Earth e guardando vista a volo d'uccello al scavare sito era appena tornato da una settimana fa. Quindi mi sento di incoraggiare voi ragazzi, soprattutto nelle discipline umanistiche, per andare indietro a quei reparti dopo questo classe portando i progetti finali con voi o delle vostre idee, e vedere solo ciò che si può fare per infondere la vostra propri campi in discipline umanistiche o al di là con un po 'di questo tipo di cosa che abbiamo esplorato qui in CS50. Quindi, con questo quadro dipinto, pensò vorremmo provare ad affrontare due cose oggi. Uno, cercare di dare un senso di dove si può andare dopo il 50. E in particolare, se si sceglie di affrontare un progetto web based come è incredibilmente comune, come si può andare circa togliersi tutti CS50 di ruote di formazione e di andare là fuori su il proprio e non dover fare affidamento su un PDF o una specificazione di un pset? Non dover fare affidamento su un CS50 elettrodomestico più. Ma può davvero tirare te dai vostri bootstraps. Detto questo, C-base finale progetti sono i benvenuti. Cose che utilizzano il supporto per una libreria portabile in grafica sono i benvenuti. Sappiamo solo che statisticamente molto persone mordere progetti in PHP e Python e Ruby e MySQL e altri ambienti, quindi dovremo pregiudizi alcuni dei le nostre osservazioni in quella direzione. Ma un rapido sguardo indietro. Così abbiamo preso per scontato in pset7 l' fatto che $ _SESSION esistito. Questo era un super globale, una globale, array associativo. E questo che cosa consentono di fare? Funzionalmente, qual è la presentano questo ci dà? Sì? Per tenere traccia di ID dell'utente. E perché è utile? Per essere in grado di memorizzare all'interno di questo super JHarvard globale o [? Scroobs?] o l'ID utente di Malan, quando o lei visita un sito. Esattamente. Quindi non c'è bisogno di effettuare il login a nuovo e di nuovo. Sarebbe un mondo davvero zoppo wide web se ogni volta che si fa clic su un collegamento su un sito come Facebook o ogni volta si è fatto clic su un e-mail in Gmail dovuto ri-autenticarsi per dimostrare che è ancora te e non il tuo compagno di stanza che potrebbe aver camminato fino alla vostra computer in vostra assenza. Quindi usiamo SESSIONE ad appena ricordati chi sei. E come è questo implementata sotto il cofano? Come fa un sito web che utilizza, il protocollo che i browser web e server parlare, come fa HTTP, che è un protocollo stateless, diciamo. E da apolide voglio dire, una volta che si connettersi a un sito Web, scaricare alcuni HTMLs, un po 'di JavaScript, qualche CSS, il vostro icona del browser smette di girare. Non si dispone di una connessione costante al server tipicamente. Tutto qui. Non ci è stato mantenuto costantemente. Così come è SESSIONE attuata in tali un modo che ogni volta che si visita un nuova pagina, il sito ricorda chi sei? Qual è l'implementazione sottostante dettaglio? Shout it out. E 'una parola. Cookies. D'accordo. Così i cookie. Be ', come vengono utilizzati i cookies? Ci ricordiamo che un cookie è generalmente solo un pezzo di informazione. Ed è spesso un grosso casuale numero, ma non sempre. E un cookie è piantato sul vostro disco unità o nella RAM del computer in modo che ogni volta che si rivisitare lo stesso sito web, il browser ricorda il del server, io sono utente 1234567. Sono utente 1234567. E fino a quando il server ha ricordato tale utente è 1234567 JHarvard, il sito sarà solo assumere che tu sia chi dici di essere. E ricordiamo che vi presentiamo questi biscotti sorta di nella forma di un virtuale basamento della mano. E 'inviato nelle intestazioni HTTP solo per ricordare al server che siete chi pensa che tu sei. Naturalmente, c'è una minaccia. Cosa minaccia cosa ci aprono a se stiamo utilizzando essenzialmente una sorta di club di o un meccanismo di parco di divertimenti per ricordare chi siamo? Se copiate biscotto di qualcuno e dirottare la loro sessione, per così dire, è può fingere di essere qualcun altro e la sito molto probabilmente non fa che crederti. Quindi torniamo a questo. Perché l'altro tema per oggi al di là di L'empowerment è anche parlando sul mondo molto spaventoso in cui viviamo e quanto di ciò che si fa sul il web, quanto di ciò che si fa anche sui vostri telefoni cellulari di oggi può essere rintracciato davvero da chiunque tra voi e il punto B. E Ajax, richiamo. Abbiamo guardato solo brevemente a questo, anche se hai utilizzato lo indirettamente in pset8 perché si sta utilizzando Google Maps e perché sei utilizzando Google Earth. Google Maps e Google Earth non scaricare l'intero mondo al vostro desktop, ovviamente, la momento in cui si carica pset8. Si scarica solo una piazza del mondo o un quadrato più grande della terra. E poi ogni volta che si ordina di guidare fuori campo si potrebbe notare - soprattutto se su una connessione lenta - si potrebbe vedere qualche grigio per un momento o un po 'di immagini sfocate, come il download di computer più tali piastrelle, questo tipo di immagini più dal mondo o la terra. E Ajax è generalmente la tecnica da quali siti web stanno facendo questo. Una volta che avete bisogno di più di mappa, il tuo del browser sta per usare Ajax, che è non per sé un linguaggio o tecnologia, è solo una tecnica. E 'l'uso di JavaScript e di andare a prendere ulteriori informazioni da un server che permette il browser per andare a prendere ciò che è a l'est o che cosa è ad ovest di ciò che è altrimenti attualmente viene mostrato in quella mappa. Quindi questo è un argomento che molti di voi incontrerà direttamente o indirettamente tramite progetti finali, se si scegliere di fare qualcosa che sia di simile dinamica che tirano dati da qualche sito web di terze parti. Quindi abbiamo un davvero eccitante Mercoledì prossimo futuro. Quiz una, le informazioni di cui è su CS50.net già. Sappiate che ci sarà una sessione di revisione il prossimo Lunedi alle 5:30. La data e l'ora è già postato su CS50.net in quel proposito foglio. E fateci sapere voi Per qualsiasi domanda. Pset8 frattempo è già nelle vostre mani. E vorrei solo affrontare una FAQ per salvare la gente un po 'di stress. Per la maggior parte un sacco di chiacchiere vediamo in orario d'ufficio e un sacco di gli insetti che vediamo riportato sul Discuti sono infatti bug nel codice di uno studente. Ma quando hai incontrato qualcosa come il Google Earth Plug-in crash o nemmeno lavorando e si è fiduciosi non sei tu, non è un [? chamad] problema?, non è un bug introdotto nella codice di distribuzione. Realizzare appena CRONACA - questo è il tipo di piano Z - che l'ultima volta abbiamo usato questo problema impostiamo e ci siamo imbattuti in simili problemi, c'è una riga di codice in service.js che in sostanza è questo, che dice, girare su edifici. E funzionano in tutto l'ultima volta che ci siamo fatto questo, ancora una volta, in casi angolo dove studenti proprio non potrebbe ottenere il dannato cosa di lavorare è cambiare true a false dal fatto che una linea di codice. E lo troverete se si cerca attraverso service.js. Io non consiglio questo perché si creare il paesaggio più arido di Cambridge, Massachusetts. Questo sarà letteralmente appiattire il tuo mondo in modo che tutto ciò che vedi sono l'insegnamento borsisti e gli assistenti del corso su l'orizzonte e senza edifici. Ma realizzare per qualsiasi motivo il Google Earth Plug-in sembra essere ancora buggy un anno più tardi, in modo tale potrebbe essere il vostro sicuro risparmio. Quindi, piuttosto che ricorrere alle lacrime, resort per trasformare gli edifici fuori se si conosce è il plug-in che non sta cooperando sul vostro Mac o PC. Ma, questo è di nuovo ultima risorsa se sei sicuro che non sia un bug. Così l'Hackathon. Un paio di teaser appena per farti eccitato. Abbiamo avuto un bel paio di RSVP. E proprio a dipingere un quadro di ciò che aspetta, ho pensato di darvi un paio di secondi ricordano di questo immaginario rispetto allo scorso anno. [MUSICA] DAVID J. MALAN: Aspetta, oh. Abbiamo anche i nostri letterali CS50 navette. [MUSICA] DAVID J. MALAN: Quindi questo è ciò che attende che in termini di Hackathon. E questa sarà l'occasione, per sia chiaro, non per iniziare la finale progetti, ma di continuare a lavorare su i vostri progetti finali insieme compagni di classe e del personale e un sacco di cibo. E ancora, se sei sveglio alle 5:00 am ti porteremo lungo la strada per IHOP. La fiera CS50, nel frattempo, è il culmine per l'intera classe in cui potrai portare i vostri computer portatili e gli amici, forse anche la famiglia in una stanza nel campus in fondo alla strada di esporre i vostri progetti sui portatili, sui tavoli alti come questo con un sacco di cibo e gli amici e la musica in sottofondo, così come i nostri amici del mondo industriale. Aziende come Facebook e Microsoft e Google e Amazon e mazzi di altri, in modo che, se interessati a solo sentir parlare del mondo reale o chiacchierando con la gente sul mondo reale stage o tempo pieno di opportunità, sapere che alcuni dei nostri amici da industria ci sarà. E un paio di foto che possiamo dipingere qui sono i seguenti. [MUSICA] DAVID J. MALAN: Va bene. In modo che poi è la fiera CS50. Così Procediamo ora a raccontare una storia che davvero vi consentirà auspicabilmente per cose come progetti finali. Così una delle poche cose piccole alle sementi tua mente, sia per i progetti definitivi o appena più in generale per i progetti che si potrebbe decidere di affrontare dopo il corso, queste sono tutte documentate sul manual.cs50.net dove il CS50 manuale dove abbiamo un sacco di tecniche documentate. E questo è solo notazione abbreviata per dicendo che esiste nella cose mondo chiamato SMS di e-mail gateway, che è un modo elegante per dicendo, non c'è server in tutto il mondo che sanno come convertire messaggi di posta elettronica a messaggi di testo. Quindi, se per il vostro progetto finale che si desidera per creare una sorta di tema cellulare servizio che consente di avvisare gli amici o gli utenti ad eventi del campus o quello che viene servita nella sala D quella notte o qualsiasi funzione tale segnalazione, sanno che è semplice come l'invio di una email con PHPMailer cui si potrebbe aver usato per pset7 o abbiamo visto brevemente una settimana fa, a indirizzi come questo. E in effetti è possibile questo testo assumendo il tuo amico ha un sms illimitati piano e non si desidera far pagare loro $ 0.10. Ma se si invia una e-mail al tuo amico che sai di avere Verizon o AT & T utilizzando Gmail e basta inviarlo al il loro numero di telefono in qualunque sottodominio c'è, rendersi conto che invierà un messaggio di testo. Ma questa è una di quelle cose stare attenti. Se troll attraverso CS50 dell'anno scorso video credo che fosse, una orribili, orribile, orribile bug ho scritto nel codice finito per l'invio di circa 20.000 testo messaggi vivono al nostro studenti in classe. E solo perché qualcuno ha notato che stavano ottenendo testo multiplo messaggi da me fatto ho la mezzi per colpire di controllo C in fretta e fermare quel processo. Controllo C, si ricorderà, è il tuo amico in casi di ciclo infinito. Quindi attenzione il potere che abbiamo appena dato a voi piuttosto irresponsabile, più probabile, in base alla mia esperienza. Ma è sul web e ha c'è stato per qualche tempo. D'accordo. Così textmarks.com. Quindi questo è un sito web. E ci sono mazzi di altri là fuori così che abbiamo effettivamente usato come classe per anni per poter per ricevere messaggi di testo. Purtroppo, l'invio di messaggi di testo è semplice come l'invio di email del genere. Ricezione di un po 'più difficile, soprattutto se si vuole avere una delle quei codici sexy short che è solo cinque o sei cifre. Così, per esempio, per anni sei stato in grado di inviare un messaggio di testo - e si può provare questo, come pure - a 41411. E questo è il numero di telefono questo particolare avvio. E se si invia un messaggio a 41411 - Mi limiterò a scriverlo qui, in modo da 41411 - e poi inviare loro un messaggio come SBOY per Shuttle Boy. E quindi digitare in qualcosa come Mather quad. Quindi si invia il messaggio di testo a quel numero di telefono. In pochi secondi si dovrebbe tornare indietro una risposta dal CS50 Shuttle Servizio Boy, che è la navetta software di pianificazione che abbiamo avuto fuori là sul web da qualche tempo. E si risponderà a tramite messaggio di testo. Perché quello che abbiamo fatto come classe, come un programmatore, è quello di scrivere il software, configurato il nostro account gratuito con il testo contrassegni per ascoltare i messaggi di testo inviati a SBOY a quel numero. E quello che fanno è avanti quelli di testo messaggi al nostro sito web basato su PHP come Parametri HTTP dicendo qui. Questo utente con questo numero di telefono hai inviato il messaggio di testo. Farne quello che vuoi. Così abbiamo scritto alcuni software che al momento ricezione di una stringa come SBOY mather quad, abbiamo analizzarlo. Capiamo dove gli spazi sono tra le parole. E noi come classe decidiamo come rispondere a questo. E se si prova che ora, per esempio, si dovrebbe vedere, tramite risposta entro un pochi secondi, i prossimi navette andare da Mather per il quad se presente. E ci sono altre fermate. È possibile digitare in Boylston o altro ferma nel campus, e dovrebbe riconoscere quelle parole. Così parse.com. Questo è un altro servizio che siamo stati indicando alcuni studenti per progetti finali che c'è di meraviglioso in che è gratis per un ragionevole quantità di utilizzo. E se vado a parse.com vedrete che questa è un'alternativa effettivamente avere qualcosa di simile proprio database MySQL. E, francamente, è solo tipo di ipnotizzante. Questo è quello che c'è dentro di offuscare anche in una giornata nuvolosa. Così parse.com ti permette di fare un mucchio di cose interessanti. E ci sono altre alternative per questo lì fuori. Ad esempio, è possibile utilizzare come database back-end. Quindi non c'è bisogno di avere una società di web hosting. Non è necessario disporre di un database MySQL. È invece possibile utilizzare il loro back-end. Se stai facendo un progetto mobile per Android o iOS o simili, sanno che esistono cose come i servizi push in modo da poter spingere avvisi ai tuoi amici o schermi a casa degli utenti. E poi un mucchio di altre caratteristiche così. Quindi, se avete interesse, prova anche questi siti web e siti web come loro per vedere quanto molti altri popoli ' spalle si può stare a fare software davvero cool della vostra. Ora in termini di autenticazione, una FAQ, è come si fa effettivamente garantiscono che gli utenti sono persone del campus, Studenti di Harvard o docenti o personale? Così CS50 ha la propria autenticazione servizio denominato CS50 ID. Vai a questa URL e si può restringere la sito a chiunque con un Harvard ID, per esempio. Quindi, sappiamo che siamo in grado di gestire questo. Voi ragazzi non dovrebbero essere nel business di dire, qual è il tuo ID di Harvard? Qual è il tuo PIN Harvard? Permettetemi ora di fare qualcosa con esso. Faremo tutto questo. E che cosa ti daremo indietro è il nome di qualcuno e indirizzo di posta elettronica, ma non nulla sensibile. Un app su un dispositivo mobile, può essere fatto di lavorare su un dispositivo mobile, ma non è tutto progettato per questo. Così si finirà per spendere un non banale quantità di tempo di farlo. Quindi mi sento di scoraggiare questa strada per ora. Questo è davvero destinato applicazioni web based. Quindi, web hosting. Quindi, se non avete visto il homepage del corso - e qui è dove potremo iniziare una storia - web hosting è tutto di pagare per di solito un servizio, ospitare un server di proprietà da qualcun altro sul web che ha un Indirizzo IP, e quindi si mette il sito web su di esso. E di solito ti danno email conti e banche dati e altre caratteristiche del genere. Sappiate che se non si vuole effettivamente pagare per tale, andare all'URL ci e CS50 ha in realtà una non-profit conto che è possibile utilizzare per realtà non hanno http://progetto all'interno dell'apparecchio per il progetto finale. Se si vuole realmente che sia qualcosa come, isawyouharvard.com, si possono acquistare quel nome a dominio - anche se non quel particolare uno - e allora si può andare su di hosting su un server web pubblico, come possiamo offrire voi ragazzi di qua. E in effetti, se non familiare, Se non siete mai stati a isawyouharvard.com, uno, andare lì. Ma due, sanno che quello era un giovane nome della donna da Tej Per Toor Troppo due anni fa, tre anni fa, che era un CS50 alunni che si trovavano un giorno o due prima che il CS50 fiera inviato una e-mail alla sua mailing list e voilà casa. Due giorni dopo il CS50 fiera, aveva centinaia di utenti in tutto strisciante su l'altro sul suo sito web e dicendo come avevano visto lei o lui nel campus. Ecco, questo è uno dei preferiti di CS50 storie di successo da un progetto finale CS50. Quindi, come si fa a mettere un sito web come quella su internet? Beh, ci sono un paio di tale ingredienti qui. Quindi uno, è necessario acquistare un nome di dominio. Ci sono mazzi di posti in il mondo da cui è possibile acquistare un nome di dominio. E per esempio, quello che vi consigliamo solo perché è popolare ed è a buon mercato si chiama namecheap.com. Ma si può andare godaddy.com e decine di altri là fuori. Si può leggere su recensioni. Ma per la maggior parte non lo fa materia da cui si è acquistare un nome di dominio. E variano in prezzo e essi variano a suffisso. I suffissi come. Com,. Net, . Org,. Io,. Tv, quelli effettivamente variare nel prezzo. Ma se volessimo fare qualcosa di simile cats.com possiamo andare a questo sito web, fare clic su Cerca. Presumibilmente questo è presa. Ma a quanto pare, catsagainst.com è disponibile. pluscats.com è disponibile. Lovecats, catscorner, dampcats.net. Tutto questo si spera pseudo generato casualmente. Se volete cats.pw, 1500 $ solo, che è un po 'folle. Così qualcuno ha davvero strappato tutta il gatto nomi di dominio relative qui per prezzi variabili. Per inciso, vediamo. Chi ha cats.com? Sappiate che voi ragazzi avete a disposizione abbastanza comandi sofisticati ora. Come posso tipo letteralmente chi è cats.com? E per il modo internet è strutturato si può effettivamente vedere chi ha registrato questo. Apparentemente questa persona è [incomprensibile] utilizzando un servizio proxy. Quindi, chiunque possiede cats.com non vuole che il mondo sappia chi sono. Così hanno registrato se attraverso qualche servizio privacy casuale. Ma a volte è in realtà ottenere effettivi proprietari. E questo è da dire, soprattutto se sei perseguire alcuni di avvio e si in realtà vuole un po 'di nomi di dominio e sei disposti a pagare qualcun altro per esso, si può capire il contatto informazioni in questo modo. Ma interessante è anche questo. Lasciate scorrere fino a questa parte. Quindi questo è che stessa uscita. E questo è solo di cattivo gusto. Quindi, apparentemente cats.com può essere tua per il giusto prezzo. Ma ciò che è interessante qui è che il nome server - questo è un abuso totale di ciò che un nome Server suppone che sia - il tuo nome server non dovrebbe essere thisdomainforsale.com. Se effettivamente scegliamo qualcosa di simile - Scegliamo qualcosa di un po 'di più come legittimo, che è google.com, e scorrere fino qui. Così qui - cosa è successo lì? Interessante. Al di là di chi è - teniamolo più basso chiave. Chi è mit.edu? OK. Questo è utile. Quindi questo è quello che speravo. Uso legittimo del servizio DNS. Name server qui indicano il seguente. Questo è il senso del MIT di dire, ogni volta che qualcuno nel mondo, ovunque si sono, tipi di mit.edu e colpi Invio, il vostro computer portatile, sia Mac o PC, la volontà in qualche modo fine a capire che la persone nel mondo che sanno ciò che il Indirizzo IP è per mit.edu o una qualsiasi delle sottodomini a mit.edu o qualsiasi questi server qui - e in realtà sembra infrastrutture MIT è piuttosto robusto come ci si aspetterebbe. Hanno più server dei nomi che è buono per la ridondanza. E infatti, sembrano essere a livello globale distribuito in tutto il mondo. Un gruppo di quelli sembrano essere negli Stati Uniti, una coppia in Asia, uno in Europa, due in qualche altra parte. Ma il punto qui è che i DNS che stiamo dando per scontato e generalmente descritto come una grande tabella di Excel che dispone di indirizzi IP e di dominio I nomi in realtà è abbastanza sofisticato servizio gerarchica in modo che in mondo, c'è in realtà un numero finito di server che conoscono essenzialmente dove tutti i. COMS sono o tutti le reti sono., tutte le . Org sono, e così via. Quindi, quando si va avanti e comprare un dominio nome da un luogo come nome o economici Go Daddy o di qualsiasi altro sito web, uno dei i passaggi chiave che dovrete fare si, se si fa questo, anche per il vostro finale progetto, è dire al cancelliere da cui si sta acquistando il dominio nome, che in tutto il mondo conosce la vostra Gli indirizzi IP del sito web, che i vostri server di nomi sono. Quindi, se si utilizza, per esempio, di CS50 account di hosting - ci capita di avere questo account attraverso dreamhost.com che è un web hosting popolare società - vi diranno che si dovrebbe comprare il tuo dominio e dire al mondo che name server del tuo dominio è ns1.dreamhost.com, ns2.dreamhost.com, e ns3.dreamhost.com. Ma questo è tutto. L'acquisto di un nome di dominio significa dare loro il denaro e ottenere la proprietà del dominio, ma è più simile un noleggio però. Hai preso per un anno e poi si legge si recurringly per il resto della la tua vita fino a quando si annulla il nome di dominio. E poi dite loro che i name server sono. Ma poi hai finito con il vostro registrar. E da lì potrai interagire solo con la vostra società di web hosting, che nel caso di CS50 sarà DreamHost. Ma ancora una volta, più documentazione sarà fornito a voi se si decide di andare questa strada. Quindi, se si esegue questa operazione, dopo il corso di fine, semplicemente googling web hosting azienda si accende fino migliaia di opzioni. E vorrei generalmente incoraggiarvi a chiedere agli amici che avrebbe potuto usare un società prima se ne consigliano li e aveva una buona esperienza. Perché ci sono un sacco di volare di notte società di web hosting, come un ragazzo in suo scantinato con un server che dispone di un indirizzo IP. Ha un po 'di RAM in più e hard disk spazio e vende solo web hosting i conti, anche se non c'è modo che del server in grado di gestire centinaia di utenti o migliaia di utenti. Quindi rendete conto si otterrà quello che si paga. Per un bel po 'per la mia casa personale pagina - e questo era del tutto accettabile perché avevo, tipo, due visitatori al mese - Stavo pagando, come, 2,95 dollari al mese. E sono abbastanza sicuro che fosse nella cantina di qualcuno. Ma ancora una volta, non si ottiene necessariamente eventuali garanzie di uptime o scalabilità. Quindi, di nuovo, si sta guardando in genere a qualcosa di più. Beh, che dire SSL? Così che cosa è SSL utilizzato per? Cominciamo ora a guidare nel indicazioni di sicurezza e le cose che può farci del male. Tanto più che ci si avventura da soli. Che cosa è SSL, o cosa sta SSL utilizzato per? Sicurezza, OK. Quindi è utilizzato per la sicurezza. Che cosa vuol dire? Quindi è l'acronimo di Secure Sockets Layer. Ed è indicato da un URL che inizia con https://. Molti di noi hanno probabilmente mai digitato https://, ma spesso troverete che il vostro browser viene reindirizzato da HTTP a HTTPS in modo che tutto è lì dopo criptato. FYI, utilizzando SSL richiede in genere che si dispone di un indirizzo IP univoco. E in genere per ottenere un indirizzo IP univoco è necessario pagare un web hosting società qualche dollaro in più al mese. Così rendo conto che è molto facilmente attuata in questi giorni con l'acquisto di un IP indirizzo e di acquisto di ciò che è chiamato un certificato SSL. Ma si rende conto che lo fa venire ad un certo costo aggiuntivo. E, come cercheremo di spaventare in un po ', non è nemmeno necessariamente al 100% protettivo di qualunque è si sta cercando di proteggere. Così, per sicurezza, avevo pensato che avrei fare una sorta di casuale Segue qui. Come si può sapere dalla conferenza di CS50 video, il nostro team di produzione è stato un fan come me di prendere veramente bello fotografia di campus, e aerea fotografia più recente. Se avete mai guardare in su e si vede qualcosa di volare con una piccola macchina fotografica, può effettivamente essere CS50. E ho pensato che vorrei condividere minuto di alcune delle riprese la squadra ha raccolte, in particolare per quanto cerchiamo di il semestre di primavera e il prossimo autunno. Se qualcuno di voi ha un talento per fotografia, videografia, avremmo l'amore per farvi partecipare dietro le quinte. Ma più su questi dettagli in una settimana. [MUSICA] DAVID J. MALAN: Risulta c'è un campo da golf in miniatura in cima lo stadio che non abbiamo mai saputo su. [MUSICA] DAVID J. MALAN: Potete vedere il contorno del drone lì. [MUSICA] DAVID J. MALAN: La parte migliore qui è, guardare il jogger a sinistra. [MUSICA] DAVID J. MALAN: Un altro esempio di ciò che si può fare con la tecnologia che è solo tangenzialmente, francamente, relative alla sicurezza. Ma ho pensato che sarebbe stato un più divertente modo di dire semplicemente, di sicurezza. Così vediamo se non siamo in grado di spaventare voi ragazzi ora non solo con un po 'di pochi minacce, ma anche un sottostante comprensione di ciò che queste minacce sta in modo che spostando in avanti si può decidere come e se difendere te contro queste cose e ad almeno essere consapevoli di loro come si prendere decisioni se o di non inviare e-mail che, anche se non per accedere in quel sito, anche se non a usare quella del cyber cafe accesso Wi-Fi punto in modo da sapere ciò che il minacce sono infatti intorno a voi. Così Jonathan cui qualcosa come questo il Lunedi. Ha avuto un colpo di schermo finestra. Questo è di un Mac. Quanti di voi hanno mai installato software sul vostro Mac o PC? Ovviamente tutti. Quanti di voi hanno pensato molto per digitare la password quando richiesto? Voglio dire, anche io non lo faccio, francamente. Così un paio di noi sono buoni di essere paranoico. Ma considera ciò che sei effettivamente facendo qui. Su un tipico Mac o PC è necessario un account di amministratore. E di solito tu sei l'unico con un computer portatile, almeno in questi giorni. Quindi il tuo account, Malan o JHarvard o qualunque cosa sia, è il account amministratore. E che cosa significa è che hai sradicare l'accesso al computer. È possibile installare tutto quello che vuoi, cancellare tutto quello che vuoi. E in genere in questi giorni, a causa di decisioni di progettazione datata anni fa, il modo più software viene installato è come amministratore. E anche se il vostro Mac o PC ha almeno ottenuto abbastanza intelligente sopra la anni con le più recenti incarnazioni di Mac OS e Windows per non correre il vostro nome utente di default come il amministratore, quando si scarica un po 'di nuovo programma da internet e cercare di installarlo, probabilmente stai andando essere richiesta la password. Ma il problema è a quel punto, si è letteralmente consegnando le chiavi della vostra computer per avere qualunque casuale programma appena scaricato e permettendo di installare tutto ciò che vuole. E come Jonathan accennato, realizzare che si potrebbe dire che si vuole installare il software che ti interessa circa, Spotify o iTunes o qualsiasi altra cosa è che stai cercando di installare. Ma si sta letteralmente confidando l'autore o autori del software a solo fare ciò che il programma si suppone di fare. Ma non c'è assolutamente nulla fermando la maggior parte dei programmi su più sistemi operativi di eliminare file, da caricandoli su alcune società del sito web, da traina in giro, per criptare le cose. E ancora, abbiamo costruito una sorta di una intera infrastruttura su gli anni sulla fiducia. E così rendi conto che hai appena stato confidando persone casuale e casuale aziende per la maggior parte. E Jonathan allude anche, a volte quelle stesse imprese sono una sorta di consapevolmente dannoso, va bene? Sony catturato un sacco di Flack pochi anni fa per l'installazione di ciò che è stato chiamato un Kit di rootkit sui computer della gente a loro insaputa. E l'essenza di questo è che quando si comprato un CD per esempio, che essi non voleva che tu sia in grado di copiare o strappare la musica fuori di, il CD sarebbe installare, a vostra insaputa, un rootkit nel computer. Rootkit software solo nel senso che corre come amministratore che potenzialmente fa cose cattive. Ma tra le cose questa cosa ha fatto è stato che si è nascosto. Così alcuni di voi potrebbero essere abbastanza esperto con il computer e conoscere, beh, può solo aprire il Task Manager o il Activity Monitor e posso guardare tutti dei programmi arcanamente nome che sono in esecuzione. E se qualcosa sembra sospetto Mi limiterò a uccidere o eliminarlo. Ma questo è ciò che il rootkit ha fatto. E 'detto in sostanza, se l'esecuzione delle attività Manager, non mostrare se stessi. Quindi il software è stato lì. E solo se davvero, davvero guardato duro potrebbe anche trovarlo. E questo è stato fatto nel nome di protezione da copia. Ma solo immaginare cosa potrebbe sarebbe potuto fare altrimenti. Ora in termini di proteggere se stessi. Un sacco di siti web sono meravigliosamente gentile nel che hanno messo questi icone lucchetto sulla loro homepage che significa che il sito è sicuro. Questo è da bankofamerica.com questa mattina. Allora, cosa fa quel piccolo lucchetto ci significa che accanto al pulsante Accedi? Assolutamente niente. Significa che qualcuno sa come usare Photoshop per rendere l'immagine di una icona di un lucchetto. Come letteralmente, il fatto che si tratta di vi è pensato per essere un positivo segnalare all'operatore, come, ooh, sito web sicuro. Dovrei fidarmi di questo sito web e ora digitare il nome utente e la password. E questo è stato convenzionale per anni, non più tardi di questa mattina. Ma prendere in considerazione le abitudini che questo ci sta entrando. Si consideri il messaggio implicito che tutti di queste banche in questo caso sono stati inviando per anni. Se vedete lucchetto, quindi fissare. D'accordo? Così come si può abusare di questo sistema di fiducia se sei il cattivo? Mettere un lucchetto sul tuo sito web, e logicamente, gli utenti sono stati condizionato per anni ad assumere lucchetto significa sicuro. E potrebbe in realtà essere sicuro. Si potrebbe avere un meravigliosamente sicura SSL connessione HTTPS a un sito web falso. com. E nessun altro al mondo può vedere che si sta per consegnare a lui o lei il tuo nome utente e password al tuo account. Questo, però, forse, è un poco più rassicurante. Quindi questo è uno screenshot della parte superiore del mio browser questa mattina alle bankofamerica.com. E notiamo anche qui avere un icona di un lucchetto. Che cosa significa in questo contesto in Chrome, almeno? Quindi questo sta ora utilizzando SSL. Quindi, questo è in realtà una cosa migliore. E il fatto che Chrome sta rendendo verde lo scopo di attirare l'attenzione al fatto che questo è non solo su SSL. Questa è una società che qualcuno vi è verificato in realtà è bankofamerica.com. E questo significa che la Bank of America, quando si acquista il loro cosiddetto SSL certificato, essenzialmente grande casuale, numeri un po 'casuale che implementano sicurezza per loro, sono stati verificato da una terza indipendente partito che dice, sì. Questo è in realtà l'amministratore delegato della Banca di L'America cercando di acquistare il certificato. Chrome sarà quindi fiducia che autorità di certificazione e di dire in verde, questo è bankofamerica.com. E Bank of America paga solo alcuni centinaia di dollari per quello o un paio di mila al contrario di un poche decine di dollari. Ma anche qui, come molti di voi hanno mai comportata in modo diverso, perché l'URL nel vostro browser è verde al posto del nero? Giusto? Così un paio di noi. E questo è bene essere paranoici. Ma anche allora, quelli di voi che ancora notare queste cose, si fa effettivamente interrompere la registrazione in un altrimenti sicuro sito web, se l'URL non è verde? Va bene, quindi probabilmente no, giusto? Almeno la maggior parte di noi, se non è verde, molto probabilmente si sta solo andando di essere come, a prescindere. Come, io voglio accedere al sito. E 'per questo che sono qui. Io vado per accedere comunque. Per inciso, Chrome è un po ' meglio di questo. Ma c'è un sacco di browser come Firefox per esempio, almeno per po 'di tempo, in cui l'icona lucchetto è, si può effettivamente mettere qualsiasi icona della vostra. Fammi vedere che cosa l'ultima versione di Firefox assomiglia. Quindi, se andiamo a CS50.net. OK, così hanno ottenuto meglio così. Quali i browser utilizzati per farlo è come, ecco per esempio [? SAAS è?] cresta fino qui. Questo è il cosiddetto preferito icona di un sito web. Anni fa - in realtà non molto tempo fa - che poco scudo sarebbe stato giusto qui accanto all'URL. Perché qualche genio ha deciso che sarebbe solo guardare piuttosto elegante di avere il tuo logo grafico a destra accanto al tuo URL. E design saggio, che in realtà è piuttosto convincente. Quindi, che cosa ha fatto fare brutta partenza ragazzo? Hanno cominciato a cambiare il loro preferito icone, o la loro icona predefinita per un homepage di essere non una cresta ma un lucchetto, che aveva assolutamente nessun significato. Altro che la loro icona preferita è stato un lucchetto non aveva indicazioni di sicurezza. Così le lezioni qui sono una coppia che penso. Uno è che in realtà vi sono alcuni meccanismi ben intenzionati per insegnandoci utenti circa la sicurezza, anche se non erano nemmeno a conoscenza che cosa verde significava o che cosa significava anche HTTPS. Ma se questi meccanismi ci entrano la cattiva abitudine di siti web di fiducia quando vediamo questi segnali positivi, stanno molto facilmente vittime di abusi, come abbiamo visto solo un momento fa con qualcosa sciocco come questo. Così dirottamento di sessione viene in giocare, come abbiamo detto prima, con i biscotti per esempio. E che cosa significa questo in realtà significa? Bene con il dirottamento di sessione questo è tutto di rubare i cookie di qualcuno. Quindi, se apro Chrome qui, per esempio, e apro l'ispettore qui e vado a la scheda di rete - e abbiamo fatto questo prima - e vado a qualcosa di simile http://facebook.com Enter, un intero mucchio di roba passa attraverso lo schermo a causa di tutte le immagini e CSS e File JavaScript. Ma se guardo questa qui notare che Facebook è infatti piantando uno o più cookie sul mio navigatore proprio qui. Quindi questi sono essenzialmente la mano francobolli che rappresentano me. E ora si spera il mio browser presentare di nuovo questo e ancora quando rivisitare quel sito. Ma questo solo è sicuro, abbiamo detto un paio di settimane fa, se si sta utilizzando SSL. Ma anche SSL si può essere compromessa. Considerare dopo SSL funziona in tutti i sensi. Quando il browser si connette a un telecomando server tramite https://, per farla breve, crittografia è coinvolto. Non è così semplice come Cesare o Visionaire o anche DES, DES da una mentre nel PSet2. E 'più sofisticato di quello. Si chiama crittografia a chiave pubblica. Ma veramente grande e veramente casuale numeri sono usati per rimescolare informazioni tra il punto A, è, e il punto B, come facebook.com. Ma il problema è, come molti di noi ancora una volta mai digitare https:// per iniziare la nostra connessione sito in che modalità sicura? Voglio dire, come molti di voi anche Tipo http://facebook.com? Va bene, se si fa, come, ciao. Non hai bisogno di farlo più, giusto? Il browser capirlo. Ma la maggior parte di noi fanno davvero basta digitare facebook.com. Perché se stiamo usando un browser, il i browser sono diventati abbastanza intelligente da 2013 per assumere se si sta utilizzando un del browser, si digita un indirizzo, è probabilmente vuole accedere non via e-mail o un messaggio istantaneo. Vuoi dire HTTP e la porta 80. All'adozione di tali convenzioni. Ma come funziona il reindirizzamento? Beh, vedere cosa succede qui. Se torno a Chrome - e facciamolo in incognito modalità in modo che tutto il mio biscotti vengono gettati via. E mi permetta di andare qui per, nuovamente, facebook.com. E vediamo cosa succede. Ricordiamo che la prima richiesta era infatti solo per facebook.com. Ma qual è stata la risposta che ho ricevuto? Non è stato un 200 OK. Era 300, o 301, che è un redirect mi dice di andare a http://www.facebook.com, che è Facebook dove vuole che vada. Ma se guardiamo la richiesta successiva, e abbiamo visto prima, notare ciò che la loro seconda risposta è. In particolare che mi vogliono ora a vai alla versione SSL di Facebook. Così qui è un'opportunità. Questa è una caratteristica meravigliosamente utile di appena il web e HTTP. Se l'utente finale come Facebook mi vuole per rimanere sulla versione sicura del loro sito web, grande. Essi mi redirect per me stesso. E così io non devo nemmeno pensarci. Ma cosa succede se tra i punti A e B, tra te e Facebook, c'è qualche cattivo, c'è qualche sistema amministratore di Harvard che è curioso per vedere chi sono i tuoi amici. Oppure c'è qualche - anni fa, questo era sembrare pazzesco - ma c'è qualche ente governativo simile la NSA che è realmente interessato a chi si sta frugando su Facebook. Dov'è l'occasione lì? Beh, fino a quando qualcuno ha abbastanza tecnico esperto e di avere accesso alla rete attuale via Wi-Fi o qualche filo di fisica, cosa potrebbero fare? Beh, se sono sulla stessa rete te e sanno qualcosa di Indirizzi TCP / IP e IP e DNS e come tutto questo funziona, che cosa se che uomo al centro, che cosa se che nazionale Security Agency, qualunque esso può essere, ma se tale entità semplicemente risponde più rapidamente di Facebook per la richiesta HTTP e dice: oh, io sono Facebook. Vai avanti, ed ecco il HTML per facebook.com. I computer sono dannatamente veloce. Così si potrebbe scrivere un programma in esecuzione su un server come nsa.gov che quando si sente una richiesta da voi per facebook.com, molto rapidamente dietro l' scene ottiene la vera realizzazione facebook.com perfettamente [? esque?] sicuro Connessione SSL tra NSA e tra Facebook, sempre che l'HTML molto sicuro per la pagina di login, e quindi il server risponde NSA solo per voi con una pagina di accesso per facebook.com. Ora, quanti di voi sarebbero anche notare che si sta utilizzando Facebook su HTTP ancora a quel punto, perché hai collegato accidentalmente nsa.gov e non Facebook? Gli URL non cambia. Tutto questo è stato fatto dietro le quinte. Ma la maggior parte di noi, me compreso, Probabilmente non se ne accorgesse un dettaglio tale minore. Così si potrebbe avere una perfettamente funzionante connessione tra voi e ciò che si pensare è Facebook, ma c'è un cosiddetto uomo nel mezzo. E questo è un termine generale per l'uomo in l'attacco centrale in cui si ha un po 'di entità tra te e il punto B che è in qualche modo manipolare, rubare, o guardando i vostri dati. Quindi, anche SSL non è infallibile, soprattutto se si è stati indotti a non accenderlo perché di come questi meccanismi che realmente funzionano. Quindi, una lezione di oggi poi è troppo se si davvero voglia di essere paranoico - e anche qui ci sono le minacce - si dovrebbe davvero iniziare a ricevere in l'abitudine di battitura in https://www qualunque nome di dominio che effettivamente a cuore. E per inciso troppo c'è un'altra minaccia con riguardo al dirottamento di sessione. Molto spesso quando si visita un sito web come facebook.com, a meno che il server è stato configurato per dire che che timbro mano ha messo su di voi ieri dovrebbe essere sicura se stessa, la tua browser potrebbe molto bene, al momento cose in visita come facebook.com google.com, twitter.com, il browser si potrebbe presentare solo quel timbro mano di essere schiaffeggiato giù e disse no. Usa SSL. Ma è troppo tardi in quel punto. Se avete già inviato la tua mano timbro, il cookie, in chiaro con no SSL, hai una frazione di secondo vulnerabilità in cui qualcuno sniffing il traffico, sia compagno di stanza o NSA, possono poi utilizzare lo stesso cookie e con un po 'di buon senso tecnico, presentarlo come suo proprio. Un altro attacco si potrebbe Non ci ho pensato. Questo è davvero su di te se si avvitare questo per iscritto qualche sito web che in qualche modo utilizza SQL. Quindi, ecco, per esempio, è uno schermo colpo di login di Harvard. E questo è un esempio generale di qualcosa con un username e password. Super comune. Quindi supponiamo che SSL esiste e non c'è uomo al centro o qualcosa di simile. Ora ci stiamo concentrando sul server di codice che si potrebbe scrivere. Beh, quando si digita un nome utente e la password, si supponga che il servizio PIN è implementato in PHP. E si potrebbe avere un po 'di codice su quel server come questo. Prendi il nome utente dal post super- globale e ottenere la password, e poi se stanno utilizzando alcuni pset7 come codice c'è una funzione di interrogazione che potrebbe fare questo. Selezionare stella da parte degli utenti, dove nomeutente eguali e la password che è uguale a quello. Che sembra, a prima vista, del tutto ragionevole. Questo è sintatticamente codice PHP valido. Logicamente non c'è niente di sbagliato in questo. Presumibilmente c'è qualche più linee che effettivamente fare qualcosa con la risultato che ritorna dal database. Ma questo è vulnerabile per il seguente motivo. Si noti che, come un buon cittadino, Ho messo tra virgolette, singolo citazioni, il nome utente. E ho messo tra virgolette singole la password. E questa è una buona cosa perché sono non dovrebbe essere numeri. In genere si sta andando ad essere il testo. Quindi io li sto citando come stringhe. E se io ora avanzare ulteriormente che cosa se - e ho rimosso i proiettili dalla PIN servizio temporaneamente - cosa succede se cerco di accedere come Presidente [? Scroob?] ma io sostengo che la mia password è 12345 'OR '1' = '1, e preavviso quello che non ho fatto. Io non chiudo l'altro citazione singolo. Perché io sono abbastanza forte qui come il cattivo. E sto supponendo che siano sei non molto buono con il tuo Codice PHP e MySQL. Sto indovinando che non stai controllando per la presenza di citazioni. Così che cosa è appena successo è che quando la tua utente ha digitato quella stringa, la query che si sta per creare look come questo. E per farla breve, se e qualcosa insieme o si o qualcosa insieme questo sta per tornare una riga dal database. Perché è sempre l' caso che 1 è uguale a 1. E solo perché non hai anticipare che i vostri utenti, buone o cattive, potrebbe avere un apostrofo nel nome si hanno creato una query SQL che è ancora valida, e tornerà ora più risultati di quanto si possa previsto. E così questo cattivo ragazzo ora ha potenzialmente effettuato l'accesso al vostro server perché il database sta tornando di fila anche se lui o lei non ha idea di che cosa [? ?] Password effettiva del Scroob è. Oh, mi sono reso conto di un errore di battitura qui. Avrei dovuto dire la password è uguale a 12345 come il precedente esempio o 1 equivale a 1. Ti preparo che online. Allora, perché abbiamo dovuto voi utilizzando la query funzione con punti interrogativi? Una delle cose che la funzione di query fa per voi è si assicura che quando si passa in argomenti che seguono il virgole qui in questo modo che la query che in realtà è inviato al banca dati simile a questa. Molta più brutta da guardare, ma indietro tagli sono stati automaticamente inserito per evitare appunto che attacco iniezione che ho mostrato una momento fa. Ora un divertente xkcd che ho pensato di tirare qui che si spera Adesso è presente una po 'più comprensibile è questo qui. Un po '? Forse abbiamo bisogno di un po 'di più discussione su questo. Quindi questo allude ad un ragazzino di nome Bobby che ha in qualche modo preso vantaggio di un sito web che è solo confidando che ciò che l'utente ha digitato in non è, infatti, il codice SQL, ma è in realtà una stringa. Ora si può ricordare che goccia - si potrebbe avere visto questo - significa goccia eliminare una tabella, eliminare un database. Quindi, se si sostiene in sostanza che il tuo nome è Robert "; droptabl estudentsomething,] si potrebbe benissimo ingannare il database non solo in controllando che sei infatti Robert, ma anche punto e virgola procedere ad eliminare la tabella. E così gli attacchi SQL injection può effettivamente essere come una minaccia come questa in base al quale è possibile eliminare i dati di qualcuno, è possibile selezionare più dati di quanto destinato, è possibile inserire o aggiornare i dati. E si può effettivamente vedere questo momento a esercizi a casa, non dannoso per fini ma solo per didattica, è un qualsiasi momento viene richiesto di effettuare il login nel sito web, in particolare una sorta di molto pubblico non, sito molto popolare, prova ad accedere come John O'Reilly o qualcuno con un apostrofo nel loro nome. O letteralmente basta digitare apostrofo, premere Invio, e vedere cosa succede. E troppo spesso, tragicamente, la gente non sono sterilizzate i loro ingressi e fatto in modo che le cose come le citazioni o punti e virgola sono fuggiti. È per questo che in pset7 diamo si questa funzione di interrogazione. Ma non sotto apprezzare esattamente quello che sta facendo per voi. Quindi, con quello detto, buon divertimento con il web questa settimana. E vedremo che il Lunedi. Al prossimo CD50. [MUSICA]