1. 禁止外部提交

if(Request.UrlReferrer   !=   null   &&   Request.UrlReferrer.Host   ==   Request.ServerVariables["Server_Name"]   )   
  {正常处理}   
  else   
  {是外部提交}

 

2. 防止URL注入

一.如果参数全为数字:
// 检查字符串是否全为数字

public static bool IsNum(string Str)

{
    bool blResult = true;
    if (Str == "")
        blResult = false;
    else
    {
        foreach (char Char in Str)
        {
            if (!Char.IsNumber(Char))
            {
                blResult = false;
                break;
            }
        }
        if (blResult)
            if (int.Parse(Str) == 0)
                blResult = false;
    }
    return blResult;

}

 

应用:
string Topicid = Request.QueryString["Topicid"];

if (!IsNum(Topicid))
    Server.Transfer("Error.aspx?ErrID=404");





二.如果参数为文本.





// Html转换

public static string htmlstr(string chr)

{
    if(chr==null)
        return "";
    chr=chr.Replace("<","<");
    chr=chr.Replace(">",">");
    chr=chr.Replace("\n","<br>");
    chr=chr.Replace("\"",""");
    chr=chr.Replace("'","'");
    chr=chr.Replace(" "," ");
    chr=chr.Replace("\r","");
    return(chr); 

}
应用:string strClass = htmlstr(Request.QueryString["ClassName"]);

 

3. 加密参数

加密参数一般都是先加密(各种方法),到目的页面再解密(相对的解密方法).

Encode  - Decode

posted on 2010-05-07 16:59  sn_wolf  阅读(163)  评论(0编辑  收藏  举报