请问一下这个类是做什么的?
//CleanString.cs文件
//问下大家这个类是用来干什么的?
using System;
//using System.Text;
namespace SCard
{
/// <summary>
/// CleanString 的摘要说明。
/// </summary>
public sealed class CleanString
{
public static string htmlInputText( string inputString )//HTML过滤输入字符串
{
if ((inputString != null) && (inputString != String.Empty ))
{
inputString = inputString.Trim();
inputString = inputString.Replace( " ' ", "" ");
inputString = inputString.Replace( " < ", "< ");
inputString = inputString.Replace( "> ", "> ");
inputString = inputString.Replace( " ", " ");
inputString = inputString.Replace( "\n ", " <br> ");
return inputString.ToString();
}
return " ";
}
public static string htmlOutputText( string inputString )//HTML还原字符串
{
if ((inputString != null) && (inputString != String.Empty ))
{
inputString = inputString.Trim();
inputString = inputString.Replace( "" ", " ' ");
inputString = inputString.Replace( "< ", " < ");
inputString = inputString.Replace( "> ", "> ");
inputString = inputString.Replace( " ", " ");
inputString = inputString.Replace( " <br> ", "\n ");
return inputString.ToString();
}
return " ";
}
}
}
------解决方案--------------------为了防脚本攻击,.net在页面验证时不允许一些字符输入提交到数据库,这段程序是转换用的。
------解决方案--------------------分两个函数,一个是把文本框中输入的字符转义的。目的应该是存储到数据库中的
一个是,把存储的字符串取出来后,在转义回来,显示在文本框里的。
------解决方案--------------------类似于这个csdn的回帖录入框( <TextArea> ),它获取的文本值将来要用html显示出来,就需要转换;或者转换之后又需要重新转回来再用TextArea编辑。
不过这个转换其实太简单了,丢了很多东西。
你看csdn的这个录入框也会把录入的格式在显示时变成错位的格式。
------解决方案--------------------对于不支持HTML的文本内容可以用这个来编码和解码。
这样如果是 <br> ,在显示的时候就不会当成是个回车,而是仍然显示为 <br>
这样对于XSS(跨站点脚本)攻击是一个非常好的防范手段。
当然,编码后显示的时候也不会因为含有HTML代码破坏了页面布局