防止恶意注册的一种防御方式。

在写一个邮箱注册机的时候老是POST后返回失败的消息,程序检察了N遍,确实没有发现错误之处。最后在很多地方添加MessageBoxShow来显示调试信息,终于POST成功了一次,我就在想了为什么我添加了MessageBoxShow的时候就成功了呢?原来是由于我在看MessageBoxShow的时候产生了时间延迟,后面的代码就只有当我点击MessageBoxShow的确定按钮后才会执行。

我们先看看POST数据的一般形式:

HttpWebRequest req=WebRequest.Create("http://.........") as HttpWebRequest;
req.Method="POST";
req.Accept="application/json, text/javascript, */*";
req.UserAgent=UserAgent;
req.KeepAlive=true;
req.ContentType="application/x-www-form-urlencoded";
req.CookieContainer=cookie;
string optshiString=GetRandomString(AlphabetNum,7);
user=GetRandomString(AlphabetLetter,10);
psw=GetRandomString(AlphabetHex,8);
string text="uname="+user+"&password=123456798&optshi="+optshiString+"&passwordconf=123456798&mobile=&verifycode="+HttpUtility.UrlEncode(textBox1.Text,encoding)+"&domain=xxx.com&version=regvf1";
byte[] buffer=Encoding.ASCII.GetBytes(text);
MessageBox.Show("在这sleep n秒");
Stream stream=req.GetRequestStream();
stream.Write(buffer,0,buffer.Length);
stream.Close();

  

从上面的代码我们可以看出什么呢?时间差,什么时间差呢,是WebRequest.Create创建到stream.Write之间的时间,如果这段时间相差小于服务器设置的时间差那么就不能通过注册。以后检察了N遍之后死Post也Post不成功的时候就往这方面想想吧,呵呵。。。

转载于:https://www.cnblogs.com/JiangHuakey/archive/2011/10/13/2211020.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值