IIS7 : web.config 파일로 액세스를 차단하는 방법? 대한 읽기

IIS7을 사용하면 web.config xml 파일을 사용하여 디렉토리별로 구성 할 수 있습니다. 웹에 액세스하기를 원하지 않는 구성 파일이있는 디렉토리가 있습니다. 이에 대한 읽기 액세스를 금지하는 로컬 web.config 파일은 훌륭한 솔루션입니다.

파일에 대한 웹 액세스를 금지하려면 web.config 파일의 내용은 무엇입니까?

편집 : 이 내용이있는 web.config 파일을 파일에 넣으려고합니다.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
            <system.web>
                    <authorization>
                            <deny users="*" /> <!-- Denies all users -->
                    </authorization>
            </system.web>
</configuration>

그러나 여전히 디렉토리 내의 파일에 직접 액세스 할 수 있습니다. 무슨 일이야? 무슨 일이 일어나고 있는지 어떻게 디버깅합니까?



답변

system.web을 사용하고 있습니다. IIS7에서는 대신 system.webServer를 사용해야합니다. 이렇게하면 ASP.NET 파일뿐만 아니라 모든 유형의 파일이 차단됩니다. 예를 들어 jpg, gif, txt 및 모든 유형의 파일을 비밀번호로 보호 할 수 있습니다.

다음과 같이 보일 것입니다 :

  <system.webServer>
      <security>
          <authorization>
              <remove users="*" roles="" verbs="" />
              <add accessType="Allow" roles="Administrators" />
          </authorization>
      </security>
  </system.webServer>

그리고 하나의 파일로 설정하려면 다음을 수행하십시오.

 <location path="dontlook.jpg">
     <system.webServer>
         <security>
             <authorization>
                 <remove users="*" roles="" verbs="" />
                 <add accessType="Allow" roles="Administrators" />
             </authorization>
         </security>
     </system.webServer>
 </location>


답변

나는 이것이 당신의 문제를 해결할 수 있다고 생각합니다.
이 web.config를 대상 디렉토리가 포함 된 디렉토리에 배치하십시오.

<configuration>
 <system.webServer>
  <security>
   <requestFiltering>
    <hiddenSegments>
     <add segment="target directory name"/>
    </hiddenSegments>
   </requestFiltering>
  </security>
 </system.webServer>
</configuration>


답변

Web.config에서 위치 노드를 사용할 수 있습니다. 다음은 msdn에 대한 자세한 설명입니다 . 간단히 말해서 :

<location path="Subdirectory">
    <system.web>
        <authorization>
            <deny users="*"/> <!-- Denies all users -->
        </authorization>
    </system.web>
</location>
<location path="Public_Directory">
    <system.web>
        <authorization>
            <allow users="*"/> <!-- Allows all users -->
        </authorization>
    </system.web>
</location>

?를 사용할 수도 있습니다. 익명 사용자를 허용 (거부 / 거부)하도록 지정하는 와일드 카드


답변

  • * 모든 로그인 한 사용자를 의미합니다.
  • ? 익명 사용자를 의미합니다.

를 사용해야합니다 ?.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.web>
        <authorization>
            <deny users="?" />
        </authorization>
    </system.web>
</configuration>


답변