| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> Content
    Gli effetti di buffer overflow e Stringhe di formato di flusso di programma
    anche gli aspetti più modesti di un programma possono presentare le minacce alla sicurezza . Ingresso utente di base a cortocircuitare codice interno di un programma in vari modi . L'ingresso può utilizzare il funzionamento di funzioni di stampa per accedere a flusso di controllo del programma sovrascrivendo i confini della funzione . Oppure, può superamento dei limiti di buffer impostati per esso dal programmatore per modificare i dati al di fuori del suo spazio programmatore - designati. In entrambi i casi , l'input dell'utente influisce su come il programma viene eseguito , potenzialmente verso fini malevoli . Stringhe di formato

    Formattare le stringhe in C e C + + sono parte delle funzioni di ingresso e di uscita. La stringa di formato contiene i dati per i dati visualizzati sullo schermo . Stringhe di formato hanno due componenti principali . Il primo è la stringa di base per la stampa , che contiene i caratteri e la punteggiatura . La seconda componente comprende carattere speciale segnato con segni di percentuale che fungono da segnaposto per i dati variabili . Esistono questi simboli nella stringa , e vengono sostituiti durante l'uscita dai valori contenuti nelle variabili . Il seguente esempio illustra una printf di base con una stringa di formato :

    char x = " c " ; int y = 10 ;

    printf ( "Stampa di caratteri% c e decimali % d " , , x , y) ;
    Format String Attacchi

    l' insicurezza delle stringhe di formato sta nel come i simboli inseriti nella stringa di riferimento in altre parti del programma . Ad esempio , un utente malintenzionato dati che entrano in una variabile utilizzata in una stringa di formato può iniettare simboli che le permettono di accedere ad altri fotogrammi di esecuzione del programma . Così facendo , l'attaccante può modificare i valori in variabili di fuori del campo di applicazione della funzione di stampa . Inoltre , l'utente malintenzionato potrebbe eventualmente accedere ai valori in memoria che rappresentano la posizione delle funzioni . L'utente malintenzionato potrebbe quindi modificare tale valore per puntare a una diversa funzione , modificando in tal modo il flusso di esecuzione e sostanzialmente dirottamento del programma.
    Input buffer

    ingresso buffer sono spazi di archiviazione dati creati dal programmatore per contenere i dati inseriti dall'utente . Il più delle volte , i buffer di ingresso gestire l'input dell'utente di login nomi e password . In particolare per il linguaggio di programmazione C , che non comprende la gestione di stringhe nativo , buffer di input esistono come array di caratteri con una dimensione impostata . In questo caso , spetta al programmatore di allocare i dati per l'input dell'utente .
    Buffer Overflow

    Un utente malintenzionato potrebbe sfruttare i limiti di questi buffer di inondandolo di dati . Nel semplice esempio , un array di caratteri scopo di tenere un registro in nome potrebbe essere 20 spazio assegnato , ma un attaccante dà più di venti caratteri per elaborare . In questo caso , i caratteri extra sovrascrivere locazioni di memoria immediatamente dopo l'array . Queste posizioni di memoria eventualmente in possesso dei dati rilevanti per l'esecuzione del programma , come ad esempio le variabili condizionali per le istruzioni di controllo di flusso o riferimenti funziona in pila . Come l' attacco stringa di formato , questo permette essenzialmente l'attaccante di dirottare il programma .

    Previous :

    next :
      Articoli Correlati
    ·Come visualizzare un file come Hex 
    ·Come faccio a sostituire tutte le barre rovesciate di p…
    ·Come utilizzare Oracle SQL Loader per analizzare XML 
    ·Come creare una trama Mentre in un loop in MATLAB 
    ·Come creare un rollover utilizzando la programmazione H…
    ·HTML Guida di colore per il grigio - blu 
    ·Come inviare un fax in ASP.Net 
    ·Qual è la complessità temporale di una ricerca in pro…
    ·Come fare un diagramma di flusso di un programma con mo…
    ·Come fare uno script AutoIT Infinite Loop 
      Articoli in evidenza
    ·Come ottenere un pulsante di scelta selezionato in una …
    ·Che cosa stanno bloccando Dichiarazioni 
    ·Come ordinare utilizzando la casella a discesa 
    ·Come creare innovativa tecnologia digitale interattiva 
    ·XNA effetti Pixel Shader 
    ·Come utilizzare VBA per Centro di testo in un documento…
    ·Come modificare Collegamenti esterni : PHP Iframe 
    ·Come ordinare la DataGrid di Silverlight 
    ·Come convertire da una stringa in un numero in MySQL 
    ·Come fare il vostro proprietario Keyboard Character 
    Copyright © Conoscenza Informatica http://it.wingwit.com