이바닥에서 일좀 꼼꼼히 해본 사람들 이라면, 제목만 봐도 무엇을 얘기하는지 알만한 내용들이다.
이 문제들은 보통 서비스 오픈후 운영중에 발견되는 경우가 많고..
개발자들은 이 문제의 원인을 찾고 패치를 하느라, 개발이후에도 많은 시간을 허비한다.
http://www.idg.co.kr/newscenter/common/newCommonView.do?newsId=53000
http://www.sans.org/top25-programming-errors/
자신의 소스도 어디선가 이런 교훈을 남기지 않도록 기억해두자.
아래 나열한 소제목 하나 하나가 지나간 추억들처럼 다가온다.
한글로 번역해서 쓰기엔 단어 선택이 애매한 부분이 있어서,
직관적으로 이해가 가능하도록 영어로 그냥 남긴다.
여러분이만든 프로그램이 서비스 운영중에 일으킨 그 문제는 보통 이 것들이 원인일 것이다.
컴파일 되고, 개발자가 생각한 값들에는 정상작동 한다고 개발이 끝났다고 생각하지 말아야 한다.
일단은 돌아가는 코드를 완성품이라고 제출한 후,
이 문제들을 실수/버그/예외/패치 라고 처리하기엔 이미 너무 정형화된 유형들이다.
프로라면 아래 문제들에 대해서도 늘 신경을 쓰자.
이런 문제들을 출시용 코드에 심어놓고, 개발 빨리 했다고 떵떵거리는 허접 코더들이 너무 싫었다.
이후 뻔히 예상한(그는 예상못한) 많은 패치들을 비상사태처럼 해결하면서 일이 많다고 말하고
그에게 인사고과를 퍼주는 바보같은 메니저들도 싫다.
이 것은 개발 내공에 관한 문제가 아니라, 업무로서 개발을 얼마나 꼼꼼하게 했는가의 문제이다.
Insecure Interaction Between Components
Improper Input Validation
Improper Encoding or Escaping of Output
SQL Injection
Cross-site Scripting
OS Command Injection
Cleartext Transmission of Sensitive Information
Cross-Site Request Forgery (CSRF)
Race Condition
Error Message Information Leak
Risky Resource Management
Failure to Constrain Operations within the Bounds of a Memory Buffer
External Control of Critical State Data
External Control of File Name or Path
Untrusted Search Path
Code Injection
Download of Code Without Integrity Check
Improper Resource Shutdown or Release
Improper Initialization
Incorrect Calculation
Porous Defense
Improper Access Control (Authorization)
Use of a Broken or Risky Cryptographic Algorithm
Hard-Coded Password
Insecure Permission Assignment for Critical Resource
Use of Insufficiently Random Values
Execution with Unnecessary Privileges
Client-Side Enforcement of Server-Side Security
'etc' 카테고리의 다른 글
tomcat connector (0) | 2011.03.24 |
---|---|
프로그래머 경쟁력 메트릭스 (0) | 2011.03.20 |
제목을 입력해 주세요. (0) | 2011.03.20 |
이상적인 리더의 동기 부여 법칙 (0) | 2011.03.18 |
지역 (0) | 2011.03.17 |