使用ASP程序对“HTML炸弹”进行屏蔽

筱彭妈咪

筱彭妈咪

2016-01-29 17:32

使用ASP程序对“HTML炸弹”进行屏蔽,使用ASP程序对“HTML炸弹”进行屏蔽
    我们在使用ASP来编写论坛或者BBS程序的时候,经常会遇到这样的问题,当网友在我的论坛或者BBS上面发表的文章带有HTML代码的时候,如何才能正常的显示这篇带有HTML代码的文章呢?如果在向数据库保存数据的时候或者向浏览器输出显示内容的时候不做任何处理,就会发生麻烦,比如,我发表的一篇文章带有如下的代码:

<script language="javascript"

for(i=1;i<=10000;i++)

{

  parent.moveBy(20,20);parent.moveBy(-20,-20)

}

</script

  当其他的网友阅读这篇文章的时候,他就会发现他的浏览器在不停的跳动,整个屏幕一片混乱,这也就是俗称的“HTML炸弹”。所以为了更好服务于到我们论坛贴文章和阅读文章的网友,我们就要屏蔽类似的“HTML炸弹”。屏蔽“HTML炸弹”大致有两种途径:

  第一种是在将文章保存到数据库之前就使用ASP程序过滤掉文章中的“HTML炸弹”。方法是:将文章中所有的英文半角的字符“<”以及“”分别替换成为英文全角的字符“<”以及“>”,然后再保存到数据库中。代码如下:

'*******************************

'保存文章内容

'参数:Ftitle    文章标题

'      Fcontent 文章内容

'*******************************

Function SaveDoc(Ftitle,Fcontent)

'..................

'这里是联接数据库的代码

'....................



'过滤掉HTML炸弹以及单引号

Ftitle =replace(Ftitle,"'","''",1)

Ftitle =replace(Ftitle,"<","<",1)

Ftitle =replace(Ftitle,"",">",1)

Fcontent =replace(Fcontent,"'","''",1)

Fcontent =replace(Fcontent,"<","<",1)

Fcontent =replace(Fcontent,"",">",1)



'下面正常保存到相应的数据库中就行了

'...................

End Function

  第二种方法是:在把文章保存到数据库之前不做任何处理,只是在显示到浏览器的时候,使用ASP对从数据库中取出的数据作相应的处理,以便正常显示。因为文章的内容有可能要显示到两种地方,一个是简单的阅读,需要显示到Table;另外就是要回复文章,就要显示到TextArea框里面,所以需要的两份代码如下:

'*****************************

'阅读文章内容,显示在Table中

'参数content就是从数据库中提取出来的文章内容

'*****************************

Function ShowDocToRead(content)

  dim temp

   temp=""

'如果文章内容为空,就退出

  if trim(content)="" then

     ShowDocToRead=""

     exit function

   end if



'过滤掉HTML炸弹

   temp=replace(content,chr(13)&chr(10),"<br",1)

   temp=replace(temp,chr(32),"&nbsp;",1)

   temp =replace(temp,"<","<",1)

   temp =replace(temp,"",">",1)

   ShowDocToRead=temp

End function



'**********************************

'阅读文章内容,显示在TextArea中,於用

'回覆.

'

'***********************************

Function ShowDocToWrite(content,author)

dim temp



temp=""

if trim(content)=""then

ShowDocToWrite=""

exit function

end if

content="【" & author & "在大作中谈到:】" & chr(13)&chr(10) & content temp=">" & replace(content,chr(10),chr(10)&">",1)

temp =replace(temp,"<","<",1)

temp =replace(temp,"",">",1)



ShowDocToWrite=temp

End Function



  这样,通过这两种方法,即便是文章内容包含HTML代码,或者Script语句,我们的论坛或者BBS也可以正常将文章内容显示出来了,可以有效的防止个别人对论坛或者BBS的恶意攻击,使我们的论坛或者BBS更加安全和强壮。

  另一个需要注意的地方是,文章的内容在保存到数据库之前,应当过滤掉单引号,否则在执行SQL语句的时候就会发生错误,因为大多数据库系统都是把单引号当作分割符号的。

  (以上A
展开更多 50%)
分享

猜你喜欢

使用ASP程序对“HTML炸弹”进行屏蔽

ASP
使用ASP程序对“HTML炸弹”进行屏蔽

微话如何对好友进行屏蔽?

手机软件 应用软件
微话如何对好友进行屏蔽?

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何使用ASP生成HTML文件

ASP
如何使用ASP生成HTML文件

如何使用JavaScript来写ASP程序

Web开发
如何使用JavaScript来写ASP程序

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

使用VB编写纯ASP程序

ASP
使用VB编写纯ASP程序

合理使用HTML标签进行CSS布局

Web开发
合理使用HTML标签进行CSS布局

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

ASP直接调用EXCEL数据的例子(不用ODBC)

ASP直接调用EXCEL数据的例子(不用ODBC)

改良Windows XP的打开窗口

改良Windows XP的打开窗口
下拉加载更多内容 ↓