关于我感觉IIS的一个坑

安全加固 2016-01-11 23:29 暂无评论

注:这个对于我来说是一个坑!并不是所有人都觉得是坑。

我一般在做安全的时候,如果 Web 根目录的文件不需要执行 PHP 或者 ASP/.NET 的话,我是不给根目录任何执行权限的,拿 DEDECMS 来说,我一般只给后台和 include 及 data 目录分配执行脚本权限,而其他目录一概只允许 *.htm 和 *.html 解析。

拿 DEDECMS 做一个例子,一般 DEDECMS 生成文章栏目这些都需要写入权限,那么一般根目录存在一定!必须!绝对!要有的 PHP 执行权限的话,我就觉得 IIS 有个坑啊。因为如果在网站不给设置执行脚本权限的话,根目录的一切 PHP 文件都会无法执行提示 HTTP403 错误。因为在做权限设置的时候,给写入权限的话那么黑阔在打我菊花主意的时候拿个 WebShell 难度是不高的了!如果不给写入权限的话,如果我新添加了栏目或者文章,在生成静态文件的时候就没办法写入了。

如果我给了写入权限,根目录又必须有 PHP 文件需要执行,那么权限设置要定期检查维护,否则很容易出现问题。

我的做法一般是确定了前期需要的栏目,我会提前做好权限每个生成的栏目会另外设置权限,而根目录不给任何写入权限这样就不会冲突了。

如果没有一定!必须!绝对!的要求根目录有 PHP 执行权限,那么我在 IIS 创建网站的时候设置都是不给任何执行权限的,并且在默认文档中删掉有关 *.php 的内容,针对必须要 PHP 执行权限的目录分配好权限,拥有执行 PHP 权限的目录的子目录如果是静态内容,也会删掉执行权限等。并且不给予任何写入权限,只允许读取。这样做的好处一般是在首页如果没有必须要求的话 PHP 的权限是可以不给的!那么读写的权限可以给了,随便你写随便你建都可以,不影响程序生成创建的文件夹和文章。

总之,能执行脚本的地方,我都不给写入权限。不能执行脚本的地方,我都给你写入的权限,随便你写也执行不了脚本!

或许还有别的奇淫技巧填这个坑,但是 IIS 嘛。经常接触多的也就是 IIS6 了。除了 IIS6 就是捣腾一下 Linux 了。

暂无评论