CA3061: Ne adjon hozzá sémát URL-cím alapján
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA3061 |
Cím | Ne adjon hozzá sémát URL-cím alapján |
Kategória | Biztonság |
A javítás kompatibilitástörő vagy nem törik | Nem törés |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Nem |
Ok
XmlSchemaCollection.Add(String, String)
A túlterhelés a külső XML-séma URI formájában történő megadására használhatóXmlUrlResolver
. Ha az URI-sztring el van süllyesztve, az rosszindulatú XML-séma elemzéséhez vezethet, amely lehetővé teszi XML-bombák és rosszindulatú külső entitások felvételét. Ez lehetővé teheti, hogy a rosszindulatú támadó szolgáltatásmegtagadást, információfeltárást vagy kiszolgálóoldali kéréshamisítási támadást hajthasson végre.
Szabály leírása
Ne használja a módszer nem biztonságos túlterhelését Add
, mert veszélyes külső hivatkozásokat okozhat.
Szabálysértések kijavítása
- Ne használja
XmlSchemaCollection.Add(String, String)
.
Mikor kell letiltani a figyelmeztetéseket?
Tiltsa le ezt a szabályt, ha biztos abban, hogy az XML nem oldja fel a veszélyes külső hivatkozásokat.
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable CA3061
// The code that's violating the rule is on this line.
#pragma warning restore CA3061
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none
a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.CA3061.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
Példák pszeudokódokra
Megsértése
Az alábbi pszeudokód-minta a szabály által észlelt mintát mutatja be.
A második paraméter típusa.string
using System;
using System.Xml.Schema;
...
XmlSchemaCollection xsc = new XmlSchemaCollection();
xsc.Add("urn: bookstore - schema", "books.xsd");
Megoldás
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;
...
XmlSchemaCollection xsc = new XmlSchemaCollection();
xsc.Add("urn: bookstore - schema", new XmlTextReader(new FileStream(""xmlFilename"", FileMode.Open)));
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: