网页编程安全漏洞全接触

 更新时间:2016年9月20日 19:02  点击:1296

网络安全已经成为互联网最热门的话题之一,与现实相对应的,网络安全的部属、实现也就成为一个企业特别关心的问题。所以,现在我们可以很容易的看到各个企业在设计自己网络、构建企业网站的时候,对于网络安全的投入还是比较大方的,特别是一些敏感信息比较多的网站,比如银行、证券等企业,对于网络安全更是不遗余力,市场上各种宣传、广告,也都大力推广各种安全产品,比如防火墙、入侵检测、企业防病毒等一系列的产品。但是,是不是使用了这些产品,网络特别是网站就真的安全了?不一定,即使这些安全设备最高档、设置也很合理,网站还是有被攻击甚至完全被控制的可能。我们知道,现在的网站特别是稍微大一点的网站,一般都采用ASP、PHP或者JSP等脚本语言来连接数据库,取得数据库里面的数据生成动态网页,这样,当一个网站完全建立的以后,程序就会很多,特别是网页设计的特殊性,服务器与用户的交互程序特别多,所以,如果程序员不是很有经验或者没有强烈的安全意识,程序的漏洞就会很多,给网站带来不可估量的安全隐患。这些程序漏洞,一定程度上,可能比网站服务器的漏洞更加严重,因为这些漏洞防火墙或者入侵检测系统根本无法防止。
一、编程漏洞的形成
编程漏洞怎么形成的呢?我们需要对网页编程有比较全面的认识才可以理解。首先,我们来看看网页编程的特点。
1、网页编程交互性强
之所以采用各种语言来设计网站而不直接采用HTML,目的就是为了更好的管理网站资源,增加网站与浏览者之间的交互。所以,在网站设计的时候,一些常见的交互编程是少不了的,比如留言版、BBS论坛,聊天室等,这些程序最大的共同点就是用户输入很多资料,通过这些资料与其他浏览者交流或者与网站管理者交流。而交互的特点,正式漏洞形成的一大原因,因为用户输入信息是不可预测的,如果程序没有考虑到或者考虑不全面一些安全问题,用户输入就有可能成为攻击事件,不管有意还是无意。
2、网页编程字符处理特别多
上面我们谈到,交互其实就是信息的流通。所以,这些信息的处理就是大问题,怎样严格控制用户输入信息的内容、信息格式、信息长度都是编程需要考虑的问题。
3、网页编程涉及安全最里层
我们知道,网页编程直接和服务器打交道,这些程序都是直接和网站目录、网站数据库设置网站设置、系统设置相关,通过这些程序,可以访问网站目录、设置等几乎所有服务器内容。仔细想,这些程序其实都是很有潜在安全问题的,因为它们太敏感了。所以,如果程序设计有漏洞,几乎就等于网站有漏洞,甚至完全开放。
4、网页编程整体人员基础较差
网页编程人员的技术素质,这个问题其实我们可能比较少关注。在部分传统程序员眼中,网页程序设计其实不能称为程序员,他们认为网页程序设计,只需要美工好就可以了,完全没有技巧可言,不叫真正的编程。之所以形成这种观点,有几个原因。一是网页编程相对比较简单,变化较少,基本上,网页编程可以很简单的概括出几个类型:留言版、论坛、聊天室、邮件列表、新闻发布、软件下载等,而这些类型的编程,大部分都有模式可循,和传统编程相比,的确比较简单,任意掌握;二是网页编程人员大部分半路出家,专业的程序员相对较少,编程的系统训练较少,可能编程的基础也比较弱,所以,编程方面可以还是有一些缺陷的;三是部分网站直接下载网上免费程序来建立网站,这些程序的健壮性、安全性都没有严格考虑,如果网站采用者不自己修改这些程序而直接照搬得话,很可能存在严重安全问题。
二、编程漏洞的类型
网页编程相对比较简单,漏洞的形成实例虽然很多,但是,都有一些内在地共同点可以寻找,以此归纳出一些共同的特点,供我们参考。
1、用户输入验证不全面
在网站编程而言,有一个规则可能我们需要牢记,那就是对于用户和用户的输入,都必须抱怀疑态度,不能完全信任。所以,对于用户的输入,不能简单的直接采用,而必须经过严格验证,确定用户的输入是否符合输入规则才可以现实、录入数据库。总结用户输入验证,应该包括以下几个方面。
(1)输入信息长度验证
这一点可能我们比较少注意,因为我们往往认为一般用户不会故意将输入过分拉长,稍微有一些用户可能捣乱,但是,在这一点上可能没有危害。其实,只要我们仔细考虑,如果不进行输入验证,可能的危害会相当大,为什么?如果用户输入的信息达到几个兆,而我们的程序又没有验证长度的话,想想的危害就有:a、程序验证出错;b、变量占用大量内存,出现内存溢出,至使服务器服务停止甚至关机。这样的危害多大?
(2)输入信息敏感字符检查
这一点平时在设计程序的时候我们可能都有注意,主要关注的是一些JavaScript的敏感字符,比如在设计留言版的时候,我们会将“<”等符号的信息去除,以免用户留下页面炸弹。但是,是否这些就已经足够了呢?还远远不够。我们还有很多没有注意到,以下几个方面我们需要特别注意。
a、留言版内容信息的过滤
这一点上面已经提到,平时也使用较多。
b、用户名信息的过滤
这一点其实我们常常验证,但是,用户名的验证我们往往只是验证长度,没有验证JavaScript或者HTML的标记,这样就容易形成漏洞。比如用户在用户名填入“<h1>黑</h1>”,一般的用户名验证都可以通过,但是,显示在网页中却是很不美观的。这个输入没有破坏,但是,如果用户名验证不严,没有长度限制,后果怎样呢?

  我们在制作网页时,由于一些网页编辑软件有时会改变我们已设置好的网页元素,因此经常要用记事本对网页文件进行编辑、修改。如何才能快速调用记事本对网页文件进行编辑和修改呢?只要对注册表略作改动即可实现此功能。

  点击“开始”→“运行”,在对话框中输入“regedit”,打开注册表编辑器,展开HKEY_CLASSES_ROOThtmlfileshell分支。在该分支下新建一个名为“QuickEdit”的子分支并将“QuickEdit”子分支下“默认”主键的键值修改为“使用记事本编辑”。再在“QuickEdit”分支下新建一个名为“command”的子分支并将“command”子分支下“默认”主键的键值修改为“notepad.exe %1”

下面的效果别以为只有Flash才能做到,用Dreamweaver一样可以做!

首先建立一个层,放入文字并用上mask滤镜:

<div id="Layer1" style="font:40pt Arial Black;filter:mask(color=white);position:absolute; left:0px; top:0px; width:508px; height:120px; z-index:2">

建立一个层,写入<marquee>

<marquee behavior=scroll direction=right width=508 height=120 scrollamount=4 scrolldelay=0 >

最后插入图片即可!

全部的代码

<html>
<head>
<title>很酷的动态背景文字</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" topmargin=0 leftmargin=0>
<div id="Layer1" style="font:40pt Arial Black;filter:mask(color=white);position:absolute; left:0px; top:0px; width:508px; height:120px; z-index:2">
<p>Dreamweaver</p>
</div>
<div id="Layer2" style="position:absolute; left:0px; top:0px; width:508px; height:120px; z-index:1">
<marquee behavior=scroll direction=right width=508 height=120 scrollamount=4 scrolldelay=0 >
<script language=javascript>
for(t=1;t<=1000;t++)
document.write("<img src=http://www.ccidnet.com/school/zhuan/3d/back.jpg>")
</script>
</marquee>
</div>
</body>
</html>



    在网上安家的朋友一般都要使用计数器,以便知道有多少人访问过你的网站。而绝大多数都是使用主页空间提供者提供的计数器,他们一般都是给你一条诸如<img src=../../...>的语句让你加在你的主页上,但你知道这条语句中各个参数的含义吗?你知道计数器还有许多其它用途吗?本文就来详细介绍一下两种常用计数器的使用方法.
  一. wwwcount V2.4 For Unix
   这是最常用的一种计数器,国内一些免费主页空间(如网易、自贡169、保定热线、深圳963等)都在使用它!它的通常用法是<img src="/cgi-bin/Count.cgi?df=sample.dat">,如果你的计数器语句与它类似,那就赶快往下看吧!
   使用格式:<img src=http:///htmldata/2005-02-24/"/cgi-bin/Count.cgi?arg1=value1&arg2=value2&...&argn=valuen"> 其中“arg?”是参数名,“value?”是参数值,下面具体介绍各个参数的使用方法。
   1. ft--边框厚度(ft>=0,ft=0时没有边框,ft>5时为三维立体边框,缺省值为4)
   例如:<img src="/cgi-bin/Count.cgi?df=sample.dat&ft=0">
   2. frgb--边框颜色(R;G;B或16进制颜色值或颜色的英文单词,缺省值为100;139;216或648bd8)
   例如:<img src="/cgi-bin/Count.cgi?df=sample.dat&frgb=ff0000">
   3. md--计数器位数(5<=md<=10,缺省值为6)
   4. dd--计数器数字样式(dd=A~E)
   注:软件只本身提供5种图样,如需要更多的图样可到http://。
   5. comma--是否每三位加逗号(comma=T or F,缺省值为F)
   例如:<img src="/cgi-bin/Count.cgi?df=sample.dat&dd=C&comma=T">
   6. srgb,prgb--将颜色srgb变为颜色prgb(颜色值见frgb,缺省值:srgb=green,prgb=cyan)
   例如:<img src="/cgi-bin/Count.cgi?lit=1234567&srgb=00ff00&prgb=ff0000"&chcolor=T>
   注:必须与参数chcolor=T同时使用。
   7. chcolor--是否允许颜色改变(chcolor=T or F,缺省值为F)
   8. st--起始数值(缺省值为1)
   注:必需Server允许你自由生成data文件,如果data文件已经存在无效。
   9. sh--是否显示计数器(sh=T or F,缺省值为T)
   注:你可以使用参数:st=F不显示计数器而照常计数。
   10. df--保存计数的data文件(如不指定则显示随机数)
   注:这个文件是计数器提供者指定的。
   11. incr--是否计数(缺省值为T)
   注:如设为F则只显示当前数值而不增加。(谁会用这个功能!)
   12. lit--显示指定的字符串(lit为数字,a,p,:或-)
   13. negate--反色显示(negate=T or F,边框颜色不反转,缺省值为F)
   14. degrees--旋转计数器的角度(degrees=90,180,270 or 360,缺省值为270)
   例如:<img src=/cgi-bin/Count.cgi?ft=0&df=sample.dat°rees=90&dd=D&prgb=ffff00&rotate=T">
   注:必须与参数rotate=T同时使用。
   15. rotate--是否允许旋转显示(rotate=T or F,不指定degrees时旋转270度,缺省值为F)
   16. display--显示计数器、日期、时间或图像(display=counter, clock, date or image 水平线对于制作网页的朋友来说一定不会陌生,它在网页的版式设计中是非常有作用的,可以用来分隔文本和对象。在Dreamweaver中依次点击“插入→标准”,然后单击“水平线”按钮即可添加一条水平线。Html代码为<hr>


  在网页设计过程中,如果随意利用缺省水平线,常常会出现插入的水平线与整个网页颜色不协调的情况。打开水平线属性面板也只有宽、高、对齐以及阴影方面的设置,没有对水平线颜色的设置,怎么办?

  其实,你只要仔细看一下水平线的属性设置面板,就会发现一个“快速标签编辑器”,点击此标签并在后面输入“color=颜色”。这里的“颜色”可以是任何颜色,一般格式为:<hr color=#FF0000>,显示如下:



  用这个方法设置后,在Dreamweaver中无法直接看到效果,我们可以点击“F12”键,在浏览器里浏览水平线的颜色变化。

  小技巧:诸如“#FF0000”这样的颜色代码对于初级朋友来说不容易分辩,你可以这样做:给网页中的字体加上颜色

[!--infotagslink--]

相关文章

  • 详解前端安全之JavaScript防http劫持与XSS

    作为前端,一直以来都知道HTTP劫持与XSS跨站脚本、CSRF跨站请求伪造。防御这些劫持最好的方法是从后端入手,前端能做的太少。而且由于源码的暴露,攻击者很容易绕过防御手段。但这不代表我们去了解这块的相关知识是没意义的,本文的许多方法,用在其他方面也是大有作用。...2021-05-24
  • 浅谈node.js中async异步编程

    1.什么是异步编程? 异步编程是指由于异步I/O等因素,无法同步获得执行结果时, 在回调函数中进行下一步操作的代码编写风格,常见的如setTimeout函数、ajax请求等等。示例: for (var i = 1; i <= 3; i++) {setTimeout(functi...2015-10-23
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • c# socket网络编程接收发送数据示例代码

    这篇文章主要介绍了c# socket网络编程,server端接收,client端发送数据,大家参考使用吧...2020-06-25
  • 腾讯视频怎么放到自己的网页上?

    腾讯视频怎么放到自己的网页上?这个问题是一个基本的问题,要把腾讯视频放到自己的网页有许多的办法,当然一般情况就是直接使用它们的网页代码了,如果你要下载资源再放到...2016-09-20
  • 安全地关闭MySQL服务的教程

    普通关闭 我的mysql是自己下载的tar包,自己设定安装目录来安装的。停止mysql服务,说来简单,但不知道的话,还真是挠头。在这和mysql入门的同学们共享:)正确方法是,进入mysql的bin目录下,然后执行./mysqladmin -uroot -p shut...2015-11-24
  • C#编程总结(六)详解异步编程

    本篇文章主要介绍了C#异步编程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。...2020-06-25
  • 基于JavaScript实现网页倒计时自动跳转代码

    这篇文章主要介绍了基于JavaScript实现网页倒计时自动跳转代码 的相关资料,需要的朋友可以参考下...2015-12-29
  • 网页头部声明lang=”zh-cn”、lang=“zh”、lang=“zh-cmn-Hans”区别

    我们现在使用的软件都会自动在前面加一个申明了,那么在网页头部声明lang=”zh-cn”、lang=“zh”、lang=“zh-cmn-Hans”区别是什么呢?下面我们就一起来看看吧. 单...2016-09-20
  • C#实现线程安全的简易日志记录方法

    这篇文章主要介绍了C#实现线程安全的简易日志记录方法,比较实用的功能,需要的朋友可以参考下...2020-06-25
  • 理解javascript异步编程

    这篇文章主要为大家介绍了javascript异步编程,从浅入深的学习javascript异步编程,对javascript异步编程感兴趣的小伙伴们可以参考一下...2016-01-29
  • 读Javascript高性能编程重点笔记

    这篇文章主要介绍了读Javascript高性能编程重点笔记,需要的朋友可以参考下...2016-12-31
  • apache中配置整合tomcat环境与安全配置

    系统:centos 5.9 环境:apache 2.2.25 tomcat 7.0.42 jdk 1.7.0 1.安装apache 我这里是直接yum安装的,如果你们要编译安装也不是不行. 代码如下 ...2016-01-28
  • 基于RequireJS和JQuery的模块化编程——常见问题全面解析

    下面小编就为大家带来一篇基于RequireJS和JQuery的模块化编程——常见问题全面解析。小编觉得挺不错的,现在分享给大家,也给大家做个参考...2016-04-17
  • 再谈JavaScript异步编程

    再谈JavaScript异步编程,简单描述了几种JavaScript异步编程模式,感兴趣的小伙伴们可以参考一下...2016-01-29
  • 探究JavaScript函数式编程的乐趣

    本文是函数式编程系列的第一篇文章,这里我会简要介绍一下编程范式,然后会直接介绍使用Javascript进行函数式编程的概念,需要的朋友可以参考下...2015-12-16
  • C#实现Winform中打开网页页面的方法

    这篇文章主要介绍了C#实现Winform中打开网页页面的方法,涉及WinForm中WebBrowser的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • MySQL数据库安全设置和常用管理方式

    当你第一次在机器上安装MySQL时,mysql数据库中的授权表是这样初始化的:你可以从本地主机(localhost)上以root连接而不指定口令。root用户拥有所有权限(包括管理权限) 并可做任何事情。...2013-09-19
  • Go语言通过http抓取网页的方法

    这篇文章主要介绍了Go语言通过http抓取网页的方法,实例分析了Go语言通过http操作页面的技巧,需要的朋友可以参考下...2020-05-05
  • vue如何在用户要关闭当前网页时弹出提示的实现

    这篇文章主要介绍了vue如何在用户要关闭当前网页时弹出提示的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-01