본문 바로가기

c#12

C# SecureString 클래스를 이용한 문자열 보호 비밀번호를 일반 문자열에 담고 처리하다가 발생할 수 있는 보안 이슈에 대응하기 위해 SecureString을 사용함 아래와 같은 문제가 발생할 수 있음 문자열에 노출되지 않아야 할 정보를 담고 처리하지 말아야 한다. 메모리를 읽을 수 있으면 그대로 노출된다.메모리에서 디스크로 교체되면 암호화 되지 않은 내용이 스왑 파일에 남음가비지에 의해 제거되지 않고 남은 상황에서 응용프로그램이 비정상 종료될 경우 메모리 덤프에 민감 정보가 포함될 수 있음 //String -> SecureStringpublic static SecureString ConvertStringToSecureString(string str){ var secureStr = new SecureString(); if (str.Length > 0) .. 2018. 2. 27.
C# 파일명 유효성 체크 보안성 심사하다가 파일명과 관련한 사항이 검토되어 처리한 소스임 파일명으로 사용할 수 없는 문자나 특수문자를 걸러내는 내용임 public static string ReplaceFileName(string s){Regex regex = new Regex(string.Format("[{0}]", Regex.Escape(new string(Path.GetInvalidFileNameChars())))); s = regex.Replace(s, "");return s;} MSDN에 있는 내용임. 2018. 2. 26.
C# 파일 경로 유효성 체크 파일 경로 체크 시 보안성 관련 문제를 해결하다가 찾은 소스경로로 사용할 수 없는 문자가 있는지 확인해서 빈 문자열로 바꿔줌 public string ReplacePath(string s){Regex regex = new Regex(string.Format("{0}", Regex.Escape(new string(Path.GetInvalidPathChars())))); s = regex.Replace(s, "");return s;} MSDN 권고 소스임.. 2018. 2. 26.
C# 일정 범위 내에 IP 체크하기 클라이언트 IP를 일정 범위 내의 IP안에 있는지 확인하는 함수이다. string ip_network = "192.168.0.1:192.168.0.55,10.2.10.11:10.2.10.15"; bool b = checkIpNetwork(ip_network); private bool checkIpNetwork(string ip_network){ if (ip_network == "") return true; string[] ipArray = ip_network.Split(','); foreach (string strIP in ipArray) { IPAddress startIP = null; IPAddress endIP = null; IPAddress loginIP = null; string[] ips = .. 2017. 11. 9.
C# WebBrowser 키이벤트 엔터키 막기 웹브라우저 컨트롤에서 엔터키 막을 일이 있어서 추가함 private void BrowserDocumentComplete(object sender, WebBrowserDocumentCompletedEventArgs e) {this.editorWebBrowser.Document.Body.KeyDown += KeyDownHandler;} // ReturnValue 속성을 이용함private void KeyDownHandler(object sender, HtmlElementEventArgs e) {if(e.KeyPressedCode == 13) {e.ReturnValue = false; return;}} 2017. 9. 26.
C# 에서 웹브라우져 실행시키기 C# 에서 웹브라우져 실행시키기 System.Diagnostics.Process.Start("http://url");로 하면 기본 브라우져가 열린다. 끝 2014. 2. 3.
C# 웹 서비스 만들기 및 테스트 환경 : visual studio 2010, .NET 4, iis7.0, windows 7 Enterprise K 웹 서비스 만들기 1. visual studio 2010 실행 2. 파일 > 새 웹 사이트 > 설치된 템플릿에서 visual c# 선택 > ASP.NET 웹 서비스 선택(.net4 버전에서는 나오지 않기 때문에 .NET 3.5 선택) 3. 찾아보기 > 파일 시스템 대화상자 > 로컬 IIS 선택 > 새 웹 응용프로그램 만들기 > webservice_test 입력(원하는걸로 입력) 4. 열기 > 프로젝트 생성 > ctrl + F5 로 빌드 및 실행 5. http://localhost/webservice_test/Service.asmx 주소를 가진 웹브라우저 실행됨 응용 프로그램 만들기 1. vi.. 2011. 4. 19.
[C# TIP] 문자열에서 숫자만 추출하기 숫자 문자열에서 숫자만 추출하기 위한 함수입니다. 가격에 문자열이 포함되어 있는 경우에 사용하시면 좋습니다. using System.Text.RegularExpressions; RegularExpressions 네임스페이스를 참조해야 합니다. 적용 소스는 아래와 같습니다.string strTarget = "124,560원 (재고 없음)"; string strTmp = Regex.Replace(strTarget, @"\D", ""); int nTmp = int.Parse(strTmp); 위와 같이 사용하시면 됩니다. "\D" 는 숫자가 아닌 문자열을 뜻하므로 숫자를 제외하고 다 없애라는 뜻이 됩니다. 간단하지만 요긴한것 같습니다. MSDN의 주소 http://msdn.microsoft.com/ko-kr/l.. 2011. 1. 7.
[C#] 콘솔 버전 - HTML 파싱하기 이전에 윈폼으로 작업한 것을 콘솔용으로 바꿔봤습니다. 웹브라우져 컨트롤 없이 HTML 파싱해보고 싶어서 였습니다. 웹브라우져가 아무래도 리소스를 좀 잡아 먹는거 같아서 입니다. 한참 돌고 돌아서 할 수 있게 되었는데요. 이번에도 구글신의 도움을 받았네요. 생각보다 많은 자료가 있는건 아니였습니다. 데브피아에 있는 관련 질문글에 답변 내용을 보고 참고했습니다. 이번 코딩은 mshtml 이라는 네임스페이스를 참고하는 부분이 주요 부분이라고 하겠습니다. 여전히 다나와의 현금/카드 동일몰의 최저가를 찾아내는 걸로 목표를 삼았습니다. mshtml의 인터페이스들로 파싱을 할 수 있습니다. 코딩은 이전 포스팅에 있는 웹 소스 가져오기 부분과 파싱하는 부분을 적절히 섞어서(?) 작성했습니다. 웹브라우져 컨트롤 보다는 .. 2011. 1. 5.
[C#] HTML 파싱해서 원하는 정보 가져오기 System.Windows.Forms 에 있는 Browser 컨트롤을 이용하여 브라우져를 만들고 원하는 정보를 얻을 수 있습니다.(옆의 이미지를 클릭하시면 크게 보실 수 있습니다.) 이 예시는 다나와 사이트의 카드/현금 동일몰 중 가장 싼 가격을 알아내는 것으로 타겟을 정했습니다. 최저가를 MessageBox로 나타나게 하는 아주 기초적인 프로그램입니다. 이 소스는 다나와 사이트의 구조에 맞게 구성되어 있으므로 타 사이트에 적용하시길 원하시면 각각 사이트의 구조에 맞게 변형시켜야 합니다. (혹시 다나와에서 이 소스에 문제가 있으시면 말씀해 주세요. 포스트를 내리겠습니다.) 즉, 이런 것도 있다 정도로만 넘어가시면 되겠습니다. 프로젝트는 Window Form 프로젝트로 생성했습니다. 폼에 떡하니 브라우져 .. 2011. 1. 4.
C# 에서 MSSQL 연결하기 - 가칭 : DBController 새로운 언어로 프로그램을 시작할 때 저는 Hello World 찍은 후, DB연결이 되면 아~ 다 됬네. 라는 느낌이 듭니다. 저만 그런건지는 모르겠지만 DB연결해서 데이터 SELECT가 성공적으로 되었다면 만들고자 하는 프로그램의 끝이 보이죠. 말 그대로 '시작이 반'인 느낌이 됩니다. 저만 그런가요? 이번에는 C#으로 간단하게 DB연결을 해보았습니다. 따로 설명드릴 내용은 없습니다만.. 사실 말씀드릴 내용도 없습니다. ^^ 왼쪽 그림을 보시면 DB연결 버튼과 데이터요청 버튼이 있습니다. DB연결 버튼을 누르면 Open 이란 값이 나오고, 데이터요청 버튼을 누르면 리치텍스트박스에 어떤 정보가 나옵니다. 요렇게 해서 DB 연결 테스트는 끄읏~. 아래는 UI 에 대한 간략한 표와 소스 코드가 되겠습니다. .. 2011. 1. 3.
[C#] Win form으로 제작한 웹페이지 소스보기 .NET 을 다시 시작했습니다. MFC는 이제 한물 갔나요. ㅜㅜ C#을 시작으로 ASP.NET까지 함 가보려 합니다. 일단 가장 간단하게 볼 수 있었던 웹페이지 소스 가져오기를 한번 짜봤습니다. 원래는 콘솔형태로 제작을 했었는데요.(다음 블로그에도 올렸었던 내용이죠) 이것을 윈폼으로 다시 만들어 봤습니다. 뭐 별거는 없으니 큰 기대는 하지 않으셔도 됩니다. ㅎㅎ 일단은 설치형 프로그램이다 보니 데모를 보여드리기가 좀 힘드네요. HTML이면 어떻게 표현해 보겠는데요. 어떻게 표현이 안되네~ C#으로 된 부분은 실행파일을 올려야 겠습니다. 이 프로그램은 사실 다른 용도를 위해 프로토타입 형태로 제작을 한겁니다. 저는 지금부터 특정한 정보를 수집하는 프로그램을 만들어 볼까 합니다. 그때까지 잘 버텨내야 할텐.. 2010. 12. 30.