网站地图    收藏   

主页 > 后端 > 网站安全 >

网站开发中的安全检查(Penetration Test) - 网站安全

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 一般稍微大一点规模的网站上线前都要做一下安全性测试。(Penetration Test)安全测试一般包括以下几个步骤:1.选择一系列安全问题点,分析测试的可行性.(选择几个需要进行测试的问题,例...

 

一般稍微大一点规模的网站上线前都要做一下安全性测试。(Penetration Test)

 

 

 

安全测试一般包括以下几个步骤:

 

1.选择一系列安全问题点,分析测试的可行性.(选择几个需要进行测试的问题,例如SQL注入)

 

2.定位系统缺陷,并在其中找出高风险性的部分.(一般使用自动化工具)

 

3.定位那些可能存在的, 难以被自动化测试工具测试出来的缺陷.

 

4.评估缺点对潜在业务和操作的影响.

 

5.测试现有系统防御能力,应对和处理攻击数据的能力.

 

6.提供用于改进享有系统安全性的建议

 

 

 

一般常见的问题如下:(包括但不仅限于)

 

1.SQL 注入。

 

2.XSS 和CSRF。

 

3.Cookies,Session劫持和伪造。

 

4.不必要的权限和信息泄露。

 

5.伪造数据和授权问题

 

6.环境和代码安全性(服务器配置,混淆,加壳等)

 

 

 

问题原因往往是:

 

1.架构设计的缺陷或者未充分考虑安全性

 

2.代码BUG

 

3.不完整的测试,代码覆盖率不够高(当然较高的代码测试覆盖率意味者较高的成本,一般指关于逻辑和数据的测试)

 

4.未及时移除测试性代码和将DEBUG的信息发布到生产环境

 

5.服务器设置,特别是权限

 

6.某些人员恶意修改

 

 

 

一般分为自动化和人工两个部分

 

自动化一般是使用自己或者第三方开发的工具:

 

  第三方工具推荐: IBM AppScan http://www-01.ibm.com/software/awdtools/appscan/  非常贵但是非常好用的End-to-End测试工具

 

      还有一些免费的测试工具,例如nikto和skipfish  不过免费的...确实不是什么好货色....

 

  这些自动化工具同时一般也包含服务器扫描,断链,拼写检查等功能

 

 

 

人工测试主要是以下的策略:

 

1. CodeReview

 

CodeReview其实很大程度上是为了给developer一种压力,让developer知道有人会查看他的代码,从而促使他提供更高质量的产品.

CodeReview还有其他很多的用途,移除程序中的缺陷是其中比较重要的一个.

2.手动测试

 

 一般是选择几个关键的流程和功能进行测试

 

 

有兴趣的朋友可以看看这个文档Technical Guide to Information Security Testing and Assessment 

 

和这个网页http://en.wikipedia.org/wiki/Penetration_test

 

 

 

另外建议项目适当的设置不同的环境  (不仅仅用于保证安全性)

 

1.Local

 

2.DEV 用于开发小组的内部测试,一般程序员只能工作于Local和DEV环境

 

3.QAT 只有QA有权限部署该环境,QA在这个环境工作

 

4.UAT  用户将在这个环境进行测试,该环境的搭建和程序集的编译往往是和开发人员无关的

 

5.Prod

 

 

作者 听说读写

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论