ASP.NET 보안 구현시 팁

  • Post author:
  • Post category:
  • Post comments:0 Comments
  • Post last modified:September 21, 2005

학교뉴스그룹 ARA에 ASP.NET 관련 질문이 올라왔습니다. 학교 내에서는 아무래도 ASP.NET 보다는 JAVA나 PHP를 많이 쓰기 때문인지 답변이 안 달리더군요. 그래서 귀찮은 마음을 애써 떨치고 답변을 달았습니다. 질문은 다음과 같았습니다.

사용자 인증에 대해서는 책을 보고 web.config, login.aspx 등등을 만들어 구현을 하였습니다. 그래서 폴더가 다음처럼 구성이 되어 있다고 할 때,

---------------------------------------------
wwwroot                // 루트 디렉토리
    test_webpage       // 프로그램 디렉토리
        web.config
        login.aspx
        test.aspx
        test.zip
---------------------------------------------

http://localhost/test_webpage/test.aspx 라고 치면 login.aspx 에서 사용자 인증을 거쳐야 합니다. 근데 문제는 aspx 를 제외한 다른 파일들의 경우, 예를 들어 http://localhost/test_webpage/test.zip 이라고 치면 다운이 받아져버린다는 것입니다.

제 답변은 다음과 같았습니다.

대충 어떤 상황인지는 알겠네요. 우선 aspx 나 asmx 같은 asp.net 파일이 아닌 경우에 인증이 안 되는 것은 당연합니다. 클라이언트가 요청하면 다음과 같은 경로를 통하게 되죠.

요청->IIS서버->.NET Framework(ASP.NET)

그런데 .aspx 등이 아니면 IIS가 .NET Framework로 요청을 보내지 않고 자신이 처리해버립니다. 다행스럽게도 이 문제는 간단히 해결할 수 있습니다. 반드시 그래야 하는 것은 아니지만 일반 파일을 모아둘 디렉토리를 만드는 것이 낫습니다. 적어주신 예제를 약간 변형해서 다음과 같이 구성되어 있다고 생각해보죠.

 ---------------------------------------------
 wwwroot                // 루트 디렉토리
    test_webpage        // 프로그램 디렉토리
        web.config
        login.aspx
        test.aspx
        NotASPX         // 일반 파일용 디렉토리
            test.zip
 ---------------------------------------------

이제 ‘관리도구->인터넷정보서비스’로 갑니다. NotASPX 디렉토리를 선택한 후 등록정보를 봅니다. ‘디렉토리->구성->매핑’에서 추가 버튼을 클릭합니다.

실행파일: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
확장명: .*

를 입력하면 문제가 해결되어 있을 겁니다.

그럼 멋진 홈페이지 만드세요.

Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments