asp Http_Referer,Server_Name和Http_Host
来源:asp之家 发布时间:2011-03-29 11:12:00
刚才运行了一段代码,来查看Request.ServerVariables里面有多少值,看了一下,共50个!
代码<%=Request.ServerVariables.count%>
以前感觉Request.ServerVariables里的值很多,现在看看还是那么多,不过今天谈其中的一个值----HTTP_Referer
首先,我们先知道HTTP_Referer最常用的应用就是能够防止外部提交。
下列情况是从浏览器的地址栏正常取得Request.ServerVariables("HTTP_REFERER"):
1) 直接用<a href="">
2) 用Submit或<input type="image">提交的表单(POST或GET)
3) 使用JAvaScript提交的表单(POST或GET)
下面我们再看看Request.ServerVariables("HTTP_REFERER")不能正常取值的情况:
1) 从收藏夹链接
2) 单击主页或自定义的地址
3) 在浏览器中直接输地址
4) 使用JavaScript的Location.href或者是Location.replace()
5) <%Response.Redirect%>
6) <%Response.AddHeader%>或者是<mete http-equiv="refresh">转向
7) 用XML加载地址
显然,Request.ServerVariables("HTTP_REFERER")在多数情况下是不能正常工作的。关于它的具体用法我会在以后的文章中详细的介绍,同时还会介绍Request.ServerVariables("HTTP_HOST")Request.ServerVariables("SERVER_NAME")之间的区别。
敬请关注!
Request.ServerVariables里Server_Name与Http_Host之间有什么区别呢?
如果不仔细看,您应该看不出它们之间的区别。在网上搜了很多,还是也没有看懂,不过最后还是有一句话很是明白:Http_Host可以Request出非80的Server_Port,简单地说就是,Http_Host=Server_Name:Server_Port。
在以前发表过关于Http_Referer作用的文章,现在结合它来写一个ASP防止外部提交的函数
代码如下:
function ChkPost()
dim server_v1,server_v2
chkpost=false
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
If Mid(server_v1,8,Len(server_v2))<>server_v2 then
chkpost=False
else
chkpost=True
end If
end function
Select Case
假如你希望选择多套代码之一来执行,可以使用 SELECT 语句:
代码如下:
select case payment
case "Cash"
msgbox "You are going to pay cash"
case "Visa"
msgbox "You are going to pay with visa"
case "AmEx"
msgbox "You are going to pay with American Express"
case Else
msgbox "Unknown method of payment"
end select
以上代码的工作原理:首先,我们需要一个简单的表达式(常常是一个变量),并且这个表达式会被做一次求值运算。然后,表达式的值会与每个 case 中的值作比较,如果匹配,被匹配的 case 所对应的代码会被执行。


猜你喜欢
- 方法一、简单安装(通过yum)1.安装epel-releaserpm -ivh http://dl.fedoraproject.
- 查询本日记录SELECT * FROM messages WHERE CONVERT(Nvarchar, CreateDate, 111)
- Python中的frame是什么栈帧(frame)栈帧表示程序运行时函数调用栈中的某一帧。想要获得某个函数相关的栈帧,则必须在调用这个函数且
- 在数据生产应用部门,取数分析是一个很常见的需求,实际上业务人员需求时刻变化,最高效的方式是让业务部门自己来取,减少不必要的重复劳动,一般情况
- 1,登录后默认自动选中My Objects 默认情况下,PLSQL Developer登录后,Brower里会选择All objects,如
- 其实各大深度学习框架背后的原理都可以理解为拟合一个参数数量特别庞大的函数,所以各框架都能用来拟合任意函数,Pytorch也能。在这篇博客中,
- ES在之前的博客已有介绍,提供很多接口,本文介绍如何使用python批量导入。ES官网上有较多说明文档,仔细研究并结合搜索引擎应该不难使用。
- 其实 Oracle数据库的分页还是比较容易理解的。此文以oracle数据库中的SCOTT用户的EMP表为例,用PL/SQL Develope
- 1 旖旎风景马上虎年了,也是我的生肖年,很激动!(不小心暴露了年龄,哈哈哈......),这里先给大家拜年啦,祝大家虎年快乐,虎年爆富!&n
- 需求:写一个登录的程序,1、最多登陆失败3次2、登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束3、要检验输入是否为空,账号和密码不
- 本文以抢购、秒杀为例。介绍如何在高并发状况下确保数据正确。 在高并发请求下容易参数两个问题 1.数据出错,导致产品超卖。 2.频繁操作数据库
- python中类的继承:子类继承父类,及子类拥有了父类的 属性 和 方法。python中类的初始化都是__init__()。所以父类和子类的
- 图像的阈值处理一般使得图像的像素值更单一、图像更简单。阈值可以分为全局性质的阈值,也可以分为局部性质的阈值,可以是单阈值的也可以是多阈值的。
- 在数据处理的时候,尤其在搞大数据竞赛的时候经常会遇到一个问题就是,多个表单的合并问题,比如一个表单有user_id和age这两个字段,另一个
- filter的语法:filter(函数名字,可迭代的变量)其实filter就是一个“过滤器”:把【可迭代的变量】中的值,挨个地传给函数进行处
- 提示:以下操作均在root权限下进行。# 查看有没有安装MySQL:dpkg -l | grep mysql# 安装MySQL:apt in
- 首先,建一个文件夹,把你要隐藏的文件放在里面,你的所有黑客程序什么的。假设你建的文件夹叫hacker然后呢,我们给这个文件夹加个扩展名(后缀
- 上传图片: if (!empty($_FILES["img"]["name"])) { //提取文件
- 最近又新上了一部分站点,随着站点的增多,管理复杂性也上来了,俗话说:人多了不好带,我发现站点多了也不好管,因为这些站点里有重要的也有不重要的
- 模板的继承完美在写html的时候会发现,自己多个html文件中又好多东西是一样的,包括静插件的引入 还有有些简单的css样式都不需要修改,这