Replace()函数替换字符串中的危险字符

  • 来源: 学赛网 作者: 若水   2008-04-23/16:16
  •    在进行网络程序开发时,网络程序的安全对于程序开发者来说非常重要。在进行开发时,首先要考虑到程序的安全性,不会被其他用户以非法的形式进入或攻击。例如,本实例主要应用Replace()函数替换字符串中的危险字符。该函数的语法格式如下:
        Replace(expression,find,replacewith[,compare[,count[,start]]])

        参数说明
         expression:必选。字符串表达式包含要替代的子字符串。
        find:必选。被搜索的子字符串。
        replacewith:必选。用于替换的子字符串。 
        start:可选。expression中开始搜索子字符串的位置。如果省略,默认值为1。
        count:可选。执行子字符串替换的数目。
        compare:可选。指示在计算子字符串时使用的比较类型的数值。 
        运行结果如图6.12所示。


    图6.12  应用Replace()函数替换字符串中的危险字符

        (1)定义Replace()函数,用于替换字符串中的危险字符。代码如下:
        <%
        function filter_Str(InString)
             NewStr=Replace(InString,"'","''")
             NewStr=Replace(NewStr,"<","&lt")
             NewStr=Replace(NewStr,">","&gt")
             NewStr=Replace(NewStr,"chr(60)","&lt;")
             NewStr=Replace(NewStr,"chr(37)","&gt;")
             NewStr=Replace(NewStr,"""","&quot")
             NewStr=Replace(NewStr,";",";;")
             NewStr=Replace(NewStr,"--","-")
             NewStr=Replace(NewStr,"/*"," ")
             NewStr=Replace(NewStr,"%"," ")
             filter_Str=NewStr
        end function
        %>

        (2)在需要进行字符替换的位置应用filter_Str()函数。代码如下:
        <!-- #include file="filter.asp" -->
        <% session.Timeout=120
        if request.Form("UserName")<>"" and request.Form("PWD")<>"" then
             session("UserName")=filter_Str(request.Form("UserName"))
             session("PWD")=filter_Str(request.Form("PWD"))
             sql="select name,password from Tab_user where Name='"&session("UserName")&"'"
             set rs=conn.execute(sql)
             if  rs.eof then %>
                   <script language="javascript">
                   alert("您输入的管理员#p#分页标题#e#名称错误,请重新输入!");
                     </script>
                     <%session.Abandon()  '删除所有存在Session对象中的对象
             else
                if rs("password")=session("PWD") then
                    session("flag")="登录" %>
                    <script language="javascript">
                    alert("登录成功!!")
                    window.location.href="index.asp"
                    </script>
               <%else%>
                              <script language="javascript">
                              alert("您输入的管理员密码错误,请重新输入!");
                               history.back();
                               </script>             
                             <%session.Abandon()
                     end if
             end if
        end if
        %>


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多