Aracılığıyla paylaş


strict_gs_check

Bu pragma Gelişmiş güvenlik denetimi sağlar.

#pragma strict_gs_check([push,] on ) 
#pragma strict_gs_check([push,] off ) 
#pragma strict_gs_check(pop)

Notlar

Derleyiciye işlevi yığınında yığın tabanlı bir arabellek taşması bazı kategorileri algılanmasına yardımcı olmak için rasgele bir tanımlama bilgisi eklemek için kullanın.Varsayılan olarak, tüm işlevleri için bir tanımlama bilgisi (arabellek güvenlik denetimi) /gs derleyici seçeneği eklemez.Daha fazla bilgi için bkz. /gs (arabellek güvenlik denetimi).

/gs ile (arabellek güvenlik strict_gs_check etkinleştirmek için işaretleyin) derlemeniz gerekir.

Bu pragma zararlı veri için sunulan kod modülleri kullanın.Bu pragma çok agresif ve bu savunma gerekmeyebilir, ancak sonuçta elde edilen uygulama performans üzerindeki etkisini en aza indirmek için en iyi duruma getirilmiş işlevler için uygulanır.

Bu pragma kullansanız bile, güvenli kod yazma ölçülerde.Diğer bir deyişle, kodunuz hiçbir Arabellek taşmaları olduğundan emin olun.strict_gs_check uygulama kodunuzda kalan Arabellek taşmaları korunmasına.

Örnek

Biz yerel bir dizi için bir dizi kopyaladığınızda aşağıdaki kodda bir arabellek taşması oluşur.Bu kodla /gs derleme yaparken, array veri türünü gösteren bir işaretçidir çünkü yığında tanımlama bilgisi eklenir.Yığın tanımlama bilgisi strict_gs_check pragma ekleme işlevi yığın halinde zorlar.

// pragma_strict_gs_check.cpp
// compile with: /c

#pragma strict_gs_check(on)

void ** ReverseArray(void **pData,
                     size_t cData)
{
    // *** This buffer is subject to being overrun!! ***
    void *pReversed[20];

    // Reverse the array into a temporary buffer
    for (size_t j = 0, i = cData; i ; --i, ++j)
        // *** Possible buffer overrun!! ***
            pReversed[j] = pData[i]; 

    // Copy temporary buffer back into input/output buffer
    for (size_t i = 0; i < cData ; ++i) 
        pData[i] = pReversed[i];

    return pData;
}

Ayrıca bkz.

Başvuru

Pragma yönergeleri ve anahtar sözcük __Pragma

/gs (arabellek güvenlik denetimi)