`
renyanwei
  • 浏览: 71089 次
  • 性别: 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 向你学习啊

相关推荐

    JAVA调用梦网云通讯平台API实现短信发送

    在本文中,我们将深入探讨如何使用Java编程语言调用梦网云通讯平台的API来实现短信发送功能。梦网云通讯平台提供了一整套服务,包括短信、语音、流量等通信能力,帮助企业轻松构建通信应用。为了实现这个功能,我们...

    java SMS for send and receive

    而对于HTTP/RESTful接口,通常会有一个HTTP端点,服务提供商在接收到短信后会向该端点发送POST请求,你需要解析请求体以获取短信内容。 6. **认证与安全性** 在发送和接收短信时,确保通信的安全性至关重要。使用...

    java 股票查看软件

    Java股票查看软件是一种利用Java编程语言开发的应用程序,它能够实时地从平安证券网站等金融市场数据源抓取并显示股票相关信息,帮助投资者进行股票市场的观察和分析。Java作为跨平台的编程语言,具有良好的可移植性...

    HTTPSMS_Java.zip_java http sms_web sms

    - 调用API:创建一个HTTP客户端,设置请求头,携带必要的参数(如手机号码、短信内容、API密钥等)向短信服务商的API发送POST请求。 - 处理响应:接收HTTP响应,检查状态码和返回信息,判断短信发送是否成功。 6....

    Java Servlet Programming

    - **Java Distributed Computing**: 分布式计算是现代Web服务架构中的一个重要方面,这部分内容涉及如何利用Java进行分布式系统的设计和实现。 - **Developing JavaBeans**: JavaBeans是一种可重用的组件模型,通常...

    JAVA笔试题目集合

    - **处理请求阶段**:每当客户端发送请求到服务器时,服务器会创建一个新的线程来处理该请求。在这个阶段,Servlet的`service()`方法会被调用,它会根据HTTP请求类型(GET、POST等)调用相应的`doXXX()`方法。例如,...

    java经典面试题

    ### Java经典面试题知识点梳理 #### J2SE基础 1. **九种基本数据类型的大小,及其封装类**: - Java提供了八种基本数据类型(`byte`, `short`, `int`, `long`, `float`, `double`, `boolean`, `char`),每种类型...

    自己做的论坛自动顶贴程序

    在构建自动顶贴程序时,这个库起到了关键作用,因为它可以模拟用户在论坛上的交互,如发送POST请求来创建新的帖子或回复,以及GET请求来获取论坛数据。 首先,了解Java编程基础是必要的。Java是一种面向对象的、跨...

    使用邮箱激活用户注册状态.docx

    这些信息通常通过HTTP POST请求发送到服务器端。 2. 验证信息 在服务器端,Java Web应用程序会对输入的数据进行验证,如检查用户名是否已存在,密码是否符合强度要求,邮箱格式是否正确等。验证通过后,系统会保存...

    java web笔记之servlet生成验证码

    当用户提交表单时,服务器会接收到包含验证码的POST请求。在Servlet的`doPost`方法中,取出会话中的原始验证码并与用户输入的验证码进行比较。如果两者匹配,验证成功;否则,提示用户重新输入。 六、注意事项 1. ...

    2018阿里Java面试题70道

    这些题目涵盖了Java编程语言、操作系统、网络协议、Java虚拟机(JVM)、并发与线程、内存管理、异常处理、分布式系统以及相关的网络和安全概念。以下是对这些知识点的详细解释: 1. **Java事件机制**:包括事件源、...

    java播放器-可搜索下载网络资源

    Java提供了`java.net`包,包含Socket、HttpURLConnection等类,用于发送HTTP请求到百度搜索引擎,获取并解析返回的资源信息。 3. **HTML页面解析** 要从网页中提取资源信息,需要解析HTML页面。这通常通过DOM...

    java 面试题 总结

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。 20、EJB与JAVA BEAN的区别? Java Bean 是可复用...

    java毕业设计&课设-iOS计算器.zip

    1. Java基础:Java是一种广泛使用的面向对象的编程语言,具有平台无关性、垃圾回收、自动内存管理等特性。对于计算器应用,Java的基础语法、类与对象、异常处理等知识是必不可少的。 2. MVC设计模式:iOS应用开发中...

    springboot垃圾分类查询管理系统演示录像2023_dv41u.zip

    系统前端可能采用了现代化的Web技术栈,如React、Vue或Angular,通过发送AJAX请求与后端交互,实现动态页面展示。用户界面设计应简洁直观,方便用户快速查询垃圾类别并获取相关处理建议。 此外,为了提升用户体验,...

    Java EE API(基础包).pdf

    Java EE API,也被称为Java 2 Platform, Enterprise Edition (J2EE),是Java平台用于开发和部署企业级应用程序的标准。...通过不断学习和实践,开发者可以更好地利用Java EE提供的强大功能来满足复杂业务需求。

    阿里短信发送接口实例代码

    本文将详细讲解如何利用阿里短信发送接口实现相关功能。 一、阿里短信服务概述 阿里云短信服务是基于HTTP/HTTPS协议的RESTful API,具有高并发、低延迟、稳定可靠的特性。它提供了丰富的API接口,支持多种语言的SDK...

    其他类别MeyboMail Web(Java)开源简化-meybomailweb

    邮件服务器的核心功能包括SMTP(Simple Mail Transfer Protocol)用于发送邮件,POP3(Post Office Protocol version 3)或IMAP(Internet Message Access Protocol)用于接收邮件。MeyboMail Web可能会实现这些协议...

    sendMessage手机短信

    3. 发送POST请求到提供商的服务器,然后解析响应以确认短信是否成功发送。 无论哪种情况,都需要考虑以下关键知识点: 1. 权限管理:在Android中,发送短信需要在AndroidManifest.xml中声明 `...

    最新Java面试大全

    - **使用HTTP请求**:发送GET或POST请求。 - **使用Ajax**:异步JavaScript和XML技术,实现局部刷新。 - **WebSocket**:实现全双工通信。 #### 23. 逻辑操作与条件操作的区别 - **逻辑操作**:如&、|,短路与非...

Global site tag (gtag.js) - Google Analytics