본문 바로가기
가변 파라미터 예제 { va_list argptr; TCHAR szBuf[MAX_PATH]; va_start( argptr, r_pMessage ); _vstprintf_s( szBuf, r_pMessage, argptr ); va_end( argptr ); m_strLog += szBuf; MakeLine(); } 좋은정보가 되셨다면 아래 한번 클릭해주세요^^ 2008. 6. 3.
SQL 인젝션과 예방 SQL 인젝션은 sql 쿼리문에 개발자가 의도 하지 않은 쿼리 문을 추가하도록 하여 비정상적인 결과를 얻기 위한 해킹 기법이다. 웹페이지 상에서 사용자 로그인 등 폼 입력 부분에서 특수 문자 등을 포함한 SQL 문의 일부 내용을 작성하여 해킹을 시도 한다. 이것은 특히 DB 에서 관리자 권한 등 불필요하게 많은 권한을 가진 계정으로 만들어 진 사이트에서 치명적일 수가 있다. 예를 들어 아래와 같은 코드를 살펴 보자. Select name from user where id=’id’ and password=’pwd’ 웹페이지 사용자 로그인 부분에서 유저아이디와 패스워드를 입력 받아서 위와 같은 sql 쿼리문을 완성 한 다음 쿼리를 실행 하여 리턴 되는 레코드가 있으면 로그인을 성공 시키고, 없으면 로그인 실.. 2008. 6. 3.
반드시 알아야할 프로그래머의 격언 1. "오늘까지"라는 말은 "내일 아침까지"라는 말이다. 2. 프로그램은 내가 원하는대로 움직이지 않는다. 타이핑대로 움직인다. 3. 요구 사양은 프로그램을 완성한 후에 추가된다. 기본 사양은 완성품을 고객이 보고 나서 결정된다. 상세 사양은 사용자가 프로그램을 사용해 본 이후에 결정된다. 4. 소프트웨어 설계에는 두 개의 방법이 있다. 하나는 결함이 있을 수 없을 정도로 단순하게 만드는 방법이다. 다른 하나는, 분명한 결함을 눈치채기 어려울 정도로 복잡하게 만드는 방법이다. 5. 코드는 개발 현장에서 사용하는 것이 아니라 납품처에서 사용하는 것이다. 디버그는 납기일까지 하는 것이 아니라, 납품된 이후에 하는 것이다. 6. 프로그래머를 죽이기 위해서는 칼이 필요없다. 프로그램의 요구조건을 3번만 바꾸면 .. 2008. 6. 2.
손쉬운 소프트웨어 스케줄 관리법 지난해 10월, 미국의 북동부 지역은 어딜 가나 아셀라(Acela) 광고 천지였다. 아셀라란 암트랙(Amtrak)이 워싱턴-보스턴간 노선에서 운행할 새로운 초고속열차의 이름. 끊임없이 쏟아지는 TV 광고와 전광판 광고, 도처에 나붙은 포스터들을 보면서, 누구라도 이 정도의 물량 공세라면 이 새로운 초고속열차 서비스에 대한 수요 창출에 상당히 기여했으리라 생각했을 것이다. 글쎄, 그랬는지도 모르지. 하지만, 정작 암트랙사는 이를 확인해 볼 기회가 없었다. 아셀라 프로젝트가 계속 지연되는 바람에 상용서비스가 개시되지도 않은 상태에서 광고 캠페인만 진행되고 있었던 것이다. 어떤 회사의 신제품 시판을 한달 앞두고 이 제품이 우수한 평가 등급을 받자 마케팅 책임자가 했다는 말이 떠오른다. “대단한 홍보 효과야! .. 2008. 5. 30.