Biztonsági és felhasználói bevitel
A felhasználói adatok, amelyek bármilyen típusú bemenet (webes kérelemből vagy URL-címből származó adatok, a Microsoft Windows Forms-alkalmazások vezérlőinek bemenetei stb.) hátrányosan befolyásolhatják a kódot, mivel gyakran az adatok közvetlenül paraméterekként szolgálnak más kódok meghívásához. Ez a helyzet hasonló ahhoz a rosszindulatú kódhoz, amely furcsa paraméterekkel hívja meg a kódot, és ugyanazokat az óvintézkedéseket kell tenni. A felhasználói bevitelt valójában nehezebb biztonságossá tenni, mert nincs veremkeret a potenciálisan nem megbízható adatok jelenlétének nyomon követéséhez.
Ezek a legapradékosabb és legnehezebb biztonsági hibák közé tartoznak, mivel bár létezhetnek olyan kódban, amely látszólag nem kapcsolódik a biztonsághoz, átjárók, amelyek rossz adatokat adnak át más kódoknak. A hibák kereséséhez kövessen bármilyen bemeneti adatot, képzelje el a lehetséges értékek tartományát, és gondolja át, hogy az adatokat jelölő kód képes-e kezelni az összes ilyen esetet. Ezeket a hibákat a tartományellenőrzéssel és a kód által nem kezelhető bemenet elutasításával javíthatja ki.
A felhasználói adatokkal kapcsolatos néhány fontos szempont a következők:
A kiszolgáló válaszaiban szereplő felhasználói adatok a kiszolgáló ügyfélwebhelyének kontextusában futnak. Ha a webkiszolgáló felhasználói adatokat vesz fel, és beszúrja a visszaadott weblapra, előfordulhat például, hogy tartalmaz egy <szkriptcímkét> , és úgy fut, mintha a kiszolgálóról származna.
Ne feledje, hogy az ügyfél bármilyen URL-címet kérhet.
Fontolja meg a bonyolult vagy érvénytelen elérési utakat:
.. \ , rendkívül hosszú útvonalak.
Helyettesítő karakterek (*) használata.
Tokenbővítés (%token%).
Különleges jelentésű utak furcsa formái.
Alternatív fájlrendszer-streamnevek, például
filename::$DATA
.A fájlnevek rövid verziói, például
longfi~1
a következőhözlongfilename
: .
Ne feledje, hogy az Eval(userdata) bármire képes.
Legyen óvatos a néhai kötéssel egy olyan névhez, amely bizonyos felhasználói adatokat tartalmaz.
Ha webes adatokkal foglalkozik, vegye figyelembe a különböző menekülési formákat, amelyek megengedettek, beleértve a következőket:
Hexadecimális feloldások (%nn).
Unicode-feloldások (%nnn).
Az UTF-8 túlhosszúságú feloldása (%nn%nn).
Kettős feloldások (%nn : %mmnn, ahol %mm a(z) %.
Legyen óvatos az olyan felhasználónevekkel, amelyek több canonical formátumúak lehetnek. Gyakran használhatja például a MYDOMAIN\felhasználónév űrlapot vagy a username@mydomain.example.com űrlapot.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: