Showing posts with label buffer. Show all posts
Showing posts with label buffer. Show all posts

Saturday, October 28, 2017

Os transbordamentos de buffer

Os transbordamentos de buffer são um problema contínuo e alguns culpam a linguagem de programação C, que foi usada para escrever muitos programas modernos, processos de protocolo e sistemas operacionais. As bibliotecas de programação originais para C não forneceram verificação de limites para entrada orientada para texto. Isso pode ter feito programas mais eficientes quando os computadores eram menores e mais lentos, mas os riscos de transbordamento do buffer não justificam mais os ganhos de eficiência.
Linguagens de programação modernas, como Java e muitas linguagens de script, verificarão automaticamente o estouro ou o transbordamento de buffer. No entanto, muitos programadores ainda usam C. As bibliotecas C modernas fornecem maneiras de verificar o estouro do buffer, mas nem todos os programadores os entendem e usam.


(Smith 66)
Smith, Richard E. Elementary Information Security, 2ª edição. Jones & Bartlett Learning, 20150223. Arquivo do VitalBook.

BUFFERS


Embora a maioria das instruções do computador envolvam aritmética de algum tipo, nem todos os dados são estritamente numéricos. Uma grande quantidade de processamento envolve blocos de texto ou outros dados estruturados ou dados "não processados" que estão sendo movidos entre circuitos de I/O, como os de conexões de rede.
Um roteador de rede é responsável por dirigir o tráfego de rede na Internet. Um roteador ocupado em um site grande transfere significante quantidades de dados enquanto tenta realmente "procurar" o mínimo possível. O roteador tenta passar o tempo todo dando comandos aos circuitos de I/O da rede. Quando gasta tempo olhando os dados dentro de uma mensagem de rede, atrasa a entrega da mensagem.
Quando os circuitos de I/O do roteador recebem uma mensagem de rede, os dados são lidos em uma área na RAM. Uma área na RAM usada para mover dados é chamada de buffer. No máximo, o roteador analisa alguns bytes no início do buffer e então informa uma interface de rede para transmitir o conteúdo do buffer em outra rede. Buffers sempre residem em uma seção de dados. Se o buffer for usado apenas dentro de um procedimento específico, o buffer provavelmente residirá na pilha(stack).


(Smith 57)
Smith, Richard E. Elementary Information Security, 2ª edição. Jones & Bartlett Learning, 20150223. Arquivo do VitalBook.
A citação fornecida é uma diretriz. Verifique cada citação para verificar a precisão antes de usar.