Rev. 2.73

올해 말 출시예정인 EA의 '니드포스피드(NFS) - 카본' 데모판 나왔다길래 돌려봤습니다. 역시나 그 명성에 어긋나지 않는 훌륭한 그래픽을 보여줍니다. 아래의 스크린샷은 풀옵션에 안티얼레이싱만 제거한 화면입니다.(6-27프레임 뜨더군요;) 얼굴 모델링을 실사에 가깝게 묘사한 것도 볼만합니다. 그나저나 요즘에는 블러링 이펙트로 아웃포커싱 흉내도 냅디다.

잠시나마 즐겨 본 간략한 소감은 이번 NFS의 포커스 차종은 '미쯔비시 랜서 에볼루션'인 듯 하며, '다운힐(산자락을 타고 내려오면서 펼쳐지는 턴 기술에 의존하는 경주)'을 매우 짜릿하게 구현했습니다. '모스트 원티드'를 살짝 짬뽕시킨 '언더그라운드'의 업그레이드 판이라는 느낌이 강하게 듭니다. :)

attachment

데모 다운로드 : http://file.daum.net/view.php?fnum=127220

Comments

최근 제가 사용하고 있는 마루호스팅을 비롯한 여러 호스팅업체가 64비트 운영체제, DB서버 분할, UTF-8 언어환경, 최신의 아파치 서버와 PHP, MySQL 등을 도입하여 블로그에 최적화된 호스팅환경을 제공하고 있습니다. 그렇지만 태터툴즈 클래식은 아쉽게도 PHP 4.x 이상을 지원하고 있지 않습니다. 원인은 PHP4.x.x 이후로는 사용되고 있지 않는 $HTTP_GET_VARS, $HTTP_POST_VARS 등과 같은 코드를 사용하기 때문입니다. 매우 간단한 작업으로 태터툴즈 클래식을 PHP 5.x.x 환경에서 운영할 수 있습니다. 여러 파일에서 사용되는 이 코드들를 아래와 같이 각각 수정하면 정상으로 작동하게 됩니다.

수정할 파일 목록 :
inc_function.php, inc_pressworks.php, index.php, install.php, reply_exe.php, rserver.php
admin 폴더
article.php, attach_image_pop.php, login.php, notice.php, reader_address.php, setting.php

수정할 코드 :
$HTTP_GET_VARS => $_GET
$HTTP_POST_VARS => $_POST
$HTTP_SESSION_VARS => $_SESSION
$HTTP_COOKIE_VARS => $_COOKIE
$HTTP_SERVER_VARS => $_SERVER

찾기를 사용하면 편리합니다. "_VARS" 키워드로 검색하여 수정할 코드를 찾아내고 해당 코드를 변경하면 됩니다. "Search and Replace"와 같은 응용프로그램을 사용하여 태터툴즈 클래식이 설치된 폴더의 파일전체를 일괄변경하면 더욱 빠른 작업처리가 가능합니다. :)

Comments

최근에 날라드는 스팸 트랙백들 살펴보면, 패턴을 이용한 차단을 피하기 위해 서로 다른 내용의 동일 스팸 트랙백을 생성하며, 하나의 URL에서 다량으로 수집한 트랙백 주소에 단 시간내에 무작위로 발사하도록 되어있다. 이 것은 단 10분만에 100여건을 성공시키기도 한다. OR2 패치를 적용하면 영문으로 구성된 트랙백이야 차단된다 하더라도 영문에 2바이트 특수문자를 사용하거나 영문이 아닌 외국어가 들어간 스팸 트랙백에 대한 차단은 아직 무방비 상태다. 그래서 아래와 같은 꼼수를 만들어 보았다.

스팸의 인식 조건은 지정된 시간 안에 지정된 량의 수신 트랙백에서 내용(사이트명, URL, 타이틀, IP)이 동일한 트랙백을 발견하면 스팸으로 간주하고 해당 수신을 거부한다. 이것으로 모두 차단할 수는 없겠지만 대량으로 걸리는 스팸은 어느정도 차단할 수 있었다. 참고로, 정헌님의 트랙백스팸 추적과 함께 사용하면 더욱 든든하다.

rserver.php 파일의 43열 부근을 아래와 같이 수정한다.

$result = is_spam("2", "1", $title);
if (!$result) $result = is_spam("2", "2", $url);
if (!$result) $result = is_spam("2", "3", $excerpt);

/* TrackbackBlocker */
if (!$result) {
$r_limit = 5; // 검사할 최근 트랙백 설정, 기본 5개
$r_time = 1; // 시간 설정, 기본 1시간
$r_sql = "select site, url, title, regdate, ip from t3_".$dbid."_trackback order by regdate desc limit $r_limit";
$r_result = @mysql_query($r_sql);
while(list($r_site, $r_url, $r_title, $r_regdate, $r_ip) = @mysql_fetch_array($r_result)) {
if (time() - $r_regdate < 60*60*$r_time && ($REMOTE_ADDR == $r_ip && ($url == $r_url && $title == $r_title && $blog_name == $r_site && $r_ip))) {
$result = true;
break;
}
}
}
/* end of TrackbackBlocker */

if (!$no || !$url || !$title || !$blog_name || !$excerpt || $result || (is_eng_only($title) && is_eng_only($excerpt))) {
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">\n<response>\n<error>1</error>\n<message>Incomplete Information</message>\n</response>";
exit;
}

※ 오류, 버그, 개선 등과 관련된 피드백은 이곳에 댓글 및 트랙백으로 남겨주십시오.
※ 검증된 태스트과정을 거치지 않아 오작동을 일으킬 수도 있습니다.
※ 라이센스는 지나가던 개에게 주었습니다.

Comments