C# 允许读取XML文件的WCF服务的安全性
我有一个WCF服务,它允许用户读取存储在服务器上的XML文档。该方法的签名如下:C# 允许读取XML文件的WCF服务的安全性,c#,xml,wcf,security,C#,Xml,Wcf,Security,我有一个WCF服务,它允许用户读取存储在服务器上的XML文档。该方法的签名如下: XmlNode ReadXmlFile(string path) 我也有 bool WriteXmlFile(string path, XMLNode contents) Web服务在没有管理员权限的用户下运行,这意味着它无法读取任何系统设置。我想知道:在这种情况下,攻击者是否有办法侵入系统?我的意思是更改系统设置,可能读取任何文件,而不仅仅是XML、e.t.c.我认为您现有系统的安全性一般,但不好。也许还不够
XmlNode ReadXmlFile(string path)
我也有
bool WriteXmlFile(string path, XMLNode contents)
Web服务在没有管理员权限的用户下运行,这意味着它无法读取任何系统设置。我想知道:在这种情况下,攻击者是否有办法侵入系统?我的意思是更改系统设置,可能读取任何文件,而不仅仅是XML、e.t.c.我认为您现有系统的安全性一般,但不好。也许还不够好。理想情况下,所有这些读写操作都应该在仅可由wcf服务访问的受限目录中执行。wcf服务只能读取和写入此文件夹。甚至此进程(wcf服务)应限制的文件类型。时间窗口也可能受到限制。它取决于你想在安全方面采取多少。 你可以做的是使用Studio.IO检查它们是正在读取的XML文件,并使用环境类来确保它们不被用于Sytor或.NET文件夹进行读取。
你必须考虑XXE漏洞。若您从客户端获取XML输入,那个么它可能导致XXE漏洞,这意味着攻击者可以读取您的本地文件等等
对于PHP,您必须通过以下代码禁用实体加载器libxml_disable_entity_loader(true)
您的用户向哪个文件夹写入内容?任何文件夹-没有限制,这很奇怪。文件夹来自哪里?服务参数?是的,没错。需要允许用户从不同的路径读取xml。这就是为什么我想知道这种方法有多安全。对我来说,它似乎相当安全。你打开了整个文件系统进行读写。。。非常不安全。这将在服务器上进行一些覆盖。