我有WCF服务,允许用户读取存储在服务器上的XML文档。该方法的签名如下:
XmlNode ReadXmlFile(string path)
我也有
bool WriteXmlFile(string path, XMLNode contents)
Web服务在没有管理员权限的用户下运行,这意味着它无法读取任何系统设置。我想知道:鉴于这种情况,攻击者是否有办法闯入系统?我的意思是改变系统设置,也许读取任何文件,而不仅仅是XML,e.t.c。
答案 0 :(得分:1)
我认为现有系统的安全性是公平但不好的。也许还不够好。理想情况下,所有这些读写操作都应在只能由wcf服务访问的受限目录中执行。 wcf服务只能读写这个文件夹。甚至应限制此进程(wcf服务)的文件类型。时间窗口也可以受到限制。这取决于您在安全性方面要走多远。
答案 1 :(得分:0)
您可以做的是使用system.io检查它是否正在读取XML文件,并使用环境类确保它们不在系统或.net文件夹中进行读取。
答案 2 :(得分:0)
您必须考虑XXE漏洞。如果从客户端获取XML输入,则可能导致XXE漏洞,这意味着攻击者可以读取您的本地文件等。
使用PHP,您必须通过以下代码来取消实体加载程序。
libxml_disable_entity_loader(true)
https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing