以下方法都相对简单,无论是实现还是破解。任何有 Firebug 和一点知识的人都不会眨眼。
以下 JavaScript 使用 Mootools,我没有检查它是否没有错误。我知道 JQ 语法几乎相同,原始 JS 也足够相似,所以这一点应该很清楚。
1)如果表单是通过 AJAX 提交的,您可以在提交前检查(对不起,如果我只是说明显而易见的)。
var sent = 0;
$('myForm').addEvent('submit', function(){
if(!sent) this.send();
})
这真的很简单,并且在他们重新加载页面之前非常有效。
2) 添加一个 JavaScript cookie。同样,使用 Mootools:
$('myForm').addEvent('submit', function(){
if(Cookie.read('submitted')){ alert('once only'); return false;}
else{ Cookie.write('submitted', 1); return true; }
})
即使用户重新加载页面,这也会起作用。
3) 添加一个 Python 会话 cookie。我不熟悉 Python,但如果它像 PHP,这将没有方法 2 的优势。在任何一种情况下,用户都可以使用 FireCookie 或 WebDeveloper 工具栏(或它们在其他浏览器上的等效项)删除 cookie 并重新加载页面.
4) 添加一个 Flash cookie(使用 Flex)。这是理想的 - Flash cookie 存储在不同的位置,不明显,并且很难删除。唯一的缺点是您需要创建和嵌入一个很小的 swf。
5)在隐藏字段中存储一个值,并检查该值。可以将散列添加到内部链接,以确保即使页面被导航离开,该值仍保持填充状态。
6) 可以为每个访问者增加一个 URL(或使用 htaccess 的自定义 URL)来玩其他游戏。
swf cookie 是上述方法中最好的方法,尽管它可以与其他方法结合使用。