`
renyanwei
  • 浏览: 70118 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

利用JAVA发送POST请求(垃圾注册就是这么产生的)

阅读更多

大伙都知道利用JAVA的net包的URL类和 URLConnection可以得到网页源代码(这个应该是蜘蛛程序的锥形吧),但是向网页发送数据怎么办呢,GET请求很好处理,直接在网址后面加参数就可以了,但是可不可以向网页中发送POST请求呢,注册程序就是我们在点击提交按钮后往指定页面发送POST请求以便送往数据库

 

本例就来做个演示,往一个完美私服的数据库里不断发送注册请求

 

import java.net.*;
import java.io.*;
import java.util.Locale;
class Test 
{
	public static void main(String[] args) 
	{
		try
		{
			//用于注册的用户名 密码 问题 答案临时变量
			String temp="renyanwei";

			//就注册10个吧,别太过火了
			for (int i=1;i<10;i++)
			{
				String urlstr="http://www.88wanmei.cn/register.php";
				URL url=new URL(urlstr);
				URLConnection conn=url.openConnection();

				//这里是关键,表示我们要向链接里输出内容
				conn.setDoOutput(true);

				//获得连接输出流
				OutputStreamWriter out=new OutputStreamWriter(conn.getOutputStream());

				//这里是我定义了一组账号信息,字段+数据
				String str=String.format(Locale.CHINA,"login=%s&&passwd=%s&&repasswd=%s&&Prompt=%s&&answer=%s&&email=%s",
					temp+i,temp+i,temp+i,temp+i,temp+i,"ren@ren.com");
				//把数据写入
				out.write(str);
				out.flush();
				out.close();

				//到这里已经完成了,不过我们还是看看返回信息吧,他的注册返回信息也在此页面
				BufferedReader reader=new BufferedReader(new InputStreamReader(conn.getInputStream()));
				String line=null;
				int lineNum=1;
				while((line=reader.readLine())!=null)
				{
					++lineNum;

					//为什么只输出174行呢,因为这一行才是返回信息嘛,要其他的没用
					if(lineNum==174)
						System.out.println(line);
				}
			}

		}
		catch (Exception x)
		{
			System.out.println(x.toString());
		}
		
	}

}

 返回信息


                  用户 <b>yanwei1</b> 注册成功!,请10分钟后重新上线查收元宝。<br/>
                  用户 <b>yanwei2</b> 注册成功!,请10分钟后重新上线查收元宝。<br/>
                  用户 <b>yanwei3</b> 注册成功!,请10分钟后重新上线查收元宝。<br/>
                  用户 <b>yanwei4</b> 注册成功!,请10分钟后重新上线查收元宝。<br/>
                  用户 <b>yanwei5</b> 注册成功!,请10分钟后重新上线查收元宝。<br/>
                  用户 <b>yanwei6</b> 注册成功!,请10分钟后重新上线查收元宝。<br/>
                  用户 <b>yanwei7</b> 注册成功!,请10分钟后重新上线查收元宝。<br/>
                  用户 <b>yanwei8</b> 注册成功!,请10分钟后重新上线查收元宝。<br/>
                  用户 <b>yanwei9</b> 注册成功!,请10分钟后重新上线查收元宝。<br/>

 

总结:为什么我们可以这么肆无忌惮的玩弄人家,最重要的原因是什么?无验证码!

通过这个程序只是想劝告大家,以后做网页可一定要注意这一点儿啊,不然碰到别有用心的人可不好玩儿啊

5
1
分享到:
评论
10 楼 phoenix007 2008-11-29  
不错, 看到你这篇文章才知道有这回事,以前也就知道验证码用来防止暴力破解的。写程序还是应该写的安全些! 支持,受教了!
9 楼 xyh 2008-11-03  
现在各大网站都有防止机器人注册(也就是写代码请求)的方法:
如验证码
计算数字的和

8 楼 renyanwei 2008-10-28  
与你同在 写道

太理想化了。。。。没意义。。

敢问老兄,在你眼力什么算意思,意思是什么,哎,苹果落地多没意思啊,牛顿那就火了呢
7 楼 与你同在 2008-10-27  
太理想化了。。。。没意义。。
6 楼 renyanwei 2008-10-27  
fengzhiyu_sh 写道

如果系统是内网使用,验证码的作用是不是可以淡化些? 想听听你的看法 呵

呵呵 其实呢, 内网和外网有啥区别 只要不是你自己一个人访问的, 就有必要 呵呵 写个验证码程序练练水平也是很好嘛 O(∩_∩)O哈哈~
5 楼 fengzhiyu_sh 2008-10-27  
如果系统是内网使用,验证码的作用是不是可以淡化些? 想听听你的看法 呵
4 楼 joylili 2008-10-27  
PS:验证码很重要!!!!
3 楼 lkjust08 2008-10-27  
很好,受教了。
2 楼 renyanwei 2008-10-26  
yushan 写道

楼主 最近发博 频率很高啊 几乎每天一篇啊 讲的各个都受用(俺菜鸟)啊 谢谢啦 有空加俺QQ:810628208 向你学习啊

谢谢支持 哥们儿一起加油
1 楼 yushan 2008-10-26  
楼主 最近发博 频率很高啊 几乎每天一篇啊 讲的各个都受用(俺菜鸟)啊 谢谢啦 有空加俺QQ:810628208 向你学习啊

相关推荐

Global site tag (gtag.js) - Google Analytics