仓酷云

标题: ASP网页设计利用ASP程序对“HTML炸弹”举行屏障 [打印本页]

作者: 若相依    时间: 2015-1-16 22:29
标题: ASP网页设计利用ASP程序对“HTML炸弹”举行屏障
ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。我们在利用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文章内容

*******************************

FunctionSaveDoc(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)



上面一般保留到响应的数据库中就好了

...................

EndFunction

  第二种办法是:在把文章保留到数据库之前不做任那边理,只是在显现到扫瞄器的时分,利用ASP对从数据库中掏出的数据作响应的处置,以便一般显现。由于文章的内容有大概要显现到两种中央,一个是复杂的浏览,必要显现到Table;别的就是要复兴文章,就要显现到TextArea框内里,以是必要的两份代码以下:

*****************************

浏览文章内容,显现在Table中

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

*****************************

FunctionShowDocToRead(content)

  dimtemp

  temp=""

假如文章内容为空,就加入

  iftrim(content)=""then

    ShowDocToRead=""

    exitfunction

  endif



过滤失落HTML炸弹

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

  temp=replace(temp,chr(32),"",1)

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

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

  ShowDocToRead=temp

Endfunction



**********************************

浏览文章内容,显现在TextArea中,於用

回答.



***********************************

FunctionShowDocToWrite(content,author)

dimtemp



temp=""

iftrim(content)=""then

ShowDocToWrite=""

exitfunction

endif

content="【"&author&"在高文中谈到:】"&chr(13)&chr(10)&contenttemp=">"&replace(content,chr(10),chr(10)&">",1)

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

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



ShowDocToWrite=temp

EndFunction



  如许,经由过程这两种办法,即使是文章内容包括HTML代码,大概Script语句,我们的论坛大概BBS也能够一般将文章内容显现出来了,能够无效的避免一般人对论坛大概BBS的歹意打击,使我们的论坛大概BBS加倍平安和健壮。

  另外一个必要注重的中央是,文章的内容在保留到数据库之前,应该过滤失落单引号,不然在实行SQL语句的时分就会产生毛病,由于年夜多半据库体系都是把单引号看成支解标记的。

  (以上ASP程序在WinNT4.0英文版SP5,IIS4.0,MSSQLServer7.0SP2运转经由过程)

缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
作者: 小魔女    时间: 2015-1-19 15:09
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
作者: 灵魂腐蚀    时间: 2015-1-27 05:43
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
作者: 蒙在股里    时间: 2015-2-5 02:54
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
作者: 莫相离    时间: 2015-2-11 03:04
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
作者: 飘灵儿    时间: 2015-3-1 20:15
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
作者: 小女巫    时间: 2015-3-10 23:24
从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
作者: 分手快乐    时间: 2015-3-17 16:09
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
作者: 精灵巫婆    时间: 2015-3-24 11:23
掌握asp的特性而且一定要知道为什么。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2