>> [MUSIC]
>> DAVID J. MALAN: Tudo bem.
Portanto, esta é CS50 e este é o fim da semana 10.
Então, alguns de vocês podem ter visto isso já, mas sendo divulgado nos últimos tempos
é um artigo que eu pensei que eu tinha lido um trecho e, em seguida, mostrar-lhe um
três minutos de vídeo que pinta a mesma imagem.
Foi realmente uma história comovente, eu pensei, dessa intersecção da
mundo real com genuinamente irresistível usa da tecnologia.
>> Assim, o artigo foi intitulado "Um menino dorme demais no trem, usa Google Maps
para encontrar a família 25 anos depois. "E o primeiro par de parágrafos foram,
"Quando Saroo tinha cinco anos de idade, ele foi com seu irmão mais velho para furtar para
mudar em um trem de passageiros em uma cidade cerca de duas horas
de sua pequena cidade natal.
Saroo se cansou e pulou em um nas proximidades de trem onde ele pensou que sua
irmão foi, em seguida, caiu no sono.
Quando ele acordou, estava em Calcutá, cerca de 900 quilômetros de distância.
Saroo tentou encontrar o seu caminho para trás, mas ele não sabia
o nome de sua cidade natal.
E como um menino analfabeto minúsculo em um vasto cidade cheia de crianças esquecidas que ele tinha
praticamente nenhuma chance de chegar em casa.
>> Ele era uma criança de rua por um tempo até uma agência de adoção local viciado
-lo com um casal australiano que o levou a
viver em Hobart, Tasmânia.
Saroo se mudou para lá, aprendi Inglês, e cresceu.
Mas ele nunca parou de olhar para sua família e sua cidade natal.
>> Décadas mais tarde, ele descobriu o Google Terra e trilhos seguiram.
E dando a si mesmo um raio prescrito baseado em quanto tempo ele achava que era
adormecido e quão rápido ele pensou que o trem estava acontecendo, ele sabia que tinha crescido
em um clima quente, ele sabia que ele falou Hindi como uma criança, e ele tinha sido dito
que parecia que ele Foi a partir da Índia Oriental.
>> Finalmente, depois de anos de lavagem as fotos de satélite, ele
reconheceu alguns marcos.
E depois de conversar com um administrador de uma cidade vizinha de
Página do Facebook, ele percebeu ele encontrou em casa. "
>> Então, aqui, então, é o vídeo dizendo que conto a partir de sua perspectiva.
>> [REPRODUÇÃO]
>> -Foi há 26 anos e eu era prestes a virar cinco.
Chegamos à estação de comboios e embarcamos em um trem juntos.
Meu irmão acabou de dizer que eu vou ficar aqui e eu vou voltar.
E eu pensei, bem, você sabe, eu pode muito bem ir dormir e
então ele só vai me acordar.
E quando eu acordar no dia seguinte, o carro inteiro estava vazio em um fugitivo
trem, um trem fantasma tomar me Eu não sei onde.
>> Eu fui adotado para a Austrália a uma família australiana.
E minha mãe tinha decorado o meu quarto com mapa da Índia, que ela
colocar ao lado de minha cama.
Eu acordei todas as manhãs vendo esse mapa, e, portanto, é uma espécie de manter o
memórias vivas.
>> As pessoas diziam: você está tentando encontrar uma agulha num palheiro.
Saroo, você nunca vai encontrá-lo.
Eu tenho flashes dos lugares que Eu costumava ir, os flashes
dos rostos da minha família.
Havia a imagem de minha mãe sentada para baixo com as pernas cruzadas
apenas vê-la chorar.
A vida é tão difícil.
Esse era o meu tesouro.
>> E eu estava procurando no Google Map e percebi que não é o Google Earth também.
Em um mundo onde você pode aplicar zoom em I começou a ter todos esses pensamentos e
quais as possibilidades que isso poderia fazer por mim.
Eu disse a mim mesmo, bem, você sabe, você tem toda a fotográfica
memórias e monumentos onde você está a partir e você sabe o que
a cidade parece.
Este poderia ser um aplicativo que você pode usar para encontrar o caminho de volta.
>> Eu pensei, bem, eu vou colocar um ponto na Estação Ferroviária de Calcutá, em um raio
linha que você deve estar procurando em torno desta área.
Me deparei com esses trilhos do trem.
E eu comecei a segui-la e eu vim para uma estação de trem que refletia a
mesma imagem que estava em minhas memórias.
>> Tudo combinado.
Eu apenas pensei, sim.
Eu sei para onde estou indo.
Eu só vou deixar o mapa que eu tenho na minha cabeça para me levar e me levar
Voltar para a minha cidade natal.
>> Cheguei à porta da casa que eu nasci e andou
cerca de quinze metros ao virar da esquina.
Havia três senhoras do lado de fora adjacentes uns aos outros.
E o meio passo à frente.
E eu pensei, este é sua mãe.
Ela veio para a frente, ela me abraçou, e nós estavam lá por cerca de cinco minutos.
>> Ela pegou minha mão e ela me levou para a casa e pegou o telefone e ela
tocou a minha irmã e meu irmão a dizer que teu irmão tem apenas todo o
súbita apareceu como um fantasma.
>> E, em seguida, a família foi reunida novamente.
Está tudo bem.
Eu ajudo a minha mãe para fora.
Ela não tem que ser escravizado.
Ela pode levar o resto da sua vida em paz.
>> Foi uma agulha em um palheiro, mas a agulha estava lá.
Tudo está lá.
Tudo o que temos no mundo é o toque de um botão.
Mas você tem que ter a vontade ea a determinação de querer.
>> [FIM REPRODUÇÃO DE VÍDEO]
>> Assim, uma história muito doce.
E isso realmente me faz lembrar de um grande tema que foi ficando um pouco
de atenção no final do Crimson, mais nacional em geral.
Especialmente porque MOOCs estão tomando o estágio da tarde.
MOOCs sendo estes maciço e aberto cursos on-line do que CS50 é um deles.
>> E as pessoas falando sobre como, por exemplo, as humanidades não são realmente
recuperar o atraso ou não são tão em voga quanto eram uma vez.
E eu encorajaria vocês, muito como Jonathan fez na segunda-feira, para pensar
sobre como você sair 50, e sabemos já cerca de 50% de que você não vai
continuar a tomar outro computador curso de ciência, e isso é totalmente
multa e esperado.
Porque um dos objectivos globais de uma classe como essa é realmente a
capacitar vocês com apenas um a compreensão de como todas essas coisas
funciona e como este mundo de obras de tecnologia.
>> De modo que quando você está de volta em sua própria mundos, quer se trate de pré-med ou
se é das humanidades ou das ciências sociais ou algum outro campo
Ao todo, que vocês estão trazendo algum conhecimento técnico para a mesa e
ajudando a tomar decisões inteligentes quando que se refere ao uso e
introdução da tecnologia em seu mundo.
>> Por exemplo, eu me lembrei da tarde também de dois cursos de graduação
classes I levou dois anos atrás, que eram essas utilizações simples da tecnologia
mas sempre tão atraente.
Primeiras noites com o Professor Tom Kelly se você tomou a classe.
É uma aula de música clássica em Nesta fase aqui, onde você aprende a
pouco sobre música.
É realmente primeiras noites que CS50 emprestado a idéia de faixas para os
menos confortável no meio e mais confortável.
>> No meu tempo eles tinham diferentes faixas para as crianças com absolutamente nenhuma música
experimentar como eu, e, em seguida, as crianças que vinha desempenhando desde que eram
cinco anos de idade.
E essa classe, por exemplo, só tinha um site como mais nenhum outro, mas
é um site que lhe permitiu explorar a música nele e reproduzir
clipes musicais de classe, a partir da web, e apenas usar a tecnologia de uma forma muito
maneira contínua.
>> Outro ano de classe depois que eu auditadas, essencialmente, na pós-graduação,
Antropologia 1010, Introdução de Arqueologia aqui.
Ele foi incrível.
E uma das mais convincentes, mas super óbvias, em retrospecto, a utilização de
software foi que os professores em que a classe usada Google Earth.
Estávamos sentados do outro lado da rua em alguma sala de aula.
E você não pode viajar, por exemplo, para o Oriente Médio para a escavação que um
dos professores tinha acabado de chegar de volta, mas poderíamos fazer isso virtualmente por
voando em Google Earth e olhando a vista de um pássaro olho no
cavar site que ele tinha acabado de voltar de uma semana atrás.
>> Então, eu encorajaria vocês, especialmente na área de humanas, para ir
voltar para esses departamentos, após este classe trazendo seus projetos finais
com você ou de suas próprias idéias, e ver apenas o que você pode fazer para infundir a sua
campos próprios em humanidades ou além com um pouco deste tipo de
coisa que nós exploramos aqui no CS50.
>> Assim, com esse quadro pintado, o pensamento nós tentar resolver duas coisas hoje.
Um deles, tentar dar-lhe uma sensação de onde você pode ir depois de 50 anos.
E, em particular, se você optar por abordar um projeto baseado na web, como é
incrivelmente comum, como você pode ir em tirar todas CS50 da
rodinhas e ir lá fora, seu próprio país e não ter que depender de um
PDF ou uma especificação de um pset?
Não ter que depender de um CS50 aparelho mais.
Mas pode realmente puxar-se por seu próprio esforço.
>> Com isso dito, C-base definitiva projetos são bem-vindos.
Coisas que usam o suporte para uma biblioteca portátil numa
gráficos são bem-vindos.
Nós só sabemos que, estatisticamente, um monte de pessoas morder projetos em PHP e
Python e Ruby e MySQL e outros ambientes, por isso vamos viés alguns dos
nossas observações em relação a isso.
>> Mas uma rápida olhada para trás.
Então nós tomamos para concedido em pset7 o fato de que $ _SESSION existiu.
Este foi um super global, uma global, array associativo.
E o que isso que você faz?
Funcionalmente, o que é o apresentam isso nos dá?
Sim?
Para acompanhar o ID do usuário.
E por que isso é útil?
Para ser capaz de armazenar dentro de este super JHarvard global, ou [? Scroobs?]
ou ID do usuário do Malan, quando ele ou ela visita um site.
>> Exatamente.
Assim você não precisa se logar em uma e outra vez.
Seria um mundo realmente coxo wide web se cada vez que você clicar em um link
em um site como o Facebook ou o cada vez Você clicou em um e-mail no Gmail você
tive que re-autenticar a provar que ainda é você e não o seu colega de quarto
que poderia ter caminhado até sua computador na sua ausência.
>> Então, nós usamos SESSÃO apenas lembre-se quem você é.
E como isso é implementado debaixo do capô?
Como é que um site que usa o protocolo que navegadores e servidores
falar, como é que HTTP, que é um protocolo sem estado, digamos.
>> E por apátrida Quer dizer, uma vez que você conectar a um site, baixe algum
HTMLs, alguns JavaScript, alguns CSS, seu ícone do navegador pára de girar.
Você não tem uma conexão constante para o servidor normalmente.
É isso aí.
Não há estado mantido constantemente.
Então, como é SESSION implementado em tais uma forma que toda vez que você visitar um
nova página, o site lembra quem você é?
Qual é a implementação subjacente detalhes?
Grito ele para fora.
É uma palavra.
>> Cookies.
Tudo bem.
Então cookies.
Bem, como são usados ​​cookies?
Vamos lembrar que um cookie é geralmente apenas um pedaço de informação.
E é muitas vezes um grande acaso número, mas nem sempre.
E um cookie é plantada em seu disco rígido ou na memória RAM do seu computador para
que cada vez que você revisitar esse mesmo website, o navegador lembra o
servidor, eu sou usuário 1234567.
Eu sou usuário 1234567.
>> E assim, desde que o servidor tenha lembrado que o usuário é 1234567
JHarvard, o site só vai assumir que você é quem você diz ser.
E lembrar que apresentamos esses cookies tipo de sob a forma de um
suporte da mão virtual.
É enviada nos cabeçalhos HTTP apenas para lembrar o servidor que você é quem é
pensa que você é.
>> Claro, não é uma ameaça.
Que ameaça é que isto abre-nos para se estamos essencialmente usando uma espécie de clube
ou um mecanismo de parque de diversões para lembrar quem somos?
>> Se você copiar bolinho de alguém e roubar sua sessão, por assim dizer, você
pode fingir ser outra pessoa e website provavelmente só vai
acredito em você.
Então, vamos voltar a isso.
Porque o outro tema para hoje, além capacitação também está falando
sobre o mundo muito assustador em que vivemos e apenas como muito do que você faz no
a web, como muito do que você faz, mesmo em seus telefones celulares de hoje pode ser
rastreado realmente por qualquer pessoa entre você e ponto B.
>> E Ajax, recall.
Olhamos apenas brevemente com isso, apesar de que você está usando ele
indiretamente pset8 porque você está usando Google Maps e porque você é
usando o Google Earth.
Google Maps e Google Earth não baixar o mundo inteiro ao seu
desktop, obviamente, o momento em que você carregar pset8.
Ele só faz o download de um quadrado do mundo ou um quadrado maior da terra.
E, em seguida, cada vez que você espécie de dirigir fora da faixa que você pode perceber -
especialmente se em uma conexão lenta - você pode ver alguns cinza por um momento
ou um pouco de imaginação difusa como o computador transfere mais essas telhas,
tais imagens mais do mundo ou a terra.
>> E Ajax é geralmente a técnica por quais sites estão fazendo isso.
Uma vez que você precisar de mais do mapa, o seu navegador vai usar Ajax, que é
não em si uma linguagem ou tecnologia, é apenas uma técnica.
É o uso de JavaScript para ir buscar obter mais informações a partir de um servidor que
permite que o seu browser para ir buscar o que está por o leste ou o que é a oeste da
o que é outra forma atualmente sendo mostrado no mapa.
Portanto, este é um tema que muitos de vocês encontrará, direta ou
indirectamente, através de projetos finais se optar por fazer algo que é
similarmente dinâmica que está puxando dados de algum site de terceiros.
>> Então temos uma realmente emocionante próxima quarta-feira frente.
Teste um, as informações para que é já em CS50.net.
Sei que vai haver uma sessão de revisão esta próxima segunda-feira às 5:30.
A data ea hora já está publicado em CS50.net em que cerca de folha.
E deixe-nos saber que você tem quaisquer perguntas.
Pset8 entretanto já está em suas mãos.
>> E deixe-me abordar um FAQ para salvar as pessoas algum stress.
Para a maior parte um monte de conversa vemos no horário de expediente e um monte de
os erros que vemos relatado em discutir são na verdade, erros no código do aluno.
Mas quando você encontrou algo como o Google Earth Plug-in bater
ou nem mesmo trabalho e você é confiante de que não é você, não é uma
[? chamad?] problema, que não é um bug você introduzida no
código de distribuição.
>> Realizar apenas FYI -
este é o tipo de plano Z -
que a última vez que usamos este problema definir e que funcionou em semelhante
questões, há uma linha de código em service.js que é essencialmente este,
que diz: transformar edifícios em.
E eles contornar a última vez que fiz isso, mais uma vez, em casos canto onde
estudantes simplesmente não conseguia tirar o danado coisa para trabalhar é mudar verdadeiro para falso
em que uma linha de código.
E você vai encontrar se você procurar através service.js.
>> Eu não recomendo este, porque você vai criar a paisagem mais árida
de Cambridge, Massachusetts.
Isto irá, literalmente, achatar o seu mundo de modo que tudo que você vê são o ensino
companheiros e assistentes do curso de o horizonte e não edifícios.
Mas perceber por qualquer motivo o Google Earth plug-in ainda parece ser
buggy de um ano depois, de modo que este pode ser a sua falha salvar.
Então, em vez de recorrer às lágrimas, resort para transformar prédios fora se você sabe
é o plug-in que não está cooperando em seu Mac ou PC.
Mas, este é novamente último recurso se você tem certeza que não é um bug.
>> Assim, o Hackathon.
Um par de teasers apenas para levá-lo animado.
Tivemos algumas RSVPs.
E só para pintar um retrato do que espera, eu pensei que eu iria dar-lhe um pouco
segundo lembrar dessas imagens desde o ano passado.
>> [MUSIC]
>> DAVID J. MALAN: Espere, oh.
Temos até nossos literais CS50 ônibus.
>> [MUSIC]
>> DAVID J. MALAN: Então, isso é o que o espera você em termos de Hackathon.
E esta será uma oportunidade para ser claro, não para iniciar a sua última
projetos, mas para continuar a trabalhar em seus projetos finais ao lado
colegas e funcionários e muita comida.
E, novamente, se você estiver acordado à 5h00 vamos levá-lo no caminho para IHOP.
>> A feira CS50, entretanto, é o clímax para toda a classe onde
você vai levar seus laptops e amigos, talvez até mesmo a família para um quarto no campus
na rua para expor seus projetos em laptops, em mesas altas
como este, com muita comida e amigos e música de fundo,
bem como os nossos amigos da indústria.
Empresas como Facebook e Microsoft e Google e Amazon e cachos de
outros, de modo que, se interessados ​​em apenas ouvir sobre o mundo real ou
conversando com as pessoas sobre o mundo real, estágio ou oportunidades de tempo integral,
sei que alguns de nossos amigos da indústria vai estar lá.
E um par de fotos podemos pintar aqui são os seguintes.
>> [MUSIC]
>> DAVID J. MALAN: Tudo bem.
Para que, em seguida, é o justo CS50.
Então, vamos agora avançar para contar uma história que realmente vai capacitá-lo esperançosamente
para coisas como projetos finais.
Então, uma das poucas coisas pequenas a sua semente mente, tanto para projetos finais
ou apenas em geral, para projetos que você pode optar por enfrentar depois
o curso, estes são todos documentados em manual.cs50.net onde o CS50
manual, onde temos muitas técnicas documentada.
>> E este é apenas notação abreviada para dizendo que não existe na
coisas mundo chamado SMS para enviar e-mail gateways, que é uma maneira elegante de
dizer, não há servidores em todo o mundo que sabe como converter e-mails para
mensagens de texto.
Portanto, se para o seu projeto final que você quer para criar algum tipo de temática móvel
serviço que permite alertar os amigos ou usuários para eventos no campus
ou o que está sendo servido no Salão D naquela noite ou qualquer recurso de alerta de tal,
sei que é simples como o envio de um e-mail, com PHPMailer que você
poderia ter usado para pset7 ou vimos brevemente uma semana atrás, a
endereços como este.
>> E na verdade, você texto pode assumir esta seu amigo tem um número ilimitado
plano e você não quer para cobrar-lhes US $ 0,10.
Mas, se você enviar um e-mail para seu amigo que você sabe ter Verizon ou
AT & T usando o Gmail e só enviá-lo para seu número de telefone em qualquer que seja o
sub-domínio existe, percebe que irá enviar uma mensagem de texto.
>> Mas esta é uma daquelas coisas para ter cuidado.
Se você vasculhar CS50 do ano passado videos eu acho que era, um horríveis,
horrível, bug horrível que eu escrevi em código acabei de enviar cerca de 20.000 texto
mensagens ao vivo para o nosso os alunos em sala de aula.
E só porque alguém notou que eles estavam recebendo texto múltiplo
mensagens de mim eu tinha o meios para atingir Controle C rapidamente
e parar esse processo.
Controle C, você se lembra, é seu amigo em casos de loop infinito.
Então, cuidado com o poder que deu apenas para você em vez de forma irresponsável, a maioria
provável, com base na minha própria experiência.
Mas isso é na web e tem estive lá há algum tempo.
>> Tudo bem.
Então textmarks.com.
Portanto, este é um website.
E não há cachos de outras pessoas lá fora assim que nós realmente usado
como uma classe de anos para ser capaz para receber mensagens de texto.
Infelizmente, o envio de mensagens de texto é fácil como enviar e-mails como esse.
Receber um pouco mais difícil, especialmente se você quiser ter um dos
os códigos curtos sensuais que é apenas cinco ou seis dígitos.
>> Assim, por exemplo, durante anos você esteve capaz de enviar uma mensagem de texto - e você
pode tentar isso também -
para 41411.
E esse é o número de telefone para esta startup particular.
E se você enviar uma mensagem para 41411 -
Vou escrevê-lo aqui, então 41411 -
e, em seguida, enviar-lhes uma mensagem gostaria SBOY para Shuttle Boy.
E, em seguida, digitar algo como mather quad.
Então você enviar a mensagem de texto para que o número de telefone.
Dentro de poucos segundos você deve voltar uma resposta do CS50 Shuttle
Serviço Boy, que é o transporte software de programação que tivemos fora
lá na web há algum tempo.
E ele irá responder a você via mensagem de texto.
>> Porque o que temos feito como uma classe, como um programador, é escrever software,
configuramos nossa conta gratuita com texto marcas para ouvir as mensagens de texto enviadas
para SBOY naquele número.
E o que eles fazem é para a frente aqueles texto mensagens para o nosso site baseado em PHP como
Parâmetros HTTP dizendo aqui.
Este usuário com este número de telefone enviou-lhe esta mensagem de texto.
Fazer com ele o que quiser.
>> Então nós escrevemos algum software que, ao recebendo uma string como SBOY mather
quad, nós analisá-lo.
Nós descobrir onde os espaços estão entre as palavras.
E nós, como uma aula de decidir como responder a isso.
E se você tentar isso agora, por exemplo, você deve ver, através de resposta dentro de um
alguns segundos, os próximos ônibus indo de Mather para o quad, se houver.
E há outras paragens.
Você pode digitar Boylston ou outro tipo de pára no campus, e que deveria
reconhecer essas palavras.
>> Então parse.com.
Este é mais um serviço que temos sido apontando alguns alunos para
projetos finais Isso é maravilhoso na medida em que é livre para a
quantidade razoável de uso.
E se eu for para parse.com você verá que esta é uma alternativa ao
realmente ter algo como seu próprio banco de dados MySQL.
E, francamente, é só tipo de hipnotizante.
Isto é o que está dentro da ofuscar até mesmo em um dia nublado.
>> Então parse.com permite que você faça uma monte de coisas interessantes.
E há outras alternativas para isso lá fora.
Por exemplo, você pode usá-los como banco de dados back-end.
Então você não precisa ter uma empresa de hospedagem web.
Você não precisa ter um banco de dados MySQL.
Você pode usar o seu back-end.
>> Se você está fazendo um projeto de móvel para Android ou iOS ou similar, saiba que
existe coisas como serviços de envio assim você pode empurrar alertas para os seus amigos
ou telas iniciais de seus usuários.
E, em seguida, um monte de outras características bem.
>> Então, se você tiver interesse, confira essas sites e sites como eles
apenas para ver quantos outros povos ' ombros você pode estar a fazer
software muito legal de sua preferência.
>> Agora em termos de autenticação, um FAQ, é como você realmente garantir
que seus usuários são pessoas no campus, Estudantes de Harvard ou professores ou pessoal?
Então CS50 tem a sua própria autenticação serviço chamado CS50 ID.
Vá para a URL e você pode restringir sua site para qualquer um com um Harvard
ID, por exemplo.
Então, sabemos que podemos lidar com isso.
Vocês não deveriam estar no negócio de dizer, qual é o seu ID Harvard?
Qual é o seu PIN Harvard?
Deixe-me agora fazer algo com ele.
Nós vamos fazer tudo isso.
E o que nós vamos dar-lhe de volta é o nome de alguém e endereço de e-mail, mas
não nada sensível.
>> Um aplicativo em um dispositivo móvel, pode ser feito para funcionar em um dispositivo móvel, mas
Não é bem projetado para isso.
Então, você vai acabar gastando um não trivial quantidade de tempo fazendo isso.
Então eu iria desencorajar por esse caminho por enquanto.
Esta é realmente a intenção de aplicações baseadas na web.
>> Então, web hosting.
Então, se você ainda não viu em página inicial do curso -
e é aqui que vamos começar uma história -
web hosting é tudo sobre o pagamento de normalmente um serviço, hospedar um servidor de propriedade
por outra pessoa na web que tem um Endereço IP, e, em seguida, colocar o seu
site sobre ele.
E eles costumam dar-lhe e-mail contas e bancos de dados
e outras características similares.
>> Saiba que se você não quer, na verdade, pagar para tal, ir para o URL
lá e CS50 tem realmente uma organização sem fins lucrativos conta que você pode usar para
realmente não tem http://project interior do aparelho
para o seu projeto final.
Se você realmente quer que ele seja algo como, isawyouharvard.com,
você pode comprar esse nome de domínio - embora não que um particular - e
então você pode ir sobre a hospedá-lo em um servidor web público, como podemos oferecer
vocês por aqui.
>> E, de fato, se não conhece, Se você nunca foi a
isawyouharvard.com, um, vai lá.
Mas dois, sei que era um jovem o nome da mulher por Tej Para TOOR Too dois
anos, há três anos, que era um CS50 alunos que aconteceram um dia ou dois
antes do CS50 feira enviou um e-mail para a casa dela mailing list e voila.
Dois dias depois, pela CS50 feira, ela teve centenas de usuários em rastejando
uns aos outros em seu site e dizendo como eles tinham visto
ela ou ele no campus.
Então, esse é um dos favoritos do CS50 histórias de sucesso de
um projeto CS50 final.
>> Então, como é que você vai colocar um site assim na internet?
Bem, há alguns, tais ingredientes aqui.
Então, você tem que comprar um nome de domínio.
Há grupos de lugares o mundo a partir do qual você pode
comprar um nome de domínio.
E, por exemplo, que recomendamos só porque é popular
e é barato é chamado namecheap.com.
Mas você pode ir godaddy.com e dezenas de outros lá fora.
Você pode ler-se em comentários.
>> Mas para a maior parte não importa de quem você
comprar um nome de domínio.
E eles variam de preço e eles variam em sufixo.
Os sufixos como. Com,. Net, . Org,. Io,. Tv, aqueles
na verdade, variam de preço.
Mas se nós queríamos fazer algo parecido cats.com podemos ir a este site,
clique em Pesquisar.
Presumivelmente, esta é tomada.
Mas, aparentemente, catsagainst.com está disponível.
pluscats.com está disponível.
Lovecats, catscorner, dampcats.net.
Tudo isto esperançosamente pseudo gerada aleatoriamente.
Se você quiser cats.pw, 1500 dólares apenas, que é um pouco louco.
Então, alguém tem realmente pegou tudo os relacionados com nomes de domínio gato aqui para
preços variados.
>> Como um aparte, vamos ver.
Quem tem cats.com?
Saibam que vocês têm em sua disposição de forma justa
comandos sofisticados agora.
Como posso digitar literalmente que é cats.com?
E por causa da forma como a internet é estruturada você pode realmente ver quem
tenha registrado isso.
Aparentemente, esta pessoa é [inaudível] usando um serviço de proxy.
Então, quem é dono cats.com não quer que o mundo saiba quem eles são.
Então, eles se registrado através algum serviço privacidade aleatória.
Mas às vezes você realmente obter proprietários reais.
>> E este é, especialmente se você estiver buscando alguma startup e você
realmente quer um nome de domínio e você está dispostos a pagar alguém para
, você pode descobrir o contato informações nesse sentido.
>> Mas também é interessante isso.
Deixe-me deslocar até esta parte.
Portanto, esta é a mesma de saída.
E este é apenas brega.
Assim, aparentemente, podem ser cats.com seu por um preço justo.
Mas o que é interessante aqui é que os servidores de nome -
isso é um abuso total do que um nome servidor é suposto ser - seu nome
servidor não é suposto ser thisdomainforsale.com.
Se realmente optar por algo como -
vamos escolher algo um pouco mais como legítimo, que é o google.com,
e desloque-se aqui.
Então, aqui -
o que aconteceu lá?
Interessante.
Além de que é -
Vamos mantê-lo mais baixo chave.
>> Quem é mit.edu?
OK.
Isso é útil.
Então é isso que eu estava esperando.
Uso legítimo do serviço de DNS.
Servidores de nomes aqui indicam a seguir.
Esta é a maneira de dizer do MIT, sempre alguém no mundo, onde quer que
são, os tipos de mit.edu e bate Enter, seu laptop, seja Mac ou PC, vai
de alguma forma, eventualmente, descobrir que o pessoas no mundo que sabem o que o
Endereço IP é para mit.edu ou qualquer um dos sub-domínios em mit.edu ou qualquer um dos
esses servidores aqui - e ele realmente Parece infra-estrutura é MITs
bastante robusto como seria de esperar.
Eles têm vários servidores nomes que é bom para a redundância.
E, de fato, eles parecem ser globalmente distribuídos em todo o mundo.
Um grupo dos que parecem estar em os EUA, um casal na Ásia, uma na Europa, dois
em algum outro lugar.
>> Mas o ponto aqui é que o DNS que temos vindo a tomar para concedido e
geralmente descrito como uma mesa grande Excel que tem endereços IP e de domínio
nomes é realmente bastante sofisticado serviço hierárquica de modo a que na
mundo há realmente um número finito de servidores que, essencialmente, saber onde
todos os arquivos. coms são ou todos as redes. são, todo o
. Orgs são, e assim por diante.
>> Então, quando você ir em frente e comprar um domínio nome de um lugar como Nome barato ou
Go Daddy ou qualquer outro site, um dos os principais passos que você terá que fazer
você, se você fizer isso, mesmo para o seu final, projeto, é dizer o registrador
de quem você está comprando o domínio nome, quem no mundo sabe o seu
endereços IP do site, que seus servidores de nome são.
>> Então, se você usar, por exemplo CS50 da conta de hospedagem - acontece que temos
esta conta através dreamhost.com que é um
popular, empresa de hospedagem -
eles vão te dizer que você deve comprar seu domínio e dizer ao mundo que
servidor o nome do seu domínio é ns1.dreamhost.com, ns2.dreamhost.com,
e ns3.dreamhost.com.
>> Mas é isso.
A compra de um nome de domínio significa dar-lhes o dinheiro e obter a propriedade da
domínio, mas é mais como um aluguel embora.
Você obtê-lo por um ano e depois conta recorrentemente você para o resto da
sua vida até que você cancele o nome de domínio.
E, em seguida, dizer-lhes que os servidores de nomes são.
Mas, então, você é feito com seu registro.
E a partir daí você vai interagir apenas com sua empresa de hospedagem, que
no caso do CS50 será DreamHost.
Mas, novamente, mais documentação será fornecido a você se você decidir ir
por esse caminho.
>> Então, se você fizer isso depois do curso de final, simplesmente pesquisando hospedagem web
empresa vai transformar-se milhares de opções.
E eu, em geral, incentivá-lo a pedir a amigos que poderia ter usado um
empresa antes de se recomendar eles e teve uma boa experiência.
>> Porque não há um monte de Fly By Night empresas de hospedagem web, como um sujeito em
porão de sua casa com um servidor que tenha um endereço IP.
Ele tem alguns RAM extra e disco rígido espaço e só vende web hosting
contas, mesmo que não há nenhuma maneira que servidor pode lidar com centenas de
usuários ou milhares de usuários.
Então percebe que você vai ter o que você paga.
>> Por um bom tempo para a minha casa pessoal página - e isso era totalmente aceitável
porque eu tinha, tipo, dois de visitantes por mês -
Eu estava pagando, como, 2,95 dólares por mês.
E eu tenho certeza de que era no porão da casa de alguém.
Mas, novamente, você não tem necessariamente quaisquer garantias de uptime ou
escalabilidade.
Então, novamente, normalmente você está procurando em algo mais do que isso.
>> Bem, o que dizer de SSL?
Então o que é SSL utilizado?
Vamos agora começar a dirigir no direções de segurança e as coisas que
pode nos prejudicar.
Especialmente quando você se aventurar em seu próprio país.
>> O que é SSL, ou o que é SSL utilizado?
Segurança, OK.
Então, ele é usado para a segurança.
O que significa isso?
Por isso significa Secure Sockets Layer.
E isso é indicado por um URL que começa com https://.
Muitos de nós provavelmente nunca digitou https://, mas você vai descobrir que muitas vezes
o seu browser é redirecionado de HTTP para HTTPS para que tudo esteja lá
depois codificado.
>> FYI, usando SSL requer normalmente que você tem um endereço IP exclusivo.
E, normalmente, para obter um endereço IP exclusivo você precisa pagar uma hospedagem
empresa alguns dólares a mais por mês.
Então, que isso é muito facilmente implementado nos dias de hoje através da compra de um IP
endereço e através da compra o que é chamado um certificado SSL.
Mas percebo que ele vem com algum custo adicional.
E, como vamos tentar assustar em apenas um pouco, não é mesmo necessariamente 100%
protetor de tudo o que é você está tentando proteger.
>> Assim, por segurança, eu pensei que eu ia fazer uma espécie de acaso segue aqui.
Como você poderia saber da palestra de CS50 videos, nossa equipe de produção tem sido um
fã como eu tenho de tomar muito bom fotografia do campus, e aérea
fotografia mais recentemente.
Se você olhar para cima e você vê algo voando com uma pequena câmera,
ele pode realmente ser CS50.
E eu apenas pensei que eu iria partilhar minuto algumas das imagens que a equipe tem
reunidos, particularmente quando olhamos para o semestre da primavera e no próximo outono.
Se algum de vocês tem um talento especial para fotografia, videografia, faríamos
adoraria te envolver nos bastidores.
Mas mais sobre esses detalhes em uma semana.
>> [MUSIC]
>> DAVID J. MALAN: Acontece que há uma campo de golfe em miniatura no topo
o estádio que nunca soube.
>> [MUSIC]
>> DAVID J. MALAN: Você pode ver o Esboço de o avião lá.
>> [MUSIC]
>> DAVID J. MALAN: A melhor parte aqui é, assista o corredor à esquerda.
>> [MUSIC]
>> DAVID J. MALAN: Outro exemplo de que você pode fazer com a tecnologia que é
apenas tangencialmente, francamente, relacionadas com a segurança.
Mas eu pensei que seria uma mais maneira divertida de apenas dizer, segurança.
Então vamos ver se não podemos assustar vocês agora não só com um pouco de alguns
ameaças, mas também um subjacentes compreensão do que essas ameaças
são de modo que você pode avançar decidir como e se defender
se contra essas coisas e em menos para estar atento a eles como você
tomar decisões quanto à existência ou não de enviar o e-mail, se deve ou não fazer
em que site, se deve ou não utilizar o acesso Wi-Fi de cyber café
ponto para que você saiba o que o ameaças são na verdade em torno de você.
>> Então Jonathan refere a algo gosto desta segunda-feira.
Ele tinha uma captura de tela da janela.
Este é de um Mac.
Como muitos de vocês já instalado software no seu Mac ou PC?
Obviamente todos.
Como muitos de vocês têm dado muita atenção para digitar sua senha
quando solicitado?
Quero dizer, mesmo que eu não fizer isso, francamente.
Então, alguns de nós são bons em ser paranóico.
Mas considere o que você está realmente fazendo aqui.
>> Em um típico Mac ou PC que você tem uma conta de administrador.
E, normalmente, você é o único a usar um computador portátil, pelo menos, nos dias de hoje.
Então a sua conta, Malan ou JHarvard ou seja o que for, é o
conta de administrador.
E o que isso significa é que você tem acesso root ao seu computador.
Você pode instalar o que quiser, excluir qualquer coisa que você quiser.
>> E, normalmente, nos dias de hoje, por causa da decisões de projeto datada de anos atrás,
a forma mais software é instalado é como um administrador.
E mesmo se o seu Mac ou PC tem pelo menos ficou esperto o suficiente sobre o
anos, com as últimas encarnações de Mac OS e Windows para não correr o
nome de usuário por padrão como o administrador, quando você baixar algum
novo programa da internet e tentar instalá-lo, você provavelmente vai
ser solicitado pela sua senha.
Mas o problema é, nesse ponto, você está literalmente entregando as chaves do seu
computador para qualquer aleatório programa que você acabou de baixar e
permitindo-se a instalação tudo o que quer.
>> E, como Jonathan aludido, perceber que se poderia dizer que ele quer
instalar o software que você se importa sobre, Spotify ou o iTunes ou qualquer outra coisa
que é que você está tentando instalar.
Mas você está, literalmente, confiando o autor ou autores do software para
só fazer o que o programa é suposto fazer.
>> Mas não há absolutamente nada parando a maioria dos programas na maioria
sistemas operacionais de exclusão de arquivos, de enviá-las para alguma empresa do
site, a partir de corrico ao redor, para criptografar as coisas.
E mais uma vez, temos uma espécie de construção uma infra-estrutura toda sobre
os anos na confiança.
E assim perceber que você acabou de confiar nas pessoas ao acaso e ao acaso
empresas para a maior parte.
>> E Jonathan aludiu também, às vezes essas próprias empresas são uma espécie de
conscientemente malicioso, tudo bem?
Sony pegou um monte de críticas de alguns anos atrás para instalar o que foi chamado de
kit rootkit nos computadores das pessoas sem o seu conhecimento.
E a essência disso foi que, quando você comprei um CD, por exemplo, que eles
não quero que você seja capaz de copiar ou rasgar a música fora, o CD seria
instalar, sem o seu conhecimento, um rootkit em seu computador.
Rootkit software apenas o que significa que é executado como administrador que potencialmente
faz coisas ruins.
>> Mas entre as coisas que essa coisa se foi ele escondeu-se.
Então, alguns de vocês podem ser muito mais experiente com o seu computador e saber, bem, eu
pode apenas abrir o Gerenciador de Tarefas ou a Activity Monitor e posso olhar para todos
dos programas nomeados arcanely que estão em execução.
E se alguma coisa parece suspeito Eu vou matá-lo ou apagá-lo.
Mas isso é o que o rootkit fez.
Ele basicamente disse que, se correr Task Manager, não mostrar-se.
>> Assim, o software foi.
E somente se você realmente olhou difícil você poderia até mesmo encontrá-lo.
E isto foi feito em nome de proteção contra cópia.
Mas imaginem o que poderia ter sido feito em contrário.
>> Agora em termos de proteger a si mesmo.
Um monte de sites são maravilhosamente gracioso em que eles colocaram estes
ícones de cadeado em sua página inicial que significa que o site é seguro.
Isto é de bankofamerica.com esta manhã.
E o que isso pequeno ícone de cadeado não significa que ao lado do botão Sign In?
>> Absolutamente nada.
Isso significa que alguém sabe como usar Photoshop para fazer uma imagem de um
ícone de cadeado.
Como literalmente, o fato de que é não se destina a ser positiva
sinal para o utilizador como, ooh, site seguro.
Devo confiar neste site e agora digitar meu nome de usuário e senha.
E esta tem sido convencional para anos, como recentemente, esta manhã.
>> Mas considere os hábitos que isto está a ficar-nos para.
Considerar a mensagem implícita de que todos destes bancos neste caso foram
enviando-nos por anos.
Se você ver cadeado, em seguida, prenda.
Tudo bem?
>> Então, como você pode abusar desse sistema de confiança, se você é o vilão?
Coloque um cadeado no seu site, e logicamente, os usuários têm sido
condicionadas durante anos para assumir cadeado significa seguro.
E isso pode ser realmente seguro.
Você pode ter uma maravilhosa seguro SSL conexão HTTPS para uma
site falso. com.
E ninguém no mundo pode ver que você está prestes a entregar-lhe
seu nome de usuário e senha à sua conta.
>> Isso, porém, talvez, uma pouco mais tranquilizador.
Portanto, esta é uma captura de tela do topo do meu navegador esta manhã em
bankofamerica.com.
E observe também aqui tem um ícone de cadeado.
O que significa, neste contexto, no Chrome, pelo menos?
>> Então, isso agora está usando SSL.
Portanto, esta é realmente uma coisa melhor.
E o fato de que o Chrome é o que torna verde é para chamar a nossa atenção
para o facto de que este é não só sobre SSL.
Esta é uma empresa que alguém tem verificado é realmente
bankofamerica.com.
E isso significa que o Bank of America, quando for comprar seu chamado SSL
certificado, essencialmente grande acaso, números um pouco aleatórias que implementam
segurança para eles, eles têm sido verificada por meio de um terceiro independente
partido que diz, sim.
Este é realmente o CEO do Bank of América tentando comprar o certificado.
Chrome, portanto, confiar que autoridade de certificação e dizer em
verde, este é bankofamerica.com.
E Bank of America paga apenas alguns centenas de dólares para que um ou alguns
mil em oposição a um algumas dezenas de dólares.
>> Mas também aqui, quantos de vocês já comportado de forma diferente, porque
a URL no seu navegador é verde em vez de preto?
Certo?
Então, alguns de nós.
E isso é bom para ser paranóico.
Mas, mesmo assim, aqueles de vocês que ainda observar essas coisas, você realmente
parar o registro em uma outra forma segura site, se a URL não é verde?
Tudo bem, então provavelmente não, certo?
Pelo menos a maioria de nós, se não é verde, provavelmente você só vai
para ser assim, que seja.
Tipo, eu quero entrar neste site.
É por isso que estou aqui.
Eu vou fazer o login no entanto.
>> Como um aparte, o Chrome é um pouco melhor sobre isso.
Mas há um monte de navegadores como Firefox, por exemplo, pelo menos para
algum tempo, onde o ícone de cadeado é, você pode realmente colocar qualquer
ícone de sua preferência.
Deixe-me ver o que a versão mais recente do Firefox parece.
Então, se vamos para CS50.net.
>> OK, então eles ficaram melhor assim.
O que os navegadores usados ​​para fazer é gostar, aqui está, por exemplo, [? SAAS é?]
coroar-se aqui.
Esse é o chamado favorito ícone de um site.
Anos atrás -
realmente não há muito tempo - que pouco escudo teria sido direita
aqui ao lado da URL.
Porque algum gênio decidiu que seria apenas olhar muito elegante ter
seu direito do logotipo gráfica ao lado de seu URL.
E design inteligente, que na verdade é bastante convincente.
>> Então, o que mau começo cara está fazendo?
Eles começaram a mudar o seu favorito ícones, ou o seu ícone padrão para um
homepage para não ser uma crista mas de um cadeado, o qual tinha
absolutamente nenhum sentido.
Diferente do seu ícone favorito foi um cadeado que não tinha
indicações de segurança.
>> Assim, as aulas aqui são um casal que eu penso.
Uma delas é que há realmente alguns mecanismos bem intencionados para
ensinando-nos os usuários sobre segurança mesmo Se você ainda não estavam cientes que verde
significa ou o que ainda HTTPS significava.
Mas, se esses mecanismos nos levar o mau hábito de sites de confiança
quando vemos esses sinais positivos, eles estão muito facilmente abusado como vimos
apenas um momento atrás, com algo bobo assim.
>> Então, seqüestro de sessão entra em jogar, como dissemos antes,
com biscoitos, por exemplo.
E o que isso realmente significa?
Bem com o seqüestro de sessão é tudo sobre roubar biscoitos de alguém.
Então, se eu abrir Chrome aqui, para exemplo, e eu abrir o Inspector
aqui e eu vou A guia Rede -
e nós temos feito isso antes -
e eu ir para algo como http://facebook.com Enter, um todo
monte de coisas passa pela tela por causa de todas as imagens e CSS e
Arquivos JavaScript.
>> Mas se eu olhar para este aqui notar que o Facebook é realmente uma plantação
ou mais cookies no meu navegador aqui.
Portanto, estas são essencialmente a mão selos que me representam.
E agora espero que meu navegador apresentar este novo e de novo quando
revisitar o site.
Mas isso só é seguro, que disse que um Algumas semanas atrás, se você estiver usando SSL.
>> Mas mesmo SSL em si pode ser comprometida.
Considere depois de toda a forma de trabalho de SSL.
Quando seu navegador se conecta a um computador remoto servidor através de https://, longa história curta,
criptografia é envolvido.
Não é tão simples como César ou Visionaire ou mesmo DES, DES a partir de um
tempo de volta em pset2.
É mais sofisticado do que isso.
É chamado de criptografia de chave pública.
Mas realmente grande e realmente aleatória números são usados ​​para embaralhar
informações entre o ponto A, você, eo ponto B, como facebook.com.
>> Mas o problema é, como muitos de nós novamente nunca digitar https:// para começar
nossa conexão de site em que o modo seguro?
Quero dizer, como muitos de vocês mesmo Tipo http://facebook.com?
Tudo bem, se você fizer isso, como, Olá.
Você não precisa fazer isso mais, certo?
O navegador vai descobrir isso.
>> Mas a maioria de nós realmente basta digitar facebook.com.
Porque se estamos usando um navegador, o navegadores ficaram bastante inteligente,
2013, para assumir, se você estiver usando um browser, você digita um endereço,
provavelmente vai querer acessá-lo não via e-mail ou mensagem instantânea.
Você quer dizer HTTP ea porta 80.
Essas convenções foram adotadas.
>> Mas como funciona o redirecionamento?
Bem, observe o que acontece aqui.
Se eu voltar para o Chrome -
e vamos fazer isso em incógnito Modo de modo que todo o meu
cookies são jogados fora.
E deixe-me ir aqui para, novamente, facebook.com.
E vamos ver o que acontece.
>> Lembre-se que o primeiro pedido foi na verdade apenas para facebook.com.
Mas qual foi a resposta que eu tenho?
Não era um 200 OK.
Foi 300, ou 301, que é um redirecionar a dizer-me para ir para
http://www.facebook.com, que é Facebook, onde quer que eu vá.
Mas, então, se olharmos para o próximo pedido, e já vimos isso antes,
perceber o que é a sua segunda resposta.
Especificamente o que eles querem me agora ir para a versão SSL do Facebook.
>> Então aqui está uma oportunidade.
Esta é uma característica maravilhosamente útil apenas da web e HTTP.
Se o usuário final como o Facebook me quer para ficar na versão segura do seu
website, ótimo.
Eles vão me redirecionar para mim.
E assim, eu não tenho sequer pensar sobre isso.
>> Mas e se entre o ponto A e B, entre você e Facebook, há alguns
bandido, há algum sistema administrador de Harvard que é curioso
para ver quem são seus amigos.
Ou há alguma -
anos atrás, este utilizado para parecer loucura -
mas há alguma entidade governamental como o NSA que está realmente interessado
em que você está cutucando no Facebook.
Onde está a oportunidade de lá?
Bem, contanto que alguém tem o suficiente técnico mais experiente e eles têm acesso
à sua rede real através de Wi-Fi ou alguns fios física,
o que eles poderiam fazer?
>> Bem, se eles estão na mesma rede você e eles sabem alguma coisa sobre
/ Endereços de IP e IP e DNS e como TCP Tudo isso funciona, o que se
homem no meio, o que se isso National Agência de Segurança, o que for
Pode ser, mas o que acontece se essa entidade simplesmente responde mais rapidamente do que a Facebook
seu pedido HTTP e diz: oh, eu sou Facebook.
Vá em frente, e aqui está o HTML para facebook.com.
>> Os computadores são muito danado rápido.
Assim, você pode escrever um programa em execução no um servidor como nsa.gov que quando
ouve um pedido por facebook.com, muito rapidamente atrás da
cenas recebe o making facebook.com reais perfeitamente [? esque?] seguro
Conexão SSL entre NSA e entre Facebook, conseguir que o HTML muito
segurança para a página de login, e em seguida o servidor NSA apenas responde a você
com uma página de login para facebook.com.
>> Agora, quantos de vocês iria nem perceber que você está usando o Facebook através de HTTP
ainda nesse ponto porque você acidentalmente ligado e nsa.gov
Facebook não?
As URLs não mudar.
Tudo isso está sendo feito nos bastidores.
Mas a maioria de nós, eu incluído, provavelmente não notaria
um detalhe tão pequeno.
>> Então você pode ter um perfeitamente viável conexão entre você eo que você
acho que é o Facebook, mas não há uma o chamado homem no meio.
E este é um termo geral para o homem o ataque do meio onde você tem alguns
entidade entre você eo ponto B é de alguma forma manipular, roubar ou
observando seus dados.
Assim, mesmo SSL não é infalível, especialmente se você foi enganado
não ligá-lo por causa da forma como estes mecanismos subjacentes realmente funcionar.
>> Então, hoje uma lição, então também é se você realmente quer ser paranóico -
e mesmo aqui há ameaças -
você deve realmente começar a entrar o hábito de digitar https://www
qualquer nome de domínio que você realmente se preocupam.
>> E como um aparte também há ainda uma outra ameaça com
CONTA seqüestro de sessão.
Muitas vezes, quando você visita um site como facebook.com, a menos que o
servidor foi configurado para dizer que esse selo lado, colocar em você
ontem deve ser proteger a si mesmo, seu navegador pode muito bem, em cima
coisas como visitar facebook.com google.com, twitter.com, o seu browser
pode apresentar apenas esse selo mão para ser golpeado para baixo e disse: não.
Use SSL.
>> Mas é tarde demais nesse ponto.
Se você já enviou a sua mão selo, o seu cookie, em claro com
não SSL, você tem uma fração de segundo vulnerabilidade em que alguém cheirando
o seu tráfego, se companheiro de quarto ou NSA, pode, então, usar esse mesmo cookie e
com um pouco de conhecimento técnico, apresentá-lo como o seu próprio.
>> Outro ataque você pode não tenham pensado.
Este é realmente em você, se você estragar isso por escrito algum site que
de alguma forma utiliza SQL.
Então, aqui, por exemplo, é uma tela tiro de logon de Harvard.
E é um exemplo geral de algo com um
nome de usuário e senha.
Super comum.
Então vamos supor que existe e SSL não há homem no meio ou
qualquer coisa assim.
Agora estamos nos concentrando no servidor de código que você pode escrever.
>> Bem, quando eu digitar um nome de usuário e senha, suponha que o serviço PIN
é implementado em PHP.
E você pode ter um código no servidor assim.
Obter o nome do usuário a partir do posto de super global e obter a senha e, em seguida,
se estiver usando algum pset7 como código há uma função de consulta
que pode fazer isso.
Selecione Estrela de usuários onde nome de usuário é igual ao que é igual e senha.
>> Isso parece, à primeira vista, totalmente razoável.
Este é sintaticamente código PHP válido.
Logicamente não há nada errado com isso.
Presumivelmente, há mais algumas linhas que realmente fazer alguma coisa com a
resultado que volta a partir da base de dados.
Mas isso é vulnerável para pelas razões a seguir.
>> Observe que, como um bom cidadão, Eu coloquei entre aspas, single
citações, o nome de usuário.
E eu coloquei entre aspas simples a senha.
E isso é uma coisa boa, porque eles são não deveria ser números.
Normalmente eles estão indo para ser um texto.
Então, eu estou citando-os como strings.
>> E se eu agora avançar ainda mais e se - e eu já tirou as balas do
PIN serviço temporariamente -
o que se eu tentar logar como Presidente [? Scroob?]
mas eu afirmo que minha senha está 12345 'OR '1' = '1, e aviso
o que eu não fiz.
Eu não fechar o outro apóstrofo.
Porque eu sou muito afiada aqui como o cara mau.
E eu estou supondo que eles são que você é não é muito bom com o seu
PHP e MySQL de código.
Eu estou supondo que você não está verificando para a presença de aspas.
>> Então, o que aconteceu é que, quando o seu usuário digitou em que string,
a consulta que você está prestes a criar parecido com este.
E longa história curta, se você e algo juntos ou você ou algo assim
juntos isso vai voltar uma linha do banco de dados.
Porque é sempre o caso em que um é igual a 1.
>> E só porque você não antecipar que seus usuários, boas ou más, podem
tem um apóstrofo em seu nome criaram uma consulta SQL que ainda é
válido, e vai voltar agora mais resultados que você poderia ter previsto.
E assim, este bandido agora tem potencialmente conectado ao seu servidor
porque seu banco de dados está retornando uma linha mesmo se ele ou ela não tem idéia do que
[? ?] Senha real do Scroob é.
>> Oh, eu percebi um erro de digitação aqui.
Eu deveria ter dito a senha é igual a 12345 como o anterior
exemplo 1 ou igual a 1.
Eu vou consertar isso online.
>> Então, por que nós temos você usando a consulta função com pontos de interrogação?
Uma das coisas que a função de consulta que para você é que faz-se de que
quando você passar argumentos após o vírgulas aqui assim que a consulta
que é realmente enviado para o banco de dados parecido com este.
Muita mais feio de se ver, mas de volta barras foram automaticamente
inserido, para evitar que precisamente ataque de injeção que eu mostrei um
momento atrás.
>> Agora a diversão XKCD que eu pensei que eu ia puxar aqui que espero que agora deve ser uma
pouco mais compreensível é este aqui.
>> Um pouco?
Talvez precisemos de um pouco mais discussão sobre isso.
Portanto, este é aludindo a uma criança chamado Bobby, que, de alguma forma levado
vantagem de um site que é apenas confiando que o que o usuário digitou
nos não é, de fato, o código SQL, mas é na verdade uma string.
>> Agora você deve se lembrar que a queda -
você pode ter visto isso - significa queda excluir uma tabela, excluir um banco de dados.
Então, se você essencialmente afirmam que seu nome é Robert "; droptabl
estudentsomething,]
você pode muito bem enganar o banco de dados não só para verificar que você é
na verdade Robert, mas também ponto e vírgula continuar a cair da mesa.
>> E assim, ataques de injeção de SQL pode na verdade, ser tão ameaçador como esta
através do qual você pode apagar os dados de alguém, você pode selecionar mais datas do que
pretendido, você pode inserir ou atualização de dados.
E você pode realmente ver este sobre a exercícios em casa, não para mal-intencionado
propósitos, mas apenas para instrução, é qualquer momento você será solicitado a fazer logon
no site, especialmente algum tipo de não, site muito popular muito público,
tente efetuar login como John O'Reilly ou alguém com uma
apóstrofo em seu nome.
Ou, literalmente, basta digitar apóstrofe, pressione Enter, e ver o que acontece.
>> E muitas vezes, tragicamente, pessoas não higienizado seus insumos e
a certeza de que coisas como citações ou ponto e vírgula escapamos.
É por isso que em pset7 damos Você esta função consulta.
Mas não sob apreciar exatamente o que está fazendo para você.
>> Assim, com o que disse, gosta de usar a web esta semana.
E vamos vê-lo na segunda-feira.
>> Na próxima CD50.
>> [MUSIC]