防止表单在网站外部提交

来源:互联网 发布:淘宝客导购位线下推广 编辑:程序博客网 时间:2024/05/01 09:46
防止表单在网站外部提交
January 12, 2010 | tags 表单应用   | views 223
Comments 0
实例说明:
  如果静态网页含有用户提交的表单和字段信息,而从网页的源代码中,又可以看到网页被提交的目标地址,因而修改静态页面表单提交的目标网址,就可以实现在本地运行静态网页并向服务器提交数据。这样,任何人都可以利用网页在网站外登录网站,从而给网站留下严重的安全隐患。为了解决该问题,本实例介绍一种防止表单在网站外部提交的方法,运行本实例,如图一所示,在“用户名”文本框中输入“无语”后,单击“提交”按钮即可进入到网页的处理页面,此时地址栏中的地址即为处理页的地址(用户也可以通过其他方法获得),当用户在本地机器上编写静态表单页时,将目标地址设置为以上地址后,运行网页并提交表单将显示如图二所显示的提示信息。
 
技术要点:
  由于网站服务器的名称是唯一的,而每次从客户端浏览服务器网页时,所浏览的网页中包含了网页的来源信息。因此可以通过比较服务器名称的方法来防止表单在网站外被提交,在本实例中首先使用Request.Server.Variables("HTTP_REFERER")方法获得网页的URL,其中包含了要打开页面的链接和客户装载页面的方法,然后使用Request.Server.Variables("SERVER_NAME")方法获取服务器主机名,最后比较网页的URL中包含的服务器名称和服务器主机名是否相同。如果表单在网站外部提交,网页的URL为空,比较时将发现路径有误。
  ServerVariables集合的语法:
Request.Server.Variables(服务器环境变量)
  常见的服务器环境变量如下表所示。
常见服务器环境变量
环境变量    说明
ALL_HTTP    传送HTTP HEADER头部
ALL_RAW    取得HTTP HEADER的源程序
ALL_MD_PATH    ISAPI DLL应用程序的METBASE路径
AUTH_PASSWORD    使用基本认证时,Client端输入的认证密码
AUTH_USER    认证时使用的用户名
CERT_COOKIE    Client端证书id
CERT_FLAGS    Client端证书是否存在(存在为1)
CERT_ISSUWE    Client端证书发行者信息
CERT_SUBJECT    Client证书内容
CONTENT_TYPE    Client送出内容的类型
HTTP_<headname>    保存在头部的其他信息
QUERY_STRING    QUERY字符串的相关信息
REMOTE_ADDR    远端主机的IP地址
SCRIPT_NAME    正在运行的脚本的名称
SERVER_NAME    运行脚本的服务器的主机名、DNS或IP地址
SERVER_PORT    取得Server端口号
URL    取得URL信息
  说明:ServerVariables集合可用于提供各有关随HTTP请求一起传递的HTTP头信息。
实现过程:
  (1)在网页中添加表单及相关的表单元素,并设置Form表单的相关属性值。
<form name="form1" action="index.asp" method="post">
<div align="center">
<input type="text" name="textfield">
<input type="submit" name="action" value="提交">
<br>
</div>
</form>
  (2)如果表单被提交,将判断表单提交的路径是否有误,如果提交的路径有误,系统将给予提示,禁止从网站外部进行提交的表单。代码如下:
<%
if request("action")="提交" then
ServerName1=Cstr(Request.ServerVariables("HTTP_REFERER"))
ServerName2=Cstr(Request.ServerVariables("SERVER_NAME"))
if Mid(ServerName1,8,len(ServerName2))<>ServerName2 then
  Response.Write "禁止从网站外部提交表单!!"
else
response.Write("页面提交成功!")
end if
end if
%>
举一反三:
  根据本实例,我们可以:
  1.在编写用户登录程序时,应用到该方法;
  2.在开发网站后台的管理员登陆程序时,应用到该方法;
  3.在编写信息登陆程序时,应用到该方法。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 奔驰钥匙没电怎么办 婚内买的车离婚怎么办 离心风机噪音大怎么办 匹凸匹被st五牛怎么办 考不进去中学怎么办 教师体检来例假怎么办 老板拖欠农民工工资怎么办 公司破产拖欠员工工资怎么办 白玉蜗牛下蛋了怎么办 黄牛卖不出的票怎么办 鸡受风寒不产蛋怎么办 蛋鸡感冒不下蛋怎么办 牛肉煮老了怎么办 牛肉炖碎了怎么办 比值审敛法等于1怎么办 华为手机停止运行怎么办 易事通卡怎么办延期 三星手机照相机故障怎么办 凌晨一点到机场怎么办 凌晨3点醒来怎么办 凌晨四五点咳嗽怎么办 凌晨4点大便怎么办 熊猫小课付了费怎么办 华为手机系统升级后卡机怎么办 孕妇汗脚脚臭怎么办 巴基斯坦留学生丢失护照怎么办 vivox20耳机进水了怎么办 轴圆齿之间间隙大怎么办 浩辰cad2017保存不了怎么办 会议无poster版块怎么办 大四考研失败了怎么办 博士退学老师不同意怎么办? 贴双眼皮眼皮松怎么办 dpf灯亮了怎么办 60岁社保没交满怎么办 老公素质太差怎么办 耿彦波退休了太原怎么办 宫腔镜三天后同房了怎么办 开关失灵关不了怎么办 灯的开关关不掉怎么办? 身上毛孔粗大怎么办呀