六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

C#加密路徑里的參數(shù),保護(hù)參數(shù)隱私安全!

[摘要]寫(xiě)過(guò)論壇的朋友,特別是把路徑放到數(shù)據(jù)里,然后在服務(wù)器端讀取數(shù)據(jù)庫(kù)里的字段,把路徑信息動(dòng)態(tài)的顯示在客戶端. 如過(guò)直接以http://xxxx.xxxx.net/ShowForum.aspx?id=2&rootID=0&userName=myUserName 就會(huì)發(fā)現(xiàn),直接...

    寫(xiě)過(guò)論壇的朋友,特別是把路徑放到數(shù)據(jù)里,然后在服務(wù)器端讀取數(shù)據(jù)庫(kù)里的字段,把路徑信息動(dòng)態(tài)的顯示在客戶端.

    如過(guò)直接以
http://xxxx.xxxx.net/ShowForum.aspx?id=2&rootID=0&userName=myUserName

    就會(huì)發(fā)現(xiàn),直接把參數(shù)信息顯示在Client端了.別有用心的人,可能會(huì)對(duì)你的服務(wù)器進(jìn)行攻擊

    如果在Client這樣顯示.
http://xxxx.xxxx.net/ShowForum.aspx?bdefEdGa=DEdscFDW&aHJdIDesk=esOddEsA&dsERsdwS=SdEEsaDY


下面我把這樣實(shí)現(xiàn)的C#.net代碼貼出,如大家要轉(zhuǎn)載,請(qǐng)保留本人的版權(quán)。

/*
*Description:加密路徑信息后,輸出到Client端
*Auther:天很藍(lán)_崇崇
*Email:[email protected]
*Dates:2005-01-18
*Copyright:ChongChong2008 YiChang HuBei China
*/

using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Data.SqlClient;
using System.Configuration;

//導(dǎo)入自定義的類(lèi)庫(kù)
using _3Layer.DataLayer.DataCommon;
using _3Layer.DataLayer.DataCommon.DataAccess;
using Library.ClassLibrary.Crypt.DES;

namespace CHONGCHONG.XML
 public class RenderingXML : System.Web.UI.Page
 {
  /// <summary>
  /// 從數(shù)據(jù)庫(kù)預(yù)生成XML數(shù)據(jù)源
  /// </summary>
  private void PreRenderXML()
  {
   string strSQL = "select語(yǔ)句略去........................;
   myDataLayer.Open();

   RenderingXml="<?xml version='1.0' encoding='gb2312'?>\r\n";
   RenderingXml+="<xml>\r\n";
   try
   {   
    System.Data.SqlClient.SqlDataReader myDR = (SqlDataReader)myDataLayer.ExecuteReader( strSQL );
    while(myDR.Read())
    {
     RenderingXml+="<TreeNode id='"+myDR["BoardID"]+"'>\r\n";
     RenderingXml+="<NodeText>"+myDR["BoardName"]+"</NodeText>\r\n";
     RenderingXml+="<title>"+myDR["Title"]+"</title>\r\n";
     RenderingXml+="<NodeUrl>"+EncodeHTML( EncodeParameter( myDR["Link"].ToString() ) )+"</NodeUrl>\r\n";
     RenderingXml+="<child>"+myDR["children"]+"</child>\r\n";
     RenderingXml+="<target>"+myDR["Target"]+"</target>\r\n";
     RenderingXml+="</TreeNode>\r\n";
    }
   }
   catch(System.Data.SqlClient.SqlException ee)
   {
    return ;
   }
   finally
   {
    myDataLayer.Close() ;  
   }
   RenderingXml+="</xml>";
   byte[] bytResult = Encoding.Default.GetBytes( RenderingXml ) ;
   Response.ContentType = "text/xml" ;
   Response.BinaryWrite( bytResult ) ;
  }


  /// <summary>
  /// Description:加密路徑參數(shù)
  /// </summary>
  /// <param name="sourParameter"></param>
  /// <returns></returns>
  private string EncodeParameter( string sourParameter )
  {
   string startString = String.Empty ;
   string endString  = String.Empty ;  
   StringBuilder destParameter = new StringBuilder() ;

   if( sourParameter == null sourParameter.Equals("") )
   {
    destParameter.Append( String.Empty ).ToString() ;
   }
   else
   {
    //開(kāi)始分析路徑里的?字符
    if( sourParameter.IndexOf("?")<0 )
    {
     destParameter.Append( sourParameter ).ToString() ;
    }
    else
    {
     //以?號(hào)分割路徑
     string[] paramPath = sourParameter.Split( new char[]{'?'} ) ;
     startString = paramPath[0].ToString() ;
     endString = paramPath[1].ToString() ;

     //開(kāi)始分析路徑里的&字符
     if(sourParameter.IndexOf("&")<0)
     {
      //只有一個(gè)參數(shù),用=號(hào)分割,直接把NameValue進(jìn)行Des加密
      string[] paramNameValue = endString.Split( new char[]{'='} ) ;
      string paramName = myDES.Encrypt( paramNameValue[0].ToString() ,myDESKey ) ;
      string paramValue = myDES.Encrypt( paramNameValue[1].ToString() ,myDESKey ) ;

      destParameter.Append( startString ).Append("?").Append( paramName ).Append("=").Append( paramValue ) ;
     }
     else
     {
      //有多個(gè)參數(shù),以&號(hào)分割?號(hào)后面的路徑
      string[] paramJoin = endString.Split( new char[]{'&'} ) ;
      destParameter.Append( startString ).Append("?").Append( EncoderNameValue( paramJoin ) ) .ToString() ;
     }
    }
   }
   return destParameter.ToString() ;

  }

 

  /// <summary>
  /// Description:加密路徑里的NameValue參數(shù)
  /// </summary>
  /// <param name="sourNameValue"></param>
  /// <returns></returns>
  private string EncoderNameValue( string[] sourNameValue )
  {
   string[] paramNameValue ;
   string paramName ;
   string paramValue ;
   StringBuilder sb = new StringBuilder() ;

   for( int i = 0 ; i <= sourNameValue.Length-1 ; i++ )
   {
    //以=號(hào)分割每個(gè)NameValue參數(shù)
    paramNameValue = sourNameValue[i].Split( new char[]{'='} ) ;

    //開(kāi)始對(duì)NameValue加密
    paramName = myDES.Encrypt( paramNameValue[0].ToString() ,myDESKey ) ;
    paramValue = myDES.Encrypt( paramNameValue[1].ToString() ,myDESKey ) ;

    //存儲(chǔ)加密后的路徑字符串
    sb.Append( paramName ).Append("=").Append( paramValue ) ;

    //是否最后一個(gè)NameValue參數(shù),若不是在路基里添加&參數(shù)連接符
    if( i<sourNameValue.Length )
    {
     sb.Append("&") ;
    }
   }

   return sb.ToString() ;

  }

 }




主站蜘蛛池模板: 四虎影视免费在线观看 | 日本在线视频一区 | 中文字幕亚洲一区婷婷 | 特黄毛片 | 日本一区二区三区欧美在线观看 | 欧美亚洲免费 | 亚洲日日夜夜 | 日本老年人精品久久中文字幕 | 性xxx视频在线观看 性xxx欧美 | 中文字幕精品视频在线观看 | 亚洲蜜臀 | 青草资源视频在线高清观看 | 天天爽夜夜爽天天做夜夜做 | 亚洲系列中文字幕一区二区 | 又粗又大又长又爽免费视频 | 色网站在线 | 欧美一卡二卡三卡四卡乱码 | 日本激情视频网站w | 婷婷色在线观看 | 日韩a| 日本男女网站 | 中文天堂在线www | 中文字幕在线乱码免费毛片 | 日韩乱码视频 | 天堂网在线看 | 日韩免费高清一级毛片在线 | 日韩欧美一区二区不卡看片 | 综合网久久 | 亚洲午夜高清 | 婷婷色吧 | 色婷婷伊人 | 羞羞一区二区三区四区片 | 五月一区二区久久综合天堂 | 性欧美人与物videos另类 | 视频一区二区精品的福利 | 五月婷婷综合在线视频 | 午夜影视网站 | 天天摸天天澡天天碰天天弄 | 四虎影视在线观看 | 午夜久久久久久网站 | 中文字幕波多野结衣免费视频 |