[200分]敌人使用request.getHeader("referer")限制我提交表单,如何破解?

jk3278jk 2005-05-28 11:43:19
最近用HttpClient包写了一个批量提交留言的工具 ,但发现如果对方的程序里使用request.getHeader("referer")判断来源,限制我提交,我能设置referer这个值来骗过他的限制吗。


HttpClient client = new HttpClient();
client.getHostConfiguration().setHost("www.test.com", 80, "http");

HttpMethod method = new GetMethod("/test.jsp?test=ok");//提交数据

//下面这句话不管用。。。是这样写的吗?
method.setRequestHeader("referer","http://www.163.com/");

client.executeMethod(method); //提交表单

//打印服务器返回的状态
System.out.println(" 返回状态:"+method.getStatusLine());

=====================================

能解决吗。 200分不够再加
...全文
1966 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
iwlk 2005-05-31
  • 打赏
  • 举报
回复
楼主 HttpClient 这个类是那个包下面的??
k365 2005-05-29
  • 打赏
  • 举报
回复
session是服务器端的除非他的应用服务器有漏洞,否则休想
jFresH_MaN 2005-05-28
  • 打赏
  • 举报
回复
这个问题可以使用代理来登陆这个网站啊。他限制你的登陆是不是限制一个IP多次提交表单呢?
你可以使用代理来改变自己的IP的。

还有就是直接使用HttpUnit来模拟请求,这样就可以定制Referer
北极猩猩 2005-05-28
  • 打赏
  • 举报
回复
我想,myy的意思是,捕获使用IE访问网页时IE发送的refer值,然后判断自己该如何对该值进行设置
jk3278jk 2005-05-28
  • 打赏
  • 举报
回复
楼上的说的我不明白,捕获ie然后干什么?? 程序怎么写? 能说清楚吗?
myy 2005-05-28
  • 打赏
  • 举报
回复
用 http 捕获工具捕获 IE 的提交的信息,然后完全模拟就行了 ;-)
jk3278jk 2005-05-28
  • 打赏
  • 举报
回复
没人知道吗
jk3278jk 2005-05-28
  • 打赏
  • 举报
回复
method.setRequestHeader("referer","http://www.163.com/");

//这句话是可以起到作用。。不过我设置后他还是不能提交。

如果对方在session里进行什么判断是不是我就不能提交了?? 比如他对发话间隔判断 ,不许1分钟内重复发言。

我怎么才能把session里的值给骗过去??
jk3278jk 2005-05-28
  • 打赏
  • 举报
回复
httpclient的代码有吗。

想要这个代码。其他的不能使用https的。。。


要httpclient的代码。
pigo 2005-05-28
  • 打赏
  • 举报
回复
httpunit的例子:

public boolean logon(String username, String password, String cookietime) {

PostMethodWebRequest pmwq = new PostMethodWebRequest(
"http://www.csdn.net/member/logon.asp");
pmwq.setParameter("login_name", username);
pmwq.setParameter("password", password);
pmwq.setParameter("from", "http://community.csdn.net/expert/forum.asp");
pmwq.setParameter("cookietime", cookietime);
pmwq.setParameter("x", "0");
pmwq.setParameter("y", "0");
this.getCrtwebclient().setHeaderField("Referer",
"http://www.csdn.net/member/logon.asp");
try {
WebResponse wponse = this.getCrtwebclient().sendRequest(pmwq);
//System.out.println("得到的回复是:" + wponse.getText());
String[] csdncookies = this.getCrtwebclient().getCookieNames();
if (wponse.getContentLength() > 200) {
this.setCrtUserName(username);
this.setLogined(true);
}
return wponse.getContentLength() > 200;
}
catch (Exception ex) {
ex.printStackTrace();
return false;
}
}



没有用过httpclient,不过你的问题恐怕是出在不应该用GETMethod,而应该用post。

jk3278jk 2005-05-28
  • 打赏
  • 举报
回复
能不能给出具体的代码,大家了也知道。程序这东西有时光说是说不清的。

请给出具体解决代码。。万分感谢。。 万分。!!!

立刻行动。。
jk3278jk 2005-05-28
  • 打赏
  • 举报
回复
现在不是使用代理的问题。

现在是他判断我的提交来源,也就是说,他不允许跨站提交。 (通过Referfer判断)

楼上说的使用HttpUnit来模拟? 如何模拟呢?谢谢。

jk3278jk 2005-05-28
  • 打赏
  • 举报
回复
refer值我已经捕到了。然后怎么弄??

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧