动态Web页面的制作技巧

 更新时间:2016年9月20日 19:03  点击:1828
随着Internet应用的发展,主页已不再仅仅是一个企业的信息窗口,公司的许多业务都可通过INTERNET来实现,如客户可通过供应商的主页来订货、公司可通过自已的主页收集客户的反馈信息等。另一方面,随着公司业务的发展、地理分布的拓宽,在总公司与各子公司之间建立一个简单的局域网已不可能,这时可通过INTERNET来实现各子公司与总公司之间的业务处理,即采用目前较为流行的企业应用解决方案即NCA结构、0客户端解决方案来实现。因此,如何使自己的主页与数据库动态地连接起来、如何通过主页的操作来实时操纵数据库中的记录已成变为一个很重要的课题。下面就来介绍几种解决主页与数据库动态连接的方法。 

  首先,为了使大家能边看下面的介绍边上机操作,您需要在Windows 95或Windows NT上作如下准备工作。 

  1.建立ACCESS数据库,c:my documentsmydata.mdb。 

  2.在mydata数据库中建表mytable(a dblong,b dbtext,c dblong),并添加适量的试验数据。 

  3.建立系统DSN(database source name),在控制面板的ODBC中进行设置,取数据源名为ACCESSMDB,并指向刚建的mydata数据库。 

  4.安装PWS(Personal Web Server),它位于Windows 98光盘的addonspws目录中。 

  5.用frontpage在PWS上新建一Web,如http://yourhostname/myweb,在缺省情况下,yourhostname是您的主机名称。 

  6.用frontpage软件打开新建的myweb,并新建一子目录scripts,然后将scripts设置为可执行的子目录。 

  至此,如果您的设置正确,那么就可打开Internet Explorer(以下简称IE),并在地址栏中键入http://yourhostname/myweb/scripts后就会看到如下提示: 

  Directory Listing Denied 

  This Virtual Directory does not allow contents to be listed 

  这是因为该目录既无缺省的html文件(一般为default.htm),又不允许列出目录,但这已说明您的pws设置正确。下面来介绍第一种制作方法。 

  一.用Frontpage Database Region Wizard向导完成设置 

  ·打开Frontpage,进入已经建好的Web即myweb中,新建一页面newpage1,并编辑它。 

  ·单击菜单栏中的“insert”,并选择“database”、“database region wizard”,这时会弹出一个对话框。 

  ·在“odbc data source name”下的输入栏中,输入已建好的DSN,即Accessmdb,然后点击Next按钮进入下一步。 

  ·在“Enter the sql string for the query”下的输入栏中输入select a,b,c from mytable,然后点击Next按钮进入一下步。 

  ·点击Add按钮,在“enter the name of a query field to be added to the list”下的输入栏中输入字段名a,然后点击Ok按钮。 

  ·重复上一步,将字段b和c都添加到查询列表中。 

  ·点击Finish按钮。 

  ·此时系统会提示您将该页面保存在可执行的目录中,并将扩展名改为*.asp,按照提示将newpage1.htm移动到scripts目录中,将newpage1.htm重命名为newpage1.asp。 

  在IE地址栏中输入http://youhostname/myweb/scripts/newpage1.asp,按回车后就会看到数据库中的实验数据被显示了出来。 

  此种方法操作简单,但不灵活,生成的html文件可读性差,不容易添加二次链接。 

  近来,网络上的SQL Injection 漏洞利用攻击,JS脚本,HTML脚本攻击似乎逾演逾烈.陆续的很多站点都被此类攻击所困扰,并非像主机漏洞那样可以当即修复,来自于WEB的攻击方式使我们在防范或者是修复上都带来了很大的不便。HOOO…… 一个站长最大的痛苦莫过于此.自己的密码如何如何强壮却始终被攻击者得到,但如何才能做到真正意义上的安全呢?第一,别把密码和你的生活联系起来;第二,Supermaster的PWD最好只有你自己知道;第三,绝对要完善好你的网站程序。然而怎样才能完善,这将是我们此文的最终目的。

  安全防护,如何做到安全防护?想要防护就要知道对方是如何进行攻击。有很多文章都在写如何攻下某站点,其实其攻击的途径也不过是以下几种:

  1. 简单的脚本攻击

  此类攻击应该属于无聊捣乱吧。比如****:alert(); </table>等等,由于程序上过滤的不严密,使攻击者既得不到什么可用的,但又使的他可以进行捣乱的目的。以目前很多站点的免费服务,或者是自身站点的程序上也是有过滤不严密的问题。

  2. 危险的脚本攻击

  这类脚本攻击已经过度到可以窃取管理员或者是其他用户信息的程度上了。比如大家都知道的cookies窃取,利用脚本对客户端进行本地的写操作等等。

  3. Sql Injection 漏洞攻击

  可以说,这个攻击方式是从动网论坛和BBSXP开始的。利用SQL特殊字符过滤的不严密,而对数据库进行跨表查询的攻击。比如:

  http://127.0.0.1/forum/showuser.asp?id=999 and 1=1

  http://127.0.0.1/forum/showuser.asp?id=999 and 1=2

  http://127.0.0.1/forum/showuser.asp?id=999 and 0<>(select count(*) from admin)

  http://127.0.0.1/forum/showuser.asp?id=999’; declare @a sysname set @a='xp_'+ 'cmdshell' exec @a 'dir c:'---&aid=9

  得到了管理员的密码也就意味着已经控制的整站,虽然不一定能得到主机的权限,但也为这一步做了很大的铺垫。类似的SQL Injection攻击的方式方法很多,对不同的文件过滤不严密所采取的查询方式也不同。所以说想做好一个完整的字符过滤程序不下一凡功夫是不可能的。

  4. 远程注入攻击

  某站点的所谓的过滤只是在提交表格页上进行简单的JS过滤。对于一般的用户来说,你大可不必防范;对早有预谋的攻击者来说,这样的过滤似乎根本没作用。我们常说的POST攻击就是其中一例。通过远程提交非法的信息以达到攻击目的。

  通过上面的攻击方法的介绍,我们大致的了解了攻击者的攻击途径,下面我们就开始重点的介绍,如何有效的防范脚本攻击!

  让我们还是从最简单的开始:

  l 防范脚本攻击

  JS脚本 和HTML脚本攻击的防范其实很简单:server.HTMLEncode(Str)完事。当然你还不要大叫,怎么可能?你让我把全站类似<%=uid%>都加过滤我还不累死?为了方便的过滤,我们只需要将HTML脚本和JS脚本中的几个关键字符过滤掉就可以了:程序体(1)如下:

  ‘以下是过滤函数

  <%

  function CHK(fqyString)

  fqyString = replace(fqyString, ">", ">")

  fqyString = replace(fqyString, "<", "<")

  fqyString = replace(fqyString, "&#", "&")

  fqyString = Replace(fqyString, CHR(32), " ")

  fqyString = Replace(fqyString, CHR(9), " ")

  fqyString = Replace(fqyString, CHR(34), """)









  本文的目的只是力图对大量的基于脚本的技术名称和缩写词作一指点。去年,这些名称已作了一些改变。同样地,一些技术已由初始阶段发展得更为成熟和完善,有的则略微有了些改变,但却仍旧沿用原来的名称(因此现在看来有点混乱)。但是当你读完本文,所有事情都会清楚了。按顺序排列,请看下文:

  Dynamic HTML (DHTML) DHTML Scriptlets XML XML Scriptlets IE 5.0 Behaviors HTML Components (HTC) 

  以上这些名称的范围较大,但都是可从Microsoft获得的典型的脚本类技术的名称。 

  动态HTML(Dynamic HTML)

  因为动态HTML(Dynamic HTML)首次出现在Internet Explorer 4.0中,所以它是所有Microsoft脚本 技术的鼻祖。动态HTML(Dynamic HTML)也可归为“A”(代表Active),即现在使用的大量引擎、编程工 具和技术。

  每个web页面都是标记、段落、表单、Windows中的表单元素、帧和表格等的有机组合,想到了 这一点,就会对文档对象模型(Document Object Model)有个粗略的认识。World Wide Web 代理 (W3C)对此所做的标准的说明详细地阐述了web页面中内容的层次及访问的路径。 

  DHTML是一个名称,它通常用于识别一种方式,即IE4,IE5 and Navigator4改变某种模式并用 它来确定当前Web页面的模式。关键是这些模式利用页面本身的代码支持动态的和脚本驱动的web页面的变化。这就为那些编写动态的和交互式应用程序的Web开发者开辟了一条新路。 

  编者按:当W3C发布DOM规则时,它希望两种主要浏览器(IE和Nav)的第五个版本都能按照这个 规则执行他们的DHTML。这样,尽管Nav5适合DOM而IE5不适合,web管理员也更容易创建两种浏览器都兼容的Web页面,而不是象目前这样在IE4/Nav4浏览器中要用不同的方式执行DHTML。 

  动态HTML脚本组件(DHTML Scriptlets) 

  DHTML支持在一个web页面中组织各种不同类型的内容以达到许多特殊效果,利用这些代码,还 可以在多个页面中重复使用这些内容和功能。在这个过程中,通常使用的是“剪切”和“粘贴”,但有时却不需做太多重复工作。 

  例如,粘贴SPANs & IMGs或TABLEs & anchors以创建一个全新的对象,该对象有预设功能和用 户化的参数,或许一个TABLE和the Remote Data Service ActiveX控制元能够使该对象以多种方式显示各项记录。它不是一个新的标记,也不是一个新的二进制ActiveX控件,而是一个基于HTML的可视组件:一个DHTML Scriptlet。 

  一个DHTML Scriptlet是一个HTML页面置入另一个HTML主页,该主页有一主体和一组脚本代码可 独立运作,它还可展示一些性能、方法和内容。一个DHTML Scriptlet通过OBJECT标记置入并由一个 简单的HTML文件提供。如果有用户界面,这种对象就能显示某些特殊功能。但它也可以成为一个简单的、不起眼的商业化对象。 

  最初被简单地称作脚本的组件如今已丧失了许多原有的价值且已不再受人青睐,但要创建组合 HTML控制权,只有用它才可能完成。如果需要一个特殊的可视的HTML组件,该组件是多种标记的组合,那么除了二进制ActiveX控件外,DHTML Scriptlets是唯一的选择。如果不考虑用户界面,或只想要提高单个元素的性能,那么就应该利用其它基于脚本的工具了。 

  XML

  XML是eXtensible Markup Language的缩写,它可为Web应用程序提供一个新的开发范围。XML正成为 一种广泛地应用于在Web间交换数据的编程语言。值得推崇的是,它的结构与HTML相似但更为严谨。XML的重要性在于它是专用于创建新的脚本类的编程语言,这种脚本是由脚本代码组成的真的COM对象。 

  XML Scriptlets 

  如今,XML Scriptlets是一个令人困惑的问题,而它们的初始名Server Scriptlets则更另人费解。从Server到XML有一个很大的飞跃,但原来的名称更易于理解: 

  1、他们象服务器一样工作。 

  Internet越来越酷,WWW的知名度如日中天。在Internet上发布公司信息、进行电子商 务已经从时髦演化成时尚。作为一个Web Master,你可能对HTML、Javascript、Java、 ActiveX了如指掌,但你是否知道什么是Web Robot?你是否知道Web Robot和你所设 计的主页有什么关系? 
Internet上的流浪汉--- Web Robot 

  有时你会莫名其妙地发现你的主页的内容在一个搜索引擎中被索引,即使你从未与他 们有过任何联系。其实这正是Web Robot的功劳。Web Robot其实是一些程序,它可以 穿越大量Internet网址的超文本结构,递归地检索网络站点所有的内容。这些程序有时 被叫 “蜘蛛(Spider)” , “网上流浪汉(Web Wanderer)”,“网络蠕虫(web worms)”或Web crawler。一些Internet网上知名的搜索引擎站点(Search Engines)都 有专门的Web Robot程序来完成信息的采集,例如Lycos,Webcrawler,Altavista等,以 及中文搜索引擎站点例如北极星,网易,GOYOYO等。 

  Web Robot就象一个不速之客,不管你是否在意,它都会忠于自己主人的职责,任劳 任怨、不知疲倦地奔波于万维网的空间,当然也会光临你的主页,检索主页内容并生 成它所需要的记录格式。或许有的主页内容你乐于世人皆知,但有的内容你却不愿被 洞察、索引。难道你就只能任其“横行”于自己主页空间,能否指挥和控制Web Robot的行踪呢?答案当然是肯定的。只要你阅读了本篇的下文,就可以象一个交通 警察一样,布置下一个个路标,告诉Web Robot应该怎么去检索你的主页,哪些可以 检索,哪些不可以访问。 

  其实Web Robot能听懂你的话 

  不要以为Web Robot是毫无组织,毫无管束地乱跑。很多Web Robot软件给网络站点的 管理员或网页内容制作者提供了两种方法来限制Web Robot的行踪: 

  1、Robots Exclusion Protocol 协议 

  网络站点的管理员可以在站点上建立一个专门格式的文件,来指出站点上的哪一部分 可以被robot访问, 这个文件放在站点的根目录下,即http://.../robots.txt. 

  2、Robots META tag 

  一个网页作者可以使用专门的HTML META tag ,来指出某一个网页是否可以被索 引、分析或链接。 

  这些方法适合于大多数的Web Robot,至于是否在软件中实施了这些方法,还依赖于 Robot的开发者,并非可以保证对任何Robot都灵验。如果你迫切需要保护自己内容, 则应考虑采用诸如增加密码等其他保护方法。 

  使用Robots Exclusion Protocol协议 

  当Robot访问一个 Web 站点时,比如http://www.sti.net.cn/,它先去检查文件http: //www.sti.net.cn/robots.txt。如果这个文件存在,它便会按照这样的记录格式去分析: 

User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/


  以确定它是否应该检索站点的文件。这些记录是专门给Web Robot看的,一般的浏览 者大概永远不会看到这个文件,所以千万不要异想天开地在里面加入形似<img src=http:///htmldata/2005-05-16/*> 类的HTML语句或是“How do you do? where are you from?”之类假情假意的问候语。 

  在一个站点上只能有一个 "/robots.txt" 文件,而且文件名的每个字母要求全部是小 写。在Robot的记录格式中每一个单独的"Disallow" 行表示你不希望Robot访问的URL, 每个URL必须单独占一行,不能出现 "Disallow: /cgi-bin/ /tmp/"这样的病句。同时在一个 记录中不能出现空行,这是因为空行是多个记录分割的标志。 

  User-agent行指出的是Robot或其他代理的名称。在User-agent行,'*' 表示一个特殊的含 义---所有的robot。 

  下面是几个robot.txt的例子: 

  在整个服务器上拒绝所有的robots: 
User-agent: *
Disallow: / 

[!--infotagslink--]

相关文章

  • ps动态环绕动画效果怎么制作

    ps动态环绕动画效果是现在很多人都非常喜欢的,大多数人还不知道ps动态环绕动画效果怎么制作下面文章就给大家介绍下ps怎么制作科技感十足的动态环绕动画效果,一起来看看...2017-07-06
  • vue 实现动态路由的方法

    这篇文章主要介绍了vue 实现动态路由的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-06
  • photoshop打开很慢怎么办 ps打开慢的设置技巧

    photoshop软件是一款专业的图像设计软件了,但对电脑的要求也是越高越好的,如果配置一般打开ps会比较慢了,那么photoshop打开很慢怎么办呢,下面来看问题解决办法。 1、...2016-09-14
  • Jquery Ajax Error 调试错误的技巧

    JQuery使我们在开发Ajax应用程序的时候提高了效率,减少了许多兼容性问题,我们在Ajax项目中,遇到ajax异步获取数据出错怎么办,我们可以通过捕捉error事件来获取出错的信息。在没给大家介绍正文之前先给分享Jquery中AJAX参...2015-11-24
  • PHP传值到不同页面的三种常见方式及php和html之间传值问题

    在项目开发中经常见到不同页面之间传值在web工作中,本篇文章给大家列出了三种常见的方式。接触PHP也有几个月了,本文总结一下这段日子中,在编程过程里常用的3种不同页面传值方法,希望可以给大家参考。有什么意见也希望大...2015-11-24
  • jQuery实现切换页面过渡动画效果

    直接为大家介绍制作过程,希望大家可以喜欢。HTML结构该页面切换特效的HTML结构使用一个<main>元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-loading-bar是进行ajax加载时的loading进...2015-10-30
  • Vue实现动态查询规则生成组件

    今天我们来给大家介绍下在Vue开发中我们经常会碰到的一种需求场景,本文主要介绍了Vue动态查询规则生成组件,需要的朋友们下面随着小编来一起学习学习吧...2021-05-27
  • php语言中使用json的技巧及json的实现代码详解

    目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识...2015-10-30
  • 解决vue刷新页面以后丢失store的数据问题

    这篇文章主要介绍了解决vue刷新页面以后丢失store的数据问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-12
  • c#动态调用Webservice的两种方法实例

    这篇文章介绍了c#动态调用Webservice的两种方法实例,有需要的朋友可以参考一下...2020-06-25
  • 基于PHP给大家讲解防刷票的一些技巧

    刷票行为,一直以来都是个难题,无法从根本上防止。但是我们可以尽量减少刷票的伤害,比如:通过人为增加的逻辑限制。基于 PHP,下面介绍防刷票的一些技巧:1、使用CURL进行信息伪造$ch = curl_init(); curl_setopt($ch, CURLOP...2015-11-24
  • SQL Server中执行动态SQL

    本文详细讲解了SQLServer中执行动态SQL的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2022-05-19
  • 图解Sublime Text3使用技巧

    通过本篇文章给大家介绍Sublime Text3使用技巧的相关知识,对sublime text3技巧相关知识感兴趣的朋友一起学习吧...2015-12-24
  • C#中动态显示当前系统时间的实例方法

    想在网页中动态地显示当前系统的时间,找了好多,不过都是一些停在那里不动的。。。不过皇天不负有心人,终于让我找到了...2020-06-25
  • PHP页面转UTF-8中文编码乱码的解决办法

    对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题...2015-10-21
  • jQuery为动态生成的select元素添加事件的方法

    下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
  • 解决vuex数据页面刷新后初始化操作

    这篇文章主要介绍了解决vuex数据页面刷新后初始化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
  • java后台实现js关闭本页面,父页面指定跳转或刷新操作

    这篇文章主要介绍了java后台实现js关闭本页面,父页面指定跳转或刷新操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-16
  • 分享12个非常实用的JavaScript小技巧

    这篇文章主要介绍了分享12个非常实用的JavaScript小技巧,这些小技巧可能在你的实际工作中或许能帮助你解决一些问题,需要的朋友可以参考下...2016-05-14
  • JavaScript 获取滚动条位置并将页面滑动到锚点

    这篇文章主要介绍了JavaScript 获取滚动条位置并将页面滑动到锚点的的相关资料,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下...2021-02-09