.NET 使用HttpWebRequest 伪造Request.UrlReferrer
在网上找了许久关于伪造UrlReferrer地址资料,也许是搜索的关键词不对吧,还是内容涉及到了什么敏感的东西,愣是没找到,换成自定义UrlReferrer也找不到。经过仔细研究,原来在.NET中要自定义一个UrlReferre,只要设置Referer这个属性即可,以下是具体实现的代码。
一般在.NET中都是使用HttpWebRequest 类进行HTTP请求处理,代码大致如下
string strUrl = "shiyousan.com";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUrl);
/*
* 只要设置了Referer属性,向目标发送的UrlReferrer就是Referer的值
* 这里我们伪造的Request.UrlReferrer是shiyousan.com
*/
request.Referer = "http://shiyousan.com";
request.Method = "GET";
request.KeepAlive = false;
其中HttpWebRequest.Referer 属性就是设置Request.UrlReferrer。
伪造Request.UrlReferrer或者应该说自定义Request.UrlReferrer的用途暂时还想不到哪儿常用到,目前唯一想到是在进行恶意攻击的时候会用到。
如果有在项目中需要测试程序的安全性,可以自定义Request.UrlReferrer进行测试。在项目中,有些功能需要验证用户的请求是否合法,以此来防御那些不通过网站来访问,而是通过外部程序进行恶意攻击、请求和盗取网站等非法请求。
另外项目中如果根据Request.UrlReferre来判断请求的URL是否是本网站地址是不准确的,毕竟我们从上面已经了解了Request.UrlReferre是可以被伪造的
.NET 使用HttpWebRequest 伪造Request.UrlReferrer的更多相关文章
- Request.UrlReferrer
1:Request.UrlReferrer可以获取客户端上次请求的url,这样就可以实现类似“上一页”的功能等 2:刷新当前页面,不会改变Request.UrlReferrer的值 3:如果有A,B两 ...
- Request.UrlReferrer 使用
最近有一个功能是反馈统计,然后在反馈建议里面添加是从哪个页面点击过来的,一开始打算做成&url=这种方法加在链接里面然后页面接受参数,后来知道了request.UrlReferrer 知道他可 ...
- Request.UrlReferrer为空的问题
Request.UrlReferrer为空的问题 今天在开发时遇到了一个问题,在用Request.UrlReferrer获取上一页面的地址时发现该对象为空(IE下,FF下可以得到对象),于是上网搜 ...
- Request.UrlReferrer注意点
定义: public sealed class HttpRequest { // // 摘要: // 获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL. // // 返回结果: / ...
- Request.UrlReferrer详解
使用前需要进行判断: if (Request != null && Request.UrlReferrer != null && Request.UrlReferrer ...
- MVC Request.UrlReferrer为null
使用情景,登录后返回登录前访问的页面. 这个时候用到了UrlReferrer var returnUrl = HttpContext.Current.Request.UrlReferrer != nu ...
- Request.UrlReferrer 实现页面刷新
在使用Ajax 异步提交表单的时候,需要返回某些状态信息.但如果把需要返回的如分页.过滤的参数写在控制器的参数里面,会比较繁琐. 因此,1.可以在控制器里面使用 Request 对象的请求的URL. ...
- 用window.showModalDialog()打开的页面Request.UrlReferrer为null
今天在解决一个问题,怎么也找不到解决方案.我的一个窗体是IE通过window.showModalDialog()打开的,但为了防止用户手工输的地址,所以我需要判断是通过别的页面调整获得,用Reques ...
- ASP.NET中的Request、Response、Server对象
Request对象 Response.Write(Request.ApplicationPath) //应用根路径 Request.AppRelativeCurrentExecutionFilePat ...
随机推荐
- C语言(C99标准)在结构体的初始化上与C++的区别
C++中由于有构造函数的概念,所以很多时候初始化工作能够很方便地进行,而且由于C++标准库中有很多实用类(往往是类模板),现代C++能十分容易地编写. 比如现在要构造一个类Object,包含两个字段, ...
- FPGA与图像处理
用FPGA做图像处理最关键的一点优势就是:FPGA能进行实时流水线运算,能达到最高的实时性.因此在一些对实时性要求非常高的应用领域,做图像处理基本就只能用FPGA.例如在一些分选设备中图像处理基本上用 ...
- mysql命令之二:查看mysql版本的四种方法
1:在终端下:mysql -V. 以下是代码片段: [shengting@login ~]$ mysql -V mysql Ver 14.7 Distrib 4.1.10a, for redhat-l ...
- 利用nginx_push_stream_module实现服务器消息推送
NGiNX_HTTP_Push_Module 是一个 Nginx 的扩展模块,它实现了 HTTP Push 和Comet server的功能.HTTP Push 被经常用在网页上主动推的技术,例如一些 ...
- kotlin学习二:初步认识kotlin
1. 函数 kotlin中支持顶级函数(文件内直接定义函数),对比JAVA来说,JAVA的程序入口是main方法,kotlin也一样,入口为main函数 首先看下kotlin中main函数的定义. f ...
- python学习(二十七) 元组
# 元组是不可变的,不能改变元素的值,也不能增加.减少元素my_tuple = (1, 2, 3, 3)print(my_tuple) # 查找元素位置print(my_tuple.index(2)) ...
- 使用wifi网卡笔记3---工具wpa_supplicant(STA模式)
1. wpa_supplicant介绍 supplicant是恳求者的意思,是wpa的发起者,是发送认证请求的设备(手机),手机--AP--认证服务器,可用于上述4种"认证/加密" ...
- Java中static关键字介绍
static关键字主要有两种作用: 第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 具体而言,在Java语言中,static ...
- Python2.x与Python3.x同时安装时,切换使用方法
Windows环境下允许同时安装Python2.x与Python3.x 一.在命令提示符下使用python2.x或者python3.x可以使用如下方法: 1.找到python的安装目录 2.重命名应用 ...
- [OpenCV Qt教程] 如何在内存中压缩图像
本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-comprimere-un-immagine-in-memoria/ ...