본문 바로가기

개발67

ASP.NET MVC : Response Header에 Cookie설정 Secure 설정 전 Response.AppendHeader("Set-Cookie", "testCookie=1234; path=/"); Secure 설정 후 Response.AppendHeader("Set-Cookie", "testCookie=1234; path=/; Secure; HttpOnly"); 참고 사이트 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie 2019. 1. 28.
ASP.NET MVC : 어플 단위에서 설정 가능한 security 대책 방법 ASP.NET MVC의 웹 어플리케이션의 보안과 관련해서 업무중에 실시한 보안 대책의 일부를 정리해 보았습니다. 사내 기준으로 웹 어플과 인프라 쪽의 보안 대책을 동시에 진행했었습니다만 저는 웹 어플만을 다뤘기 때문에 인프라쪽의 대책에 대해서는 별도로 언급하지 않겠습니다. 1. Cookie 설정 Web.config SSL의 경우에만 Cookie를 유효화 시킵니다. (예) http로 접속할 경우엔 Cookie가 무효이므로 유저 로긴 불가) 2. Response Header 설정 Web.config [X-Frame-Options:SAMEORIGIN] iframe의 제한을 자기자신과 생산처가 같은 프레임 안이었을 경우에만 가능하도록 제한 합니다. [X-XSS-Protection:1; mode=block] XS.. 2019. 1. 28.
EntityFramework : ConnectionStrings내의 특수문자 처리 아래와 같은 방법으로 EntityFramework를 이용해서 MySQL 접속을 하고 있는 것을 전제로 합니다. Entity Framework에서 MySQL 접속하기 패스워드에 특수문자가 들어있는 경우의 ConnectionString 기입 방법 수정전 : 기존의 connectionStrings PW:abcefg 수정후 : 상기에서 보안 강화차원으로 특수문자를 넣은 패스워드로 변경 PW:abc123efg; connectionStrings를 변경 후 실행해 보았습니다 ⇒ BUT 에러… 에러 발생 부분 using (var db = new WpEntities()) { // 쿼리 실행 ★여기서 에러 발생! } using (var db = new WpEntities())의 선언은 컴파일상의 문제는 없지만 쿼리를 실행.. 2019. 1. 28.
.NET MVC의 Web API에 Basic인증을 적용하는 방법 ↑의 「Web API」를 선택해서 작성한 프로젝트를 기준으로 합니다. Basic Authentication in ASP.NET Web API 위 링크의 MSDN에 매우 자세하게 설명되어 있기에 기본적인것은 그대로 따라하면 됩니다만 개인적으로 코딩했던 부분을 정리해 보았습니다. BasicAuthHttpModule.cs IHttpModule를 상속받아서 Basic인증을 처리할 모듈을 만듭니다. using System; using System.Linq; using System.Net.Http.Headers; using System.Security.Principal; using System.Text; using System.Threading; using System.Web; using TestProject.Ba.. 2019. 1. 25.
Json내의 html태그의 이스케이프(Escape) 처리 1. JavaScriptSerializer:string ⇒ JSON변환 using System.Web.Script.Serialization; var json = new JavaScriptSerializer().Serialize("A->B"); // "\"A-\\u003eB\" HTML태그의 이스케이프(escape) 처리 JavaScriptSerializer를 이용하여 JSON으로 변환할 경우, HTML태그는 \u형식의 유니코드로 이스케이프(escape) 처리됩니다. 그렇기 때문에 JSON안의 HTML태그를 그대로 사용하는 것이 불가능하며, “\u003e”⇒”>”와 같이 재차 변환을 해야할 필요가 있습니다. “B\"" HTML태그를 그대로 두고 JSON으로 변환시키고 싶을 경우엔 Json.NET를 사용합니다. 2019. 1. 25.
IIS에서 웹폰트 파일이 404에러를 발생시킬 경우의 해결방법 경위 동작엔 문제가 없지만 어째선지 웹폰트 파일에서 404에러가 발생하고 있었습니다. 참고로 로컬 단말에선 해당 에러는 발생하지 않았습니다. 에러 발생 원인 IIS이 「woff」와 「woff2」의 MIME 타입을 인식할 수 없기 때문에 404에러를 발생시키고 있었습니다. 해결 방법 Web.config에 아래의 내용을 추가해서 「woff」와 「woff2」의 MIME 타입을 인식 시킵니다. ... 2019. 1. 25.
암호화 된 파일을 iis에 업로드 해서 401에러를 발생시켜 보자(...) ※ 일본에서 업무중에 일어난 일이므로 일본어 환경입니다. 서버 에러 401 - 권한이 없음: 잘못된 자격 증명 때문에 액세스가 거부되었습니다. 제공한 자격 증명을 사용하여 이 디렉토리 또는 페이지를 볼 수 있는 권한이 없습니다. 경위 다른 부서에서 디자인 리소스를 납품 받아서 그것을 테스트 서버에 업로드 해 보니 해당 파일은 열람이 불가능한데다가 401에러까지 발생하고 있었습니다. 테스트 서버에 업로드 하기 전에 확인한 제 로컬 단말에서는 멀쩡하게 동작했기에 좀 당황했습니다. 설상가상으로 직접 액세스 해서 파일을 열어 보려고 해도 그것도 안되더군요. 유저 권한도 IIS 설정도 조사해 보았지만 딱히 문제는 없어 보였습니다. 원인 다른 부서에서 납품한 파일이 암호화 되어 있던것이 에러의 원인이었습니다. 위와.. 2019. 1. 25.
ASP.NET MVC : Ajax로 리스트 오브젝트를 Controller로 전달하기 Ajax로 리스트 오브젝트를 Controller로 전달하기 JS var things = [ { id: 1, color: 'yellow' }, { id: 2, color: 'blue' }, { id: 3, color: 'red' } ]; $.post('@Url.Action("PassThings")', { things: things }, function () { $('#result').html('"PassThings()" successfully called.'); }); Controller [HttpPost] public void PassThings(IEnumerable things) { // do stuff with things here... } 2019. 1. 24.
ASP.NET MVC : ModelState에서 에러 메세지를 취득하기 ASP.NET MVC : ModelState의 에러 메세지 리스트를 취득해서 Json으로 반환시키기 위 기사에서도 가볍게 다뤘지만 에러 메세지를 키를 이용해서 취득하는 방법을 추가로 정리해 보았습니다. 0. 아래의 내용처럼 ModelState에 에러를 선언하고 에러 메세지(string 리스트)를 취득하기 ModelState.AddModelError("Parameter", "파라미터에 문제가 발생했습니다. P1"); ModelState.AddModelError("Parameter", "파라미터에 문제가 발생했습니다. P2"); ModelState.AddModelError("Parameter", "파라미터에 문제가 발생했습니다. P3"); ModelState.AddModelError(string.Empty,.. 2019. 1. 24.