1、偽造來源地址:使用IdHttp可以偽造這個來源地址,而且很簡單,只要在訪問某地之前加上一句:
IdHttp1.Request.Referer := 'http://www./';那么來源地址就變成了http://www./而不是你實際的來源地址了。
2、Cookie欺騙:
如何用idhttp提交自己構造過的Cookie
我不知道的是:如果把自己構造過的Cookie傳給idhttp讓它提交。
比如站點 http://www./ 是要cookie的。
我已經在程序上放了idhttp和IdCookieManager。
我get http://www./ 后,idhttp通過IdCookieManager已經得到當前站點的Cookie了。
我可以用
for i := 0 to IdCookieManager1.CookieCollection.Count - 1 do
memo1.Lines.Add(IdCookieManager1.CookieCollection.Items[i].CookieText);
得到。
現在,如果我想更改這個cookie,或者說我想按這個Cookie的格式重新寫一個,再用idhttp進行post。我應該怎么做?用途是Cookie欺騙等。
如:得到的Cookie為:skin=2; ASPSESSIONIDSQTSABQD=IEMKPIDBKKMEEKEHLLOIJJON; UserCode=3CA001D63984E6115FE55681%2E95
我更改為:skin=123; ASPSESSIONIDSQTSABQD=IEMKPIDBKKMEEKEHLLOIJJON; UserCode=3CA001D63984E6115FE55681%2E95
我再post
****************************************************************************************************
在Idhttp中,要想修改Cookie的代碼,就要用到Request的RawHeaders中的Values值。
這個值怎么用呢?
Values接受一個string的值,該值指定了所訪問的變量。
如HTTP頭是這樣定義的(其中一些):
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;
Cookie: JSESSIONID=aoOYvjM-IKzh
而Values的值就可以是Cookie,User-Agent,Accept-Encoding……等等。
RawHeaders必須初始化后才可用。
正確的代碼應該是這樣:
try
idhttp1.Request.SetHeaders; //最重要的初始化。
idhttp1.Request.RawHeaders.Values['Cookie'] := '這里是cookie的值';
idhttp1.Post('/webmail/login.jsp',data1,data2);
except
idhttp1.Get(idhttp1.Response.Location, data1);
end;
3、代理服務器:
使用idhttp控件,調整代理服務器參數也可以實現通過代理服務器訪問。
idhttp1.ProxyParams.ProxyServer :=proxyip.Text ;//代理地址
idhttp1.ProxyParams.ProxyPort :=StrToInt(port.text);//端口
//如果代理需要驗證
idhttp1.ProxyParams.ProxyUsername:=uname.Text ;//用戶名
idhttp1.ProxyParams.ProxyPassword:=pw.Text ; //密碼
如果是在局域網內,代理不成功。
文章來源于: http://www./archives/41240/