asp.net做网站是用户通过表单提交的数据,例如文章标题、文章内容、居住地址等等
这些数据在存进数据库前要经过那些必要的验证呢? 主要指安全性方面的验证但存进数据库后在读取的时候,在显示之前还有什么(验证、编码)步骤吗?  还是可以直接读取并显示?这样方面没有经验,请各位指点因为我看一些代码(asp的),在数据存储前要这样处理...message=Trim(Request.form("oblog_edittext"))
message=EncodeJP(oblog.filtpath(oblog.filt_badword(message)))在从数据库中读取显示出来之前又要oblog.filt_html(rs("siteinfo"))
……
Server.HtmlEncode(rs("logtext"))
asp.net是否也要这样处理? 不这样做是不是有安全隐患?

解决方案 »

  1.   

    写进时是要一些验证,过滤一些可能造成危险的字符,如'号,你可以选择用SQL变量,这样就不需要担心了
    输出时没有进行HTML编码,如果内容含有HTML的话,你的页面就有可能毁容了
      

  2.   

    SQL变量神什么?使用他还需要做什么验证吗?
      

  3.   

    使用存储过程,用参数方式就不用在写入是检验了:
    例如:

    SqlCommand myCommand = new SqlCommand("MEM_LiuYanList", myconn);            myCommand.CommandType = CommandType.StoredProcedure;            SqlParameter paramemId = new SqlParameter("@MemberId", SqlDbType.Int, 4);
                paramemId.Value = userId;
                myCommand.Parameters.Add(paramemId);------------------------------------
    其中 userId 就是传来的值,MEM_LiuYanList 是一个预先写好的存储过程。