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 9-ben | Nem |
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.
Ne használja a módszer nem biztonságos túlterhelését Add
, mert veszélyes külső hivatkozásokat okozhat.
- Ne használja
XmlSchemaCollection.Add(String, String)
.
Tiltsa le ezt a szabályt, ha biztos abban, hogy az XML nem oldja fel a veszélyes külső hivatkozásokat.
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.
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");
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)));
.NET-visszajelzés
A(z) .NET egy nyílt forráskód projekt. Visszajelzés adásához válasszon egy hivatkozást: