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
- sztring használata
- bemenet-ellenőrzési
- jelszóhasználati
- biztonsági riasztások
- Kapcsolódó témakörök
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.
- CB_GETLBTEXT
- LVM_GETISEARCHSTRING
- SB_GETTEXT
- SB_GETTIPTEXT
- TB_GETBUTTONTEXT
- TTM_GETTEXT
- TVM_GETISEARCHSTRING
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. |
Kapcsolódó témakörök
-
Egyéb erőforrások