科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件关于客户留言功能

关于客户留言功能

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

关于客户留言功能

作者:csdn 来源:csdn 2009年12月15日

关键字: 问答 ASP.NET

  • 评论
  • 分享微博
  • 分享邮件

关于客户留言功能

留言功能应该是每个动态网站都具备的功能,我想问问大家是用什么技术或者方法来实现的?

直接在textarea输入?如果别人恶意地输入了JS脚本怎么办?

如果用过滤的方法,一些懂HTML的人想用点个性代码怎么办?不可能 <b>、 <font>什么的都过滤了吧?另外如果是讨论编程的,更是一个代码也不能过滤。

如果是在textarea上输入,大家怎么处理换行?

有的人会用在线编辑器,但别人只是想说几句就要加载一个庞大的编辑器就太不应该了..而且在线编辑器的外观不好控制。

给用户一些自由,
允许用户输入一些HTML的话

2楼的代码是不行的,
仅仅下面这两行代码就过滤了所有的HTML代码
strFromText = strFromText.Replace(" <", "&#60;");
strFromText = strFromText.Replace(">", "&#62;");


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页 </title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:TextBox ID="TextBox1" runat="server" Width="298px" TextMode="multiLine"> </asp:TextBox>
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
    </form>
</body>
</html>

后台:
public static string SqlInsertEncode(string strFromText)
    {
        if (!System.String.IsNullOrEmpty(strFromText) && strFromText != "")
        {
            //strFromText = strFromText.Replace(";", "&#59;");
            strFromText = strFromText.Replace("!", "&#33;");
            //strFromText = strFromText.Replace("@", "&#64;");
            strFromText = strFromText.Replace("$", "&#36;");
            strFromText = strFromText.Replace("*", "&#42;");
            strFromText = strFromText.Replace("(", "&#40;");
            strFromText = strFromText.Replace(")", "&#41;");
            strFromText = strFromText.Replace("-", "&#45;");
            strFromText = strFromText.Replace("+", "&#43;");
            //strFromText = strFromText.Replace("=", "&#61;");
            strFromText = strFromText.Replace("|", "&#124;");
            strFromText = strFromText.Replace("\\", "&#92;");
            //strFromText = strFromText.Replace("/", "&#47;");
            //strFromText = strFromText.Replace(":", "&#58;");
            strFromText = strFromText.Replace("\"", "&#34;");
            strFromText = strFromText.Replace("'", "&#39;");
            strFromText = strFromText.Replace(" <", "&#60;");
            strFromText = strFromText.Replace(" ", "&#32;");
            strFromText = strFromText.Replace(">", "&#62;");
            strFromText = strFromText.Replace(" ", "&#32;");
            strFromText = strFromText.Replace("\n", " <br />");
        }
        return strFromText;
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write(SqlInsertEncode(TextBox1.Text));
    }

先在TextBox1中输入js脚本等试下看它的运行结果,你就知道了~

 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章