大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

如何在网页之间隐藏传递的参数

Admin | 2009-1-16 10:01:48 | ReadNums | 8748 | 标签 asp.net | 打印本页
     

  开发网站的时候,我们都明白,有的时候必须在不同的两个页面之间传递各种参数,以达到某种需求!

  但是,绝大多数情况下,传递参数都是显示的,在这样的情况下,不仅能通过浏览器地址栏查看到URL的完整地址,还能通过网址查出使用什么参数、参数的值又是什么!

  针对显示的参数及值的传递,不能说不好,只能讲,不太安全;别人可以截取您的参数,对您网站进行攻击等等…虽然很多网站都使用加密的办法来传递参数,但是终究都不是很好的方法。

  那么,对于网站参数的传递,如何才能保证其安全性呢?

  当然,方法不是没有,不知道您是否考虑过,传递参数的方法可多洛!比如使用伪静态更改参数名及值等等,使用已虚拟过的名称来传递参数,让访客无法猜出真正的参数名称是什么(这种方法,俺已在本站介绍过,请君自行查找!)!

  本文,我们介绍一种更为安全的方法,即让访客无法知道参数名称,更无从知道参数的

  在使用ASP.NET制作网站的时候,我们都会使用一个文件,那就是“Global.asax”,这是一个全局变量集合文件,在这个文件当中,我们所定义的变量,都是公有变量,在网站中的任何一个网页,都可以调用并修改这个文件里面的变量!

  在该文件中,有一个事件,是针对浏览者自动生成的一一对应的会话参数,即Session,如下的代码:

   void Session_Start(object sender, EventArgs e)
  {
   // 在新会话启动时运行的代码
    Session["UserName"] = "";    //用户登陆名称
   }

  上面的代码,我们使用Session["UserName"] 存储访客的登陆名称,以方便在各页面进行调用,加以判断其是否登陆;

  上面的代码,其中的参数的个数,我们可以根据需要自己定义,定义多少个都行!

  并且,上面的参数的值,都有一个会话的时间限制,如果时间已过,那么,这些参数的将会被系统自动回收,不会占用服务器系统的资源,非常方便;

  同时,每个访客对应的这个参数名称,都是唯一的,不同访客,都有一个Session["UserName"] ,但是其值是不同的!

  现在,您应该看出端倪来了吧?我们何不使用这参数来传递网页间的参数值呢?

  下面具体介绍如何使用这种方法:

  假如存在两个页面,即A.ASPX和B.ASPX,A页面为注册页面,B页面为显示注册信息的页面,现在,我们要实现的是,在A页面输入注册信息,点击“注册”按钮,之后直接跳转到B页面,显示注册信息,在此过程,浏览器地址栏显示的是干干净净的页面地址,即不存在任何的参数、也不出现任何的参数值!

  我们可以这样来做!

  前提条件是,您已在全局文件Global.asax中,定义好变量Session["UserName"] ,现在,我们就在A页面“注册”按钮中添加如下的代码:

  protected void Button1_Click(object sender, EventArgs e)
  {
         Session["UserName"]=TextBox8.Text.Trim() ;//将注册名的值传递到全局变量Session["UserName"]中保存起来

  Response.Redirect(“B.ASPX“);//然后,直接跳转到B页面;
   }

  最后,在B页面的Page_Load事件中,显示注册信息!

  protected void Page_Load(object sender, EventArgs e)
  {
   Response.Write(Session["UserName"].ToString().Trim());//直接就显示注册名!
  }

  说完了,该结束了,本文,我们所讲的隐藏页面间的参数及值,使用的就是全局文件中的变量值进行隐含的传递,以保证系统的安全!


问题未解决:在线咨询

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日