国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > 看好你的门-客户端传数据(5)-用java修改referer

看好你的门-客户端传数据(5)-用java修改referer

来源:程序员人生   发布时间:2015-03-23 08:31:12 阅读次数:3968次

首先需要声明,本文纯属1个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考。

1、 简单说明
Referer用来表明,阅读器向 WEB 服务器表明自己来自哪里。
但是就它本身而言,并不是完全安全。
写1个例子,可以任意修改http信息头中的referer

2、 准备:
用httpClient4.0来具体实现

3、 Java修改http信息头referer的源代码
代码非常简单,就是修改了http头的referer,配套示例的jsp在:http://blog.csdn.net/ffm83/article/details/44095025
源代码以下

package com.safe; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; /** * 用httpClient 摹拟修改referer属性,仅供用于WEB安全防范示例。 * * @author 范芳铭 */ public class EasyModifyHeader { public static void main(String[] args) throws Exception { CloseableHttpClient httpclient = HttpClients.createDefault(); try { //HttpGet httpGet = new HttpGet("http://test.laizi.cn:8080/114/bm/accountLogin"); String url = "http://127.0.0.1:8080/webStudy/http_accept.jsp"; HttpGet httpGet = new HttpGet(url); httpGet.setHeader("referer", "http://www.bucunzai.com/admin.jsp"); CloseableHttpResponse response = httpclient.execute(httpGet); try { HttpEntity entity = response.getEntity(); //打印目标网站输出内容 System.out.println(EntityUtils.toString(entity)); EntityUtils.consume(entity); } finally { response.close(); } } finally { httpclient.close(); } } }

4、 运行后结果

“`



看好你的门-阿饭同学


如果不是来自超级管理员,那末我没法被访问(超级管理员是来自1个叫做admin.jsp的页面,保持在http头中的referer)
地址:127.0.0.1
编码:null
referer:http://www.bucunzai.com/admin.jsp
host:127.0.0.1:8080
connection:Keep-Alive
user-agent:Apache-HttpClient/4.3.6 (java 1.5)
accept-encoding:gzip,deflate

不是管理员,请从管理员页面进入





注意看:referer:http://www.bucunzai.com/admin.jsp
Referer已被修改了。

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生