1、伪造来源地址:使用IdHttp可以伪造这个来源地址,而且很简单,只要在访问某地之前加上一句:
IdHttp1.Request.Referer := 'http://www.3464.com/';那么来源地址就变成了http://www.3464.com/而不是你实际的来源地址了。
2、Cookie欺骗:
如何用idhttp提交自己构造过的Cookie
我不知道的是:如果把自己构造过的Cookie传给idhttp让它提交。
比如站点 http://www.aaa.com 是要cookie的。
我已经在程序上放了idhttp和IdCookieManager。
我get http://www.aaa.com 后,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://hi.baidu.com/woshihuanquan/blog/item/882c38afa5413cd87cd92aa8.html
分享到:
相关推荐
标题 "idhttp 使用代理访问" 暗示了这是一个关于在 Delphi 开发环境中使用 Indy HTTP 客户端组件通过代理服务器进行网络访问的主题。Indy 是一个流行的开源网络组件库,广泛用于 Delphi 和 C++Builder 开发者中,...
这可以通过访问IdHTTP的`CookieManager`属性来实现。`CookieManager`是一个TIdCookieManager对象,可以用来管理Cookie。 例如,以下代码展示了如何设置一个自定义的Cookie: ```delphi var Cookie: TIdCookie; ...
for Cookie in IdHTTP.CookieManager.Cookies do ShowMessage(Cookie.Name + '=' + Cookie.Value); ``` 4. **发送带有Cookies的请求**:在下次发送请求时,`TIdHTTP`会自动将已存储的Cookies添加到请求头中,以便...
更高级的使用场景,比如设置自定义认证、处理Cookie、代理设置等,也可以通过IdHTTP的Request和Response属性实现。例如,设置HTTP基本认证: ```delphi IdHTTP.Request.BasicAuthentication := True; IdHTTP.Request...
IDHTTP 可以管理和发送 Cookie,确保后续的请求能被服务器识别为已登录状态。 6. **安全性**:在实际应用中,应考虑安全因素,如使用 HTTPS 连接保证数据传输的安全,以及对用户输入进行验证和过滤,防止 SQL 注入...
6. **设置代理服务器**:如果网络访问需要经过代理,可以配置IDHTTP的ProxyServer属性。例如: ```delphi HTTP.ProxyServer := 'http://proxy.example.com:8080'; HTTP.ProxyPort := 8080; ...
IDHTTP组件允许开发者自定义请求头、cookies、代理设置等,以满足各种网络通信需求。 在Delphi中,使用IDHTTP组件进行POST请求时,通常涉及以下几个步骤: 1. 创建IDHTTP实例:首先,在代码中创建一个TIdHTTP对象...
注意线程同步问题,防止对共享资源(如`IDHTTP`对象)的并发访问。 3. **内存管理**:一次处理大量网页代码可能导致内存压力,可以考虑分批处理或者使用流式读写来减少内存占用。 4. **HTTP头部设置**:根据需求,...
7. **配置文件和项目文件**:在提供的文件列表中,`IdHTTP_Demo.cfg`可能包含IdHTTP组件的配置信息,如代理设置等。`Unit1.ddp`和`Unit1.dfm`分别是Delphi的项目文件和表单设计文件,记录了窗体布局和组件设置。`...
当Delphi程序在尝试通过IDHTTP组件连接到SSL网站时,如果没有这些DLL,或者版本不兼容,就会出现错误。描述中还提到"使用Delphi7 正常,其它版本我就清楚",这可能意味着开发者在其他Delphi版本中遇到问题,可能是...
标题中的“IdHTTP.rar_idhttp_in”表明这是一个与Delphi 7开发环境相关的压缩包,主要涉及IdHTTP组件。IdHTTP是 Indy(Internet Direct)库的一部分,它在Delphi编程中用于实现HTTP协议的客户端功能。这个“dcu”...
4. 身份验证与授权:如果有需要,设置Request的Authorization属性或使用ProxyServer属性处理代理服务器。 5. 数据编码:根据实际情况选择合适的Content-Type,如'application/json'、'multipart/form-data'等。 ...
4. **检查和修改Cookies**:你可以通过`CookieManager`访问和修改Cookies。例如,如果你需要清除特定的Cookie,可以找到对应的`TIdCookie`对象并删除;如果需要设置新的Cookie,可以直接创建`TIdCookie`对象并添加到...
标题"FireMonkey idhttp RestClient访问 SSL"指出的主题是关于在Delphi XE6更新1(XE6 up1)版本下,如何使用`RESTClient`组件来安全地访问SSL/TLS保护的Web服务。由于在iOS平台上使用`IdHTTP`组件时可能会遇到问题...
在Delphi 7开发环境中,当你需要通过IDHTTP组件来实现对HTTPS协议的支持时,可能会遇到一些挑战。这个“D7_IDHTTP访问HTTPS所需DLL.rar”压缩包正是为了解决这个问题而提供的。它包含了两个关键的动态链接库(DLL)...
1. 创建`TIdHTTP`组件实例,通过设置其属性来配置请求行为,如代理设置、超时时间、编码方式等。 2. 调用`Get`方法,传入目标URL作为参数。例如: ```pascal var IdHTTP: TIdHTTP; Response: string; begin ...
IDHTTP组件最简单的POST请求可以通过设置其 `Method` 属性为 `htPost`,然后调用 `Execute` 方法,将数据发送到指定URL。例如: ```delphi procedure BasicPostRequest; var HTTP: TIdHTTP; Response: String;...
4. 使用代理服务器进行网络访问。 5. 自动化脚本或程序编写,用于注册和编辑博客。 6. 文件的加密和解密操作。 7. 网络编程的基本概念,如 URL、请求头、请求体等。 8. 数据的序列化和反序列化,如将表单数据转换为 ...
使用IdHttp下载文件并显示下载进度条,下载进度采取windows消息通知的方式来显示
在Delphi中,我们可以直接将`IDHTTP`组件拖放到表单上,并通过设置其属性和调用方法来完成网络请求。 在下载文件的过程中,我们主要关注以下几个步骤: 1. **创建IDHTTP组件**:首先,我们需要在表单上添加一个`...