Development/ASP.NET
-
Http Module을 이용한 Custom Authentication(커스텀인증) 구현Development/ASP.NET 2020. 6. 6. 20:57
HTTP 인증은 Authorization 헤더 안의 Basic(기본인증), Bearer(OAuth) 등의 스킴에 해당하는 정보를 기반으로 이루어지게 됩니다. IIS에서는 폼인증, 가장인증, 기본인증 등 다양한 인증 방식을 제공하고 있는데, 기본적으로 지원하는 인증방식 외에 HTTP Module을 이용하여 커스텀 인증을 구현하는 예제를 소개시켜 드리려고 합니다. 먼저 HttpModule 인터페이스를 구현하는 모듈을 만들어야 합니다. 아래 예제는, 기본 인증을 통과한 이후에 추가적으로 IP 및 API Key정보의 유효성을 검증하도록 구현되어 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 3..
-
사파리에서 한글 첨부파일명이 깨질 경우Development/ASP.NET 2020. 5. 9. 22:02
프로잭트를 진행하다... 사파리에서(정확히는 iOS 웹 뷰에서 다운로드 받았을때) 한글 파일명이 인코딩 되어 다운되는 문제가 발생하였다. 예를들어, 한글 파일.xlsx 명칭의 파일을 다운로드 받았는데.. 브라우져마다 아래와 같은 파일명으로 다운로드 받아졌다. IE (Internet Exploler) : 한글 파일.xlsx Chrome : 한글 파일.xlsx 사파리 : %ED%95%9C%EA%B8%80%20%ED%8C%8C%EC%9D%BC.xlsx 보다시피 사파리에서는 URL 인코딩 되어 파일이 다운로드 받아졌다.. 구글링을 통해... 브라우져 별로 파일명을 인코딩하여 해결 할 수 있었다 ASP.NET 파일 인코딩 소스 예제 123456789101112131415161718192021222324252627..
-
ClientSide <-> ServerSide간 호환되는 비대칭키 알고리즘 로직Development/ASP.NET 2020. 3. 21. 22:40
웹 개발을 하다보면 중요 정보를 서버쪽에 전송해야 할 일이 생깁니다. 특히 로그인 페이지의 패스워드 같은 경우에는 유출될 경우 큰 보안적 이슈를 야기합니다. 사이트에 SSL을 적용하는 등 다양한 방법이 있지만, 소개해드릴 내용은, Javascript로 암호화된 값을 서버측(C#)에서 복호화하는 방법을 소개시켜드리려고 합니다. 공개키 알고리즘이란? 공개 키 암호 방식(公開 - 暗號 方式, public-key cryptography)은 암호 방식의 한 종류로 사전에 비밀 키를 나눠가지지 않은 사용자들이 안전하게 통신할 수 있도록 한다. 공개 키 암호 방식에서는 공개 키와 비밀 키가 존재하며, 공개 키는 누구나 알 수 있지만 그에 대응하는 비밀 키는 키의 소유자만이 알 수 있어야 한다. 공개 키 암호를 구성하..
-
IIS Web.config에 설정해주어야 하는 보안 서버 설정Development/ASP.NET 2020. 3. 7. 19:02
IIS를 사용하는 웹 서버의 경우, Web Application에 아래와 같은 설정을 추가로 해주시면 좋습니다. 1. 불필요한 소스 노출 방지 => 커스텀 에러페이지를 사용하여 불필요한 소스 노출을 방지 할 수 있습니다. 2. https를 사용하는 사이트의 경우, 특별한 경우가 아닌이상 http로 접속 시 https로 Redirect 해주는 모듈을 적용시켜주어야 합니다. => 단, https가 바인딩된 사이트여야 하며, 반드시 http ReWrite 모듈이 설치되어 있어야 합니다. 3. POST, GET 요청 Method만 허용 => DELETE, PUT 등의 Method는 허용하지 않도록 합니다. 4. 정적 리소스가 아닌 동적 리소스, 페이지 등은 캐싱 가능하지 않도록 설정해주어야 합니다. 5. 서버 ..
-
페이지 수명 주기Development/ASP.NET 2019. 7. 7. 13:57
페이지 수명주기 란? ASP.NET 페이지가 실행되면 이 페이지는 일련의 처리 단계를 수행하는 수명 주기를 거칩니다. ..컨트롤의 수명 주기는 페이지 수명 주기를 기반으로 하지만 페이지에서는 컨트롤에 대해 ASP.NET 페이지에 허용되는 것보다 많은 이벤트를 발생시킵니다. 페이지 수명주기를이해해야 하는 이유는 , 각 Page Event마다 적절한 로직을 추가하여 원하는 결과를 낼 수 있기 때문입니다. Ex_ 공통적으로 상속받는 BasePage의 OnpreRender 이벤트에 공통으로 사용하는 js, css, javascript변수를 추가 하여 불필요한 중복 소스를 피할 수 있음. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2..