Megosztás a következőn keresztül:


Biztonsági szempontok: Microsoft Windows-vezérlők

Ez a témakör a Windows-vezérlőkkel kapcsolatos biztonsági szempontokról nyújt tájékoztatást. A jelen témakörben található információk nem nyújtanak minden szükséges információt a biztonsági problémákról – használja kiindulási pontként és hivatkozásként ehhez a technológiai területhez.

A számítógépek közötti összekapcsolás gyakori; a fejlesztő fő gondjának az alkalmazásbiztonságnak kell lennie. Az alábbi szakaszok a Windows-vezérlők programozása során megfontolandó biztonsági problémákat ismertetik.

Null értékű vezérlőüzenetek

Számos vezérlőüzenet és makró rendelkezik sztringparaméterekkel. Ezek az üzenetek gyakran nem ellenőrzik a bemeneti sztringeket, különösen nem ellenőrzik a megszüntető '\0'. Amikor egy sztringet paraméterként használó üzenetet hív meg, explicit módon adja meg, hogy a sztring null értékű legyen.

Sztring használata

A Windows-vezérlők programozása során sztringeket kell módosítani. Szinte minden vezérlőelemhez szöveget kell beszúrni. Egy listamező feltöltéséhez például sztringeket kell betöltenie a vezérlőbe. Mivel a sztringek helytelen használata gyakran puffertúllépéseket okoz, óvintézkedéseket kell tenni a biztonsági kockázat elkerülése érdekében.

További információ a puffertúllépésekről: Biztonságos kód írása Michael Howard és David LeBlanc, Microsoft Press, 2002 és ajánlott eljárások a biztonsági API-khoz.

Bemeneti ellenőrzés

Az alábbi vezérlőüzenetek biztonsági problémákat okozhatnak.

Ha a szöveg megváltozik a hívás között, hogy lekérje a szöveg hosszát és a szöveg megjelenítésének vagy felhasználásának idejét, puffertúlcsordulás léphet fel. Ennek elkerülése érdekében a használat előtt ellenőriznie kell a sztringet. Ezenkívül a szöveget lekérő üzenetek, CB_GETLBTEXT, TB_GETBUTTONTEXTés TTM_GETTEXTnem rendelkeznek olyan pufferméretparaméterrel, amely puffertúlcsordulást jelenthet.

Ha CB_GETLBTEXT vagy SB_GETTEXThasznál, először hívja meg CB_GETLBTEXTLEN vagy SB_GETTEXTLENGTH a pufferméret beszerzéséhez. Ezen üzenetek némelyike, TB_GETBUTTONTEXT, LVM_GETISEARCHSTRINGés TVM_GETISEARCHSTRINGNULL paraméterértékkel hívható meg a sztring hosszának lekéréséhez, mielőtt meghívja az üzenetet a sztring lekérésére.

Az az üzenet, amelyre különös figyelmet kell fordítania, az állapotsor SB_GETTIPTEXT üzenet. Ez az üzenet nem tudja lekérdezni a lekérni kívánt sztring hosszát.

Jelszó használata

Ha jelszóval védett szerkesztési vezérlőket (ES_PASSWORD stílust) használ, a lekért szöveget tartalmazó puffert a lehető leghamarabb nullára kell állítani, hogy elkerülje a felhasználó jelszavát a memóriában.

Biztonsági riasztások

Az alábbi táblázat olyan funkciókat sorol fel, amelyek helytelen használata veszélyeztetheti az alkalmazások biztonságát. Az itt felsorolt üzenetek nem adnak meg olyan paramétert, amely megadja a puffer méretét.

Vonás Mérséklés
DlgDirListComboBox Győződjön meg arról, hogy a függvény által használt puffer írható és null értékű.
CB_GETLBTEXT Hívja meg CB_GETLBTEXTLEN a pufferméret beszerzéséhez, majd hívja meg CB_GETLBTEXT a sztring lekéréséhez.
LVM_GETISEARCHSTRING Hívja meg az üzenetet egy NULL paraméterértékkel a pufferméret lekéréséhez, majd hívja meg az üzenetet második alkalommal a sztring lekéréséhez.
SB_GETTEXT Hívja meg SB_GETTEXTLENGTH a pufferméret beszerzéséhez, majd hívja meg SB_GETTEXT a sztring lekéréséhez.
TB_GETBUTTONTEXT Hívja meg az üzenetet egy NULL paraméterértékkel a pufferméret lekéréséhez, majd hívja meg az üzenetet második alkalommal a sztring lekéréséhez.
TTM_GETTEXT Ez az üzenet nem ad módot a puffer méretének megismerésére vagy megadására.
TVM_GETISEARCHSTRING Az üzenet meghívásához adjon meg egy NULL paraméterértéket a pufferméret lekéréséhez, majd hívja meg az üzenetet egy második alkalommal a sztring lekéréséhez.

 

Egyéb erőforrások

Microsoft Security

biztonsági

Microsoft Security Response Center

ajánlott eljárások a biztonsági API-k