본문 바로가기

Developement/Web Programming

취약점 막기

1. 사용하시는 보드에 어디 한 군데라도 SQL injection 취약점이 있다면 뭐든지 털어갈 수 있습니다. 

요즘 나오는 XE 같은 보드들은 그런 취약점이 거의 없고, 있더라도 재빨리 패치되기 때문에 업데이트만 꼼꼼히 하시면 걱정 없고요... 

님이 직접 DB 접근 코드를 작성하셨거나, 보드 자체를 수정하여 업데이트가 곤란하게 되었다면 그 부분에서 뚫릴 가능성이 있습니다. 

SQL injection을 막기 위한 mysql_real_escape_string 함수 또는 prepared statement 사용법은 스쿨이나 구글 검색해 보세요. 


2. "얼마나 확실하게 중복가입을 막을 수 있는가?"와 "사용자 및 개발자 입장에서 얼마나 편리한가?" 두 가지 사이에서 균형을 맞추세요. 

둘다 완벽하게 하는건 불가능해요. 대부분의 웹사이트에서는 메일 또는 문자인증이 최적의 균형에 가깝다고 생각됩니다만 

님의 사이트 성격에 따라 달라질 수도 있지요. 동일IP 가입자수 제한 등의 다른 조치와 병행하세요. 


3. 매번 요청을 날리는 방식의 채팅프로그램은 동접수가 늘어날수록 서버 부하가 기하급수적으로 증가합니다. 

단독서버가 아닌 일반 웹호스팅이라면 채팅프로그램 운영이 금지되어 있을 가능성이 높으므로 주의하세요. 

채팅프로그램 제대로 하려면 플래시로 소켓을 열어놓고, 서버에서도 PHP가 아닌 node.js 등으로 소켓통신을 해줘야 합니다. 


4. 일단 XSS 취약점 확인하세요. strip_tags 또는 htmlspecialchars 등의 함수로 HTML 사용 여지를 원천봉쇄하세요. 

한글과 영문, 숫자만 허용하려면 정규표현식을 사용해서 체크하세요. 


if (preg_match('/^[0-9a-zA-Zㄱ-ㅎ가-힣]+$/u', $변수)) { 

    // 변수에 한글과 영문, 숫자만 들어있음 

} else { 

    // 이상한 특수문자가 들어있음 

}


[출처] PhpSchool.com

'Developement > Web Programming' 카테고리의 다른 글

계정 사용량 출력하기  (0) 2014.03.19
Mysql DB 사용량 출력  (0) 2014.03.19
정규식 문법  (0) 2014.03.19
웹사이트 최적화 방법론  (0) 2014.03.03
Eclipse PDT 에 Ant 설치  (0) 2012.10.05