如何进行网站的安全测试
(一)、安全测试是什么?
所谓安全性测试(security testing)是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。
注意:安全性测试并不最终证明应用程序是安全的,而是用于验证所设立策略的有效性,这些对策是基于威胁分析阶段所做的假设而选择的。
(二)、WEB安全性测试
一个完整的WEB安全性测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密、参数操作、异常管理、审核和日志记录等几个方面入手。
一、 安全体系测试
1、部署与基础结构 网络是否提供了安全的通信 部署拓扑结构是否包括内部的防火墙 部署拓扑结构中是否包括远程应用程序服务器 基础结构安全性需求的限制是什么 目标环境支持怎样的信任级别
2、 输入验证
如何验证输入
1) 是否清楚入口点
2) 是否清楚信任边界
3) 是否验证Web页输入
4) 是否对传递到组件或Web服务的参数进行验证
5) 是否验证从数据库中检索的数据
6) 是否将方法集中起来
7) 是否依赖客户端的验证
8) 应用程序是否易受SQL注入攻击
9) 应用程序是否易受XSS攻击
如何处理输入
3、身份验证
1)是否区分公共访问和受限访问
2)是否明确服务帐户要求
3)如何验证调用者身份
4)如何验证数据库的身份
5)是否强制试用帐户管理措施
4、授权
1)如何向最终用户授权
2)如何在数据库中授权应用程序
3)如何将访问限定于系统级资源
5、配置管理
1)是否支持远程管理
2)是否保证配置存储的安全
3)是否隔离管理员特权
6、 敏感数据
是否存储机密信息
如何存储敏感数据
是否在网络中传递敏感数据
是否记录敏感数据
测试实施
1、 不登录系统,直接输入登录后的页面的url是否可以访问
2、 不登录系统,直接输入下载文件的url是否可以下载,如输入http://url/download?name=file是否可以下载文件file
3、 退出登录后按后退按钮能否访问之前的页面
4、 ID/密码验证方式中能否使用简单密码。如密码标准为6位以上,字母和数字混合,不能包含ID,连续的字母或数字不能超过n位
5、 重要信息(如密码,身份证号码,信用卡号等)在输入或查询时是否用明文显示;在浏览器地址栏里输入命令javascrīpt:alert(doucument.cookie)时是否有重要信息;在html源码中能否看到重要信息
6、 手动更改URL中的参数值能否访问没有权限访问的页面。如普通用户对应的url中的参数为l=e,高级用户对应的url中的参数为l=s,以普通用户的身份登录系统后将url中的参数e改为s来访问本没有权限访问的页面
7、 url里不可修改的参数是否可以被修改
8、 上传与服务器端语言(jsp、asp、php)一样扩展名的文件或exe等可执行文件后,确认在服务器端是否可直接运行
9、 注册用户时是否可以以'--,' or 1=1 --等做为用户名
10、 传送给服务器的参数(如查询关键字、url中的参数等)中包含特殊字符(','and 1=1 --,' and 1=0 --,'or 1=0 --)时是否可以正常处理
11、 执行新增操作时,在所有的输入框中输入脚本标签(<scrīpt>alert("")</scrīpt>)后能否保存
12、 在url中输入下面的地址是否可以下载:http://url/download.jsp?file=C:\windows\system32\drivers\etc\hosts,http://url/download.jsp?file=/etc/passwd
13、 是否对session的有效期进行处理
14、 错误信息中是否含有sql语句、sql错误信息以及web服务器的绝对路径等
15、 ID/密码验证方式中,同一个账号在不同的机器上不能同时登录
16、 ID/密码验证方式中,连续数次输入错误密码后该账户是否被锁定
17、 新增或修改重要信息(密码、身份证号码、信用卡号等)时是否有自动完成功能(在form标签中使用autocomplete=off来关闭自动完成功能)
1、web平台:web平台软件漏洞,包括Http底层服务软件(比如,IIS或Apache)等底层基础设施,以及应用程序开发框架(如Asp.Net或者PHP).
2、web应用:对授权、认证、站点结构、输入验证、程序逻辑以及管理接口进行攻击。
3、数据库:通过数据库查询进行特权命令,操纵查询以返回额外的数据集,这里最具破坏性的攻击是SQL注入。
4、web客户端:活动内容执行、客户端软件漏洞攻击、跨站脚本错误,以及钓鱼欺骗
5、传输:窃听客户-服务器通信,SSL重定向
6、可用性:如果要你迅速地指出更危险的"黑客"技术,拒绝服务攻击(denial of service,DoS)经常会被遗漏,其实DoS攻击是任何可公开访问的Web应用所面临的最大威胁之一。让任何资源都对公众开放本来就有很大的挑战,在网络世界中更是如此。
其中Open Web Application Security Project(owas)就是流行之一。
推荐测试网站各项性能的免费在线工具
你是否肯定你的网站完全兼容各大浏览器?是否知道多少秒可以打开你的网站?是否可以自信地说你的网站根本就没有打不开的时候?是否……
虽然它看似不重要,但这些在一定程度上也对你的网站的访问量产生了影响 (其它一部分影响浏览量的原因及解决办法)。这里列出了一份31个我最喜爱的免费在线测试工具,你可以通过这些工具来测试你的网站,并根据结果对你的网站进行修改。
网站代码验证没人可以细致到保证自己的网站代码都是正确的,你可以通过以下测试来验证网站代码是否正确。
1 、WDG HTML Validator
一个很好的工具,能找出网站语法错误的地方,并标注出来,也可选择对网站上单独的每一页进行单页分析。(强烈推荐)
2 、 W3C Markup Validation Service
对 HTML 和 XHTML 都能进行代码测试,自称是互联网络上第一个(也是使用者最多的)的 HTML 验证工具。
3 、 W3C CSS Validation Service
用于验证 css 源代码,能够标注出不好的 css 代码设计。例如:“Same colors for color and background-color in two contexts”。
4 、 RUWF XML Syntax Checker
用于查找 XML 文件的错误。
5 、 W3C Feed Validation Service
用于查找 Atom 和 RSS feed 中的错误语法。
6 、 W3C Link Checker
用于搜寻查明你网站内的所有链接里是否有断链。(强烈推荐)
7 、Juicy Studio Link Analyser
测试网站内的链接的 URL 是否存在死链,与 W3C Link Checker 很类似。网站的使用性我们常常看到网站设计者把重点放在怎网站的吸引力上,而完全不考虑会不会影响来访者的使用,一个浏览难度很大的网页是注定要失败,要让你的来访者方便的得到他要的信息(从而成为重复访客),你的网站应当遵循 WCAG section 508 易用性规则。
8 、Watchfire WebXACT
所有严谨的设计师和开发者都必须使用的工具,它会生成一个非常详尽的报告书,包括:网站质量,易用性和隐私等。(强烈推荐)
9 、 ATRC Web Accessibility Checker
测试网站的 WCAG 2.0 Level2 兼容性,它会生成一份报告,提出一系列建议,如:如何提升页头,链接,数据,图表和文字的访问速度。
10 、WAVE 3.0 Web Accessibility Tool
高度可定制的工具,它采用了图形化模型展示网站兼容性问题( WCAG 1.0 and section 508 )。(强烈推荐)
11 、TAW Web Accessibility Test
测试网页是否存在冲突( WCAG 1.0 兼容性 ),通过图形模式生成一份依据 wcag 优先模式为基础的网站修改建议。
12 、HiSoftware CynthiaSays portal
采用了非常严格的规则来测试网页( 根据 section 508 和 WCAG 1.0 规则),生成的报告也极为详细(详细到很难看懂 )。
13 、HERA Accessibility testing with Style
使用一种极为复杂但容易理解方式指出网页的 wcag1.0 兼容性问题。
14 、Juicy Studio CSS Analyser
进行了色彩对比测试,以确保你的网站的色调会符合 WCAG 1.0 的要求。
15 、Juiciy Studio Readability Test
分析你网站上的文字是否有语法错误或拼写错误等问题,容易让人理解不( 根据 the Flesch Reading Ease 和 Flesch-Kincaid grade level algorithms 规则)。(适合英文网站使用)网站的速度打开你的网站的速度快慢,是来访者会不会再次访问网站的关键因素,在一般情况下,一个网络不是很快的来访者是不愿意访问一个充满着图片、 flash 动画、多媒体文件的网站。为了使你的网站覆盖人群的范围最大化,你必须优化你的网站,使它的打开速度尽可能的快。
下面的是追加: 有和上面重复的请忽略
网站代码验证工具
1. WDG HTML Validator 一个很好的工具,能找出网站语法错误的地方,并标注出来,也可选择对网站上单独的每一页进行单页分析。(强烈推荐)
2. W3C Markup Validation Service 对 HTML 和 XHTML 都能进行代码测试,自称是互联网络上第一个(也是使用者最多的)的 HTML 验证工具。(这个我也自己体验了下,可以校验html代码 是否符合语法)
3. W3C CSS Validation Service 用于验证 css 源代码,能够标注出不好的 css 代码设计。例如:“Same colors for color and background-color in two contexts”。
4. RUWF XML Syntax Checker 用于查找 XML 文件的错误。
5. W3C Feed Validation Service 用于查找 Atom 和 RSS feed 中的错误语法。(这个我经常用到)
6. W3C Link Checker 用于搜寻查明你网站内的所有链接里是否有断链。(强烈推荐)
7. Juicy Studio Link Analyser 测试网站内的链接的 URL 是否存在死链,与 W3C Link Checker 很类似。
网站的使用性工具
我们常常看到网站设计者把重点放在怎网站的吸引力上,而完全不考虑会不会影响来访者的使用,一个浏览难度很大的网页是注定要失败,要让你的来访者方便的得到他要的信息(从而成为重复访客),你的网站应当遵循 WCAG section 508 易用性规则。
8. Watchfire WebXACT 所有严谨的设计师和开发者都必须使用的工具,它会生成一个非常详尽的报告书,包括:网站质量,易用性和隐私等。(强烈推荐)
9. ATRC Web Accessibility Checker 测试网站的 WCAG 2.0 Level2 兼容性,它会生成一份报告,提出一系列建议,如:如何提升页头,链接,数据,图表和文字的访问速度。
10. WAVE 3.0 Web Accessibility Tool 高度可定制的工具,它采用了图形化模型展示网站兼容性问题( WCAG 1.0 and section 508 )。(强烈推荐)
11. TAW Web Accessibility Test 测试网页是否存在冲突(WCAG 1.0 兼容性),通过图形模式生成一份依据 wcag 优先模式为基础的网站修改建议。
12. HiSoftware CynthiaSays portal 采用了非常严格的规则来测试网页(根据 section 508 和 WCAG 1.0 规则),生成的报告也极为详细(详细到很难看懂)。
13. HERA Accessibility testing with Style 使用一种极为复杂但容易理解方式指出网页的 wcag1.0 兼容性问题。
14. Juicy Studio CSS Analyser 进行了色彩对比测试,以确保你的网站的色调会符合 WCAG 1.0 的要求。
15. Juiciy Studio Readability Test 分析你网站上的文字是否有语法错误或拼写错误等问题,容易让人理解不(根据 the Flesch Reading Ease 和 Flesch-Kincaid grade level algorithms 规则)。(适合英文网站使用)
网站的速度
打开你的网站的速度快慢,是来访者会不会再次访问网站的关键因素,在一般情况下,一个网络不是很快的来访者是不愿意访问一个充满着图片、flash 动画、多媒体文件的网站。为了使你的网站覆盖人群的范围最大化,你必须优化你的网站,使它的打开速度尽可能的快。
16. Web Page Analyzer from Website Optimization 一个很好的工具,它在分析完一个网页后,会为减少加载时间提出优化建议,着重优化物体的数目,图片和网站的总体大小。(强烈推荐)
17. WebSitePulse Test Tools 有一系列的工具来确定网站的加载速度和主机信息。
18. Internet Supervision Url Check 从世界各地不同的服务器来测试你的网站的加载时间,用于确定是不是各地的来访者都能顺利快速的打开你得网站。
浏览器模拟工具
这是一个普遍的问题,因为现在有着很多的操作系统和浏览器,你得网站必须得兼容它们,但这绝不是一件容易的事。通过下列工具,你可以了解你得网站在各种浏览器上的显示效果。
19. Browsershots 能给出你的网站在不同浏览器下显示效果的截图,包括:Firefox 和 Internet Explorer ( Windows )、Firefox 和 Safari ( Mac OS X )、Iceweasal 和 Konqueror ( Linux ),但是结果要在 1 - 3 小时后才能出来。
20. IE NetRenderer 实时生成你的网站在 Internet Explorer 5.5 、6.0 和 7.0 下的截图。
21. MobiReady Report 分析使用手机访问网页的兼容性问题,会生成一份详细的报告,并提供了在两种不同类型的手机浏览器上你得网站可能显示的样子。
搜索引擎优化(SEO)
一个网站,如果对搜索引擎有着比较好的友好度,一定会比较有竞争力。
22. UrlTrends 会显示网站的访客是如何通过搜索引擎来到你的网站,还有各个流量是多少。这些数据是包括 Google, Yahoo, MSN, Alexa, AlltheWeb, AltaVista 和其他一些网站。(强烈推荐)
23. iWEBTOOL Backlink Checker 一个很好的工具,它能找出有什么站点链接到你的站点,那些站点是什么类型的站点。
24. iWEBTOOL Multi-Rank Checker 显示你网站的 Alexa 和 Google PageRank 数值。
25. Microsoft adCenter Labs: Advertising and Keyword Research Tools 一个极好的工具,用于分析和预测你网站的来访者和市场。(强烈推荐)
26. Domain Tools Whois lookup 一个 WHOIS 网络工具。
27. SEO-Browser 可以让你看到在搜索引擎眼里一样的网站(去掉所有的”美丽”配件)。
28. SEO Workers SEO Analysis Tool 非常有用的工具,分析了网站上的各种分类特征,包括 meta 标签、关键字密度及加载时间。(强烈推荐)
29. Seekport Seekbot 可以分析网站的数据和内容,以得出搜索引擎会如何有效的解释分析的网站。
30. SEO Chat SEO Tools 用以分析网站 Google adsense 盈利潜力,关键字密度,Meta tag 等等……
31. Marketleap Search Engine Marketing Tools 用来分析网页,让你知道你的网站检索、设定的关键字好不好。