http://forum.eviloctal.com/thread-13330-1-1.html----------------------------------
自从04年以来.外面就传言.
将上传目录阻止执行权限.
使得上传的asp文件将不能执行.而上传目录内的图形文件等文件可以正常访问
而在2004/11月的黑客防线上蝴蝶也如是说
"能执行ASP脚本的地方不允许写入文件,能写入文件的地方不允许运行ASP程序"
OK.让我们测试一下这句话能否通过
NTFS权限控制来做到
首先我们写一个最简单的ASP程序.我这里用了我自己的一个简单的登陆系统.
里面又asp.有对外引用的部分.有access数据库
我们将权限设置成
administrators 全部
system 全部
然后主要我们将对添加的一个everyone权限来测试.
因为没有其他用户组了.所以iuser将继承everyone组的权限
所以是不是不用everyone用iuser用户是一样的.
首先只打开everyone用户的读取权限.
在高级内显示如下权限
1.列出文件夹/读取数据
2.读取属性
3.读取扩展属性
打开测试页面登陆.正常
然后高级内只保留
1.列出文件夹/读取数据
打开测试页面.出现ACL登陆框了.看来权限不足
再接下来我们测试传说中的取消ASP执行权限.
因为只读情况下已经没有执行权限了.
我们现在特别将执行权限取消
1.遍历文件夹/运行文件 -- 拒绝
2.列出文件夹/读取数据 -- 允许
3.读取属性 -- 允许
4.读取扩展属性 -- 允许
现在打开ASP测试页面.仍旧可以正常访问
由于asp文件对于iis来说只是一个文本文件
IIS读入asp文件内容后交由asp.dll进行解析
所以asp运行根本和windows应用程序不同
完全不需要执行权限.只需要只读权限
所以不允许asp运行,虽然可以做到,就是取消读权限
但是取消读权限之后.整个目录内所有文件都将无法通过iis读取
包括图片文件等等.那么上传目录不允许asp执行.等于是上传的所有内容都不能读
这种设置将导致上传内容毫无意义.
最后我们来看这句话
"能执行ASP脚本的地方不允许写入文件,能写入文件的地方不允许运行ASP程序"
前半句我们可以做到.对asp目录只读权限.
后半句虽然严格来说也可以做到.对上传目录取消读权限
但是这样将导致上传任何文件都无法访问.失去了上传文件功能的意义了.
本人测试环境
windows2003 中文企业版VLK SP1
IIS 6
---------------------------------------------------------------------
写权限依靠NTFS权限设置,执行asp依靠IIS设置
-------------------------------------------------------------------