Web.config上写入权限的安全问题

时间:2013-04-03 16:14:04

标签: php iis-7 url-rewriting web-config security

我目前在IIS7.5服务器上运行了一个PHP站点。

我在web.config中使用IIS的内置URL重写工具。

我的CMS管理员能够允许用户编写自己的重写。因此,我用PHP编写的管理工具需要为IUSER编写修改权限,以便PHP修改文件。但是我认为这可能不是安全的好习惯所以我决定将重写移动到web.config引用的rewrite.config文件中。然后我给重写文件而不是web.config赋予写/修改权限。

唯一的问题是IIS缓存外部重写文件,除非缓存web.config的上次修改日期,否则不会重新加载它。我可以手动强制服务器重新加载我的rewrite.config文件,方法是在文本编辑器中打开web.config,添加空格或者其他内容然后单击“保存”,然后服务器会注意到上次修改日期已更改,然后重新加载重写文件随着新的重写。

我不能永远继续这样做,但是我需要我的管理工具来允许用户添加他们自己的重写,而不必在重写生效之前让我在web.config中进行更改。

我了解到我可以在web.config文件中调用PHP中的touch功能,这解决了我的问题,因为它更改了web.config文件中的最后修改日期。但是,为了使触摸工作,PHP需要IUSER具有写入权限,但不能修改权限。

所以最后我的问题是......安全明智,是否可以将带有IUSER权限的web.config保留为读写但不能修改?或者这仍然是一个安全问题。

如果是这样,我为这个网站创建了哪些漏洞?而且,我怎样才能改变自己的做法,不让自己陷入这些漏洞?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题。最佳做法是避免授予I_USER对web.config的权限。我们最终重写了代码,不再需要此代码。