일종의 조잡한 JavaScript 대홍수 방지를 구현할 수 있는지 궁금합니다. 내 코드는 AJAX를 통해 서버에서 이벤트를 수신하지만, 때로는 이러한 이벤트가 자주 발생할 수 있습니다 (나에게 영향을주지는 않습니다).JavaScript 대책 스팸 방지?
나는이를 퇴치하는 방법을 마련하려고했습니다, 나는 작은 스크립트를 작성했습니다 : http://jsfiddle.net/Ry5k9/
var puts = {};
function receiverFunction(id, text) {
if (!puts[id]) {
puts = {};
puts[id] = {};
}
puts[id].start = puts[id].start || new Date();
var count = puts[id].count = puts[id].count + 1 || 0;
var time = (new Date() - puts[id].start) * 0.001;
$("text").set("text", (count/time.toFixed()).toString() + " lines/second");
doSomethingWithTextIfNotSpam(text);
}
};
나는 이러한 종류의 공격에 대한 효과적인 증명할 수 있다고 생각하지만, 난 그것을 향상시킬 수 있을지 아니면 다시 쓸 수 있을지 궁금해하십니까? 두 번째는 스팸처럼 보인다 당
지금까지, 나는 모든 3 개 이상 또는 2.5 선을 생각하지만, 시간이 앞으로 진행 (시작 마크가 설정되어 있기 때문에 ... ... 시작시 잘), 범죄자는 단순히 유휴 수 잠시 후 홍수를 시작하여 분당 1 라인을 통과하지 못하게합니다.
또한, 나는 내가 Mootools의 및 소호 - 대시 라이브러리 (어쩌면 그들은 몇 가지 흥미로운 방법을 제공)을 사용하는 것이 추가하고 싶습니다하지만,이 네이티브 JS를 사용하여 수행 할 수 있다면 바람직 할 것이다.
어떤 통찰력이라도 대단히 감사합니다! 특정 자바 스크립트 함수 화재 주파수 염려되는 경우
그것은 가능성이 높습니다 누군가가 스팸 메일 경우 있음을 그들이 브라우저를 사용하지 않는 사이트 (즉, JavaScript를 완전히 우회하고 있음). 그리고 어떤 경우라도 텍스트를 입력란에 복사하여 붙여 넣으면 방법이 고장 나거나 사이트가 넘쳐 흐르고 있다고 생각할 수 있습니다. – JJJ
@Juhana :하지만 서버에서 이벤트를 수신하고 있습니다 (제어 할 수 없음). – VariousThings
그럼 당신이하려는 일을 정말로 이해하지 못합니다, 미안 해요. 이벤트가 서버에서 오는 경우 캡처하려고하는 keydown 이벤트는 무엇입니까? – JJJ