我有一张注册表格可以注册,工作正常。作为滥用/机器人防范的一部分,如果您在最后3小时内尝试从同一IP地址注册另一个帐户,则注册页面将显示反脚本检查。
但是我已经设法获得了一个能够绕过这个检查的脚本。该脚本可以在Windows上使用宏扩展名运行到Firefox。它使用email.txt作为电子邮件地址的来源。
email="email.txt"
akun=new Array()
ID=new Array()
for(ns=1;ns<=2000;ns++){
iimPlay("CODE:"
+"\n"+"CMDLINE !DATASOURCE "+email
+"\n"+"SET !DATASOURCE_COLUMNS 1"
+"\n"+"SET !LOOP "+(ns)
+"\n"+"SET !EXTRACT {{!COL1}}")
akun[ns]=iimGetLastExtract();if(akun[ns]==""||akun[ns]=="undefined"||akun[ns]=="#eanf#")
{break}
ID[ns]=akun[ns].replace("@yahoo.com","")
i=iimPlay("CODE:"
+"\n"+"URL GOTO=http://www.website.com/signup"
+"\n"+"TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:email CONTENT="+akun[ns]
+"\n"+"TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:confirm CONTENT="+akun[ns]
+"\n"+"TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:username CONTENT="+ID[ns]
+"\n"+"SET !ENCRYPTION NO"
+"\n"+"TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:NoFormName ATTR=NAME:password CONTENT=satan1234"
+"\n"+"TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:NoFormName ATTR=NAME:confirm_password CONTENT=satan1234"
+"\n"+"TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:referral CONTENT=52799"
+"\n"+"TAG POS=1 TYPE=INPUT:CHECKBOX FORM=NAME:NoFormName ATTR=NAME:tos CONTENT=YES"
+"\n"+"pause"
+"\n"+"TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:street-register ATTR=NAME:register&&VALUE:Play<SP>For<SP>Free<SP>→"
+"\n"+"TAG POS=1 TYPE=A ATTR=TXT:Logout"
)
if(i!=1){break};
iimDisplay (ns)
}
任何人都可以提醒我如何阻止这个剧本无休止地工作?
谢谢
答案 0 :(得分:1)
由于所有请求都源自相同的IP地址,请使用您的逻辑进行服务器端检查。在某个地方你应该存储已经放置的请求。然后根据这些值检查服务器变量“remote address”。他们是否已经在过去3个小时内提出请求,然后拒绝它并且不再处理它。
不要依赖客户端脚本。并且也不依赖于客户端请求传递的任何值,因为它们都可以被操纵。