2010년 3월 10일 수요일

[보안] 자동공격 봇 막기

HTTP/1.0 으로 POST 하는 접근이 거의 봇이기 때문에 이를 차단하는 방식입니다.

[code php]if(!($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1' && $_SERVER['HTTP_USER_AGENT'] == 'Shockwave Flash')) { if($_SERVER['SERVER_PROTOCOL'] != 'HTTP/1.1' || !isset($_SERVER['HTTP_ACCEPT_ENCODING'])) { if(count($_POST) != 0) { $fp = fopen('/home/site/www/postdata.txt', 'a'); fwrite($fp, $_SERVER['REMOTE_ADDR']."\n"); fwrite($fp, print_r($_POST, true)); fwrite($fp, print_r($_GET, true)); fwrite($fp, print_r($_SERVER, true)); fwrite($fp, "---\n"); fclose($fp); exit; } if(!preg_match('/BlackBerry|Daum|EMPAS\.ROBOT|Gigabot|Googlebot|NaverBot|Snapbot|Speedy\|SurveyBot|Twiceler|Yahoo|Yeti|MFeedBot|msnbot|webcollage|yoofind|xMind|BrightCrawler|NimbleCrawler|StackRambler|SurveyBot|ia_archiver/', $_SERVER['HTTP_USER_AGENT'])) { $fp = fopen('/home/site/www/agents.txt', 'a'); fwrite($fp, $_SERVER['HTTP_USER_AGENT']."\n"); fclose($fp); header('Content-Type: text/html; charset=euc-kr'); echo '인터넷 옵션 에서 프록시 설정을 제거하셔야 접속하실 수 있습니다.\n프락시사용을 하지않는 경우 도구-인터넷옵션-고급에서 HTTP 1.1 사용에 체크하신후 모든 익스플로러창을 닫은다음 새창을 열어서 접속하십시요.'; exit; } } }[/code]

댓글 없음:

댓글 쓰기