본문 바로가기

전체 글88

SQL과 JSON의 이스케이프(escape) 처리 어플 안에서 SQL를 직접 실행하는 케이스로 패러미터안에 싱글쿼테이션(‘)이 포함되어 있는 경우 아래 처럼 이스케이프 한 문자를 패러미터에 설정한다. param.Replace("'", "''") JSON의 값 안에 더블쿼테이션(“)이 포함되어 있는 경우 Replace("\"", "\\\"") 2019. 1. 28.
SQL Server : 데이터의 암호화와 복호화 SQL Server에서 데이터의 암호화와 복호화에 대해서 검증한 내용을 정리해 보았습니다. 0. 전제조건 대상의 SQL Server은 최신 버젼은 아님. 당시 기준 10여년 이상 된 낡은 버젼의 SQL Server 였음. DB단위의 인증이라거나 키는 가급적 사용하지 않고 어플 단위로 암호화와 복호화를 하고 싶음. 개발엔 Entity Framework를 사용예정. 하지만 SQL 직접 실행도 OK. 암호화 대상은 영어, 일본어를 기본으로 어느 나라 언어가 올지는 아무도 모름. DB기반이 아닌 암호화와 복호화도 조사해 보았으나 일본어의 한자 내용에 따라서 복호화시에 문자가 깨지는 상황이 자주 발생했기 때문에 DB에서 지원하는 암호화/복호화 기능을 사용하기로 함. 1. 검증용 DB작성(localDB) 2. 검증.. 2019. 1. 28.
Visual Studio 2017&Entity Framework 클래스 다이어그램이 표시되지 않는 문제의 해결방법(edmx파일) 경위 Visual Studio 2017에서 edmx 파일을 열어서 DB 설정내용을 갱신 시키고 싶은데 edmx 파일이 정상적으로 열리지 않았습니다. 원인 Visual Studio 2017에는 edmx파일 표시 모듈이 기본 설치에 포함되어 있지 않기 떄문에 별도로 인스톨 할 필요가 있었습니다... 해결 방법 클래스 디자이너를 인스톨 합니다. Visual Studio 2017 로 버젼업 한 직후엔 이런 사소한 일로 가끔 헤맷던 기억이 있군요... 2019. 1. 28.
ASP.NET MVC : 다국어 대응에 대한 메모 업무로 다국어 대응이 필요한 웹 어플리케이션의 기반 개발을 담당했었는데, 그때 작업한 내용을 정리한 것입니다. 전제 조건 기본 언어는 일본어지만 해외 유저에겐 영어로 제공하고 싶음. 유저의 기본 설정정보에서 사용 언어에 대한 정보를 취득할 수 있다. 개발 1. 리소스 파일을 준비한다 기본 언어:Localize.resx 일본어:Localize.ja-JP.resx 영어:Localize.en-US.resx ※리소스 파일의 Access Modifier는 「Public」으로 설정합니다. ※리소스 파일의 격납 장소는 임의로 변경 가능 합니다(ex)Lang > Localize.resx 등) 2. 유저 인증 직후의 처리에 아래의 처리를 추가한다 AuthorizeAttribute Class 를 상속받아 인증 로직을 만들.. 2019. 1. 28.
Visual Studio 2017 에서 새로운 리소스 파일의 템플릿을 추가할 수 없을 때의 해결방법 하고 싶은 것 Visual Studio 2017에서 리소스 파일을 추가 시키고 싶었습니다. 하지만 Add New Item에 리소스 파일의 템플릿이 아무리 찾아도 나오지 않고... 해결 방법 구글링으로 Visual Studio의 Developer Community에서 같은 내용의 질문을 발견하였습니다. Add New Item --> Resource File (.RESX) missing it appears the "ASP.NET and web development" workload is missing some components. I've alerted the ASP.NET team. The workaround is to open "Visual Studio Installer" | Click Modify | .. 2019. 1. 28.
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.