2014-04-21 2 views
0

IIS에서 서버의 파일 확장자에 대한 액세스를 거부 할 수 있음을 확인했습니다. 예를 들어 .jpg 이미지에 대한 액세스를 거부합니다. 그러나 브라우저는 내 사이트에서 .jpg 이미지를 표시 할 수 없습니다.IIS에서 파일 확장명 거부

저는 IIS가 요청할 경우 브라우저에 계속 제공하면서 (URL에 주소를 입력하여) 파일 확장명이나 파일 이름에 대한 액세스를 거부 할 수 있는지 궁금합니다. 문서?

+1

웹 서버가 문서 또는 직접 요청되었는지 여부를 실제로 알 수 있다고 생각하지 않습니다. HTTP 요청은 같은 방법으로 보입니다. –

답변

3

은 실제로이 작업을 수행 할 수 없습니다. 결정된 사람은 웹 페이지에서 다운로드 할 수있는 모든 것을 다운로드 할 수 있습니다. 그러나 요청시 HTTP 리퍼러를 확인하여 기술적으로 지식이 부족한 사용자에게는 약간 더 어렵게 만들 수 있습니다. 웹 페이지 중 하나의 URL 인 경우 요청을 허용 할 수 있습니다. 그렇지 않으면 거부 할 수 있습니다. 이 기술은 딥 링크를 매우 자주 방지하는 데 사용됩니다.

public class ImageDenyingModule : IHttpModule 
{ 
    public void Init(HttpApplication app) 
    { 
     app.BeginRequest += (s, e) => { 
      var request = app.Context.Request; 
      if (RequiresPageReferrer(request.Url) && !IsValidReferer(request.UrlReferrer)) { 
       app.Context.Response.StatusCode = 404; 
       app.Context.Response.End(); // Or something... 
      } 
     }; 
    } 

    private bool RequiresPageReferrer(string url) { 
    } 

    private bool IsValidReferrer(string referrer) { 
    } 
} 
1

당신은 사용자 지정 HTTP 처리기와 함께이 작업을 수행 할 수 있습니다

다음은 닷넷 HTTP 모듈이 작업을 수행 할 수있는 방법의 샘플 (안된)입니다. 당신은 JPG 파일에 대한 사용자 지정 처리기를 만드는 경우

http://support.microsoft.com/kb/308001

는 당신이 요청의 리퍼러를 확인하고 이미지를 제공하거나 요청을 취소 할 수 있습니다.

+0

굉장합니다. 너무나 고스 만에게 감사드립니다! – uSeRnAmEhAhAhAhAhA