分享

Asp.net安全相关注意的几个问题

 悟静 2014-05-10

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多