1. 程式人生 > >看好你的門-客戶端傳資料(5)-用java修改referer

看好你的門-客戶端傳資料(5)-用java修改referer

首先需要宣告,本文純屬一個毫無遠見和真才實學的小小開發人員的愚昧見解,僅供用於web系統安全方面的參考。

1、 簡單說明
Referer用來表明,瀏覽器向 WEB 伺服器表明自己來自哪裡。
但是就它本身而言,並非完全安全。
寫一個例子,可以任意修改http資訊頭中的referer

2、 準備:
用httpClient4.0來具體實現


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、 執行後結果

“`



看好你的門-阿飯同學


如果不是來自超級管理員,那麼我無法被訪問(超級管理員是來自一個叫做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

不是管理員,請從管理員頁面進入