仅允许脚本访问文件iis7.5

时间:2012-06-16 09:25:06

标签: windows iis iis-7.5 file-permissions

我的iis7.5服务器上有一个文件(称为“log.html”),我希望我的PHP安装能够访问和写入,但我不希望任何人直接访问该文件,因为输入“http://computername/log.html”(我在局域网中)的示例。

如何阻止用户访问它但允许php查看呢?

使用下面建议的web.config文件时,我收到此错误: web.config error

2 个答案:

答案 0 :(得分:1)

您可以使用IIS URL重写并创建请求阻止规则以阻止通过HTTP进行访问:

例如:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="BlockLogFile" 
              patternSyntax="Wildcard" 
              stopProcessing="true">
          <match url="*" />
          <conditions>
            <add input="{URL}" pattern="/log.html" />
          </conditions>
          <action type="CustomResponse" 
                  statusCode="403" 
                  statusReason="Forbidden: Access is denied." 
                  statusDescription="This is sekret!" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

答案 1 :(得分:1)

我想我可能已回答了我自己的问题!我还需要再测试一下,如果它不能完全运行,那么有人可以纠正我:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="cache-control" value="no-store, no-cache, must-revalidate, max-age=0" />
            </customHeaders>
        </httpProtocol>
        <staticContent>
            <clientCache cacheControlMode="DisableCache" />
        </staticContent>
        <security>
            <requestFiltering>
                <denyUrlSequences>
                    <add sequence="log.html" />
                </denyUrlSequences>
            </requestFiltering>
        </security> 
    </system.webServer>
</configuration>

缓存控制位可防止浏览器缓存它返回的任何内容。

希望这有助于其他人!我对此仍然很陌生,所以你可以解决这个问题。