Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 允许读取XML文件的WCF服务的安全性_C#_Xml_Wcf_Security - Fatal编程技术网

C# 允许读取XML文件的WCF服务的安全性

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.我认为您现有系统的安全性一般,但不好。也许还不够

我有一个WCF服务,它允许用户读取存储在服务器上的XML文档。该方法的签名如下:

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。这就是为什么我想知道这种方法有多安全。对我来说,它似乎相当安全。你打开了整个文件系统进行读写。。。非常不安全。这将在服务器上进行一些覆盖。