阅读更多

2顶
0踩

研发管理


绝大多数的企业,都是在Web应用设计结束后才开始考虑应用安全的问题,应用安全与应用开发之间的脱节是导致各种严重的安全漏洞的根源。

对很多互联网企业来说,Web应用安全往往在开发过程中被忽略。VentureBeat的专栏作者John Jacott最近发表了一篇博文认为安全的第一个也是最重要的环节是程序员。由IT经理网编译如下:

如今,你随处都能听到各种各样Web应用被攻破的新闻。黑客们针对Web应用发起攻击,盗取敏感企业或个人数据等。各种黑客组织出于各种原因,针对不同的组织进行攻击。

绝大多数的企业,都是在Web应用设计结束后才开始考虑应用安全的问题。他们可能在应用开发结束后才进行安全测试,或者在应用正式上线前进行测试。有的甚至在正式上线后才进行安全测试。其实,业界中有很多著名的公司就是这么做的。这也就是你为什么经常能够听到那些大公司的Web应用遭受攻击或者数据被盗取的新闻。

造成这一情况的根源,在于应用安全与应用开发之间的脱节导致各种严重的安全漏洞。一般来说,应用开发程序员往往不是安全专家,而大部分安全专家则并不是程序员。因此,在对付应用安全问题上,需要这两方面的人员更好,更早地在开发过程中进行合作。

在开发早期就要重视质量控制(QA)

通常, QA是一个事后过程,或者是在开发后期才会考虑的问题。一个180天的开发项目,可能在最后20天是留给QA的,而安全测试则可能只有3天。

这样会产生几个问题,由于QA和安全测试在测试一个完整的应用程序,测试可能会发现一些严重问题,而这些问题需要程序员来解决。

这样问题来了,当这些问题被发现的时候,程序员可能已经结束项目了,在规定期限内完成了项目要求,或者已经去别的项目了。而这时候出现的安全问题可能已经不是程序员们需要解决的重点了。

程序员介入安全问题越早越好

程序员在早期介入安全问题,就意味着那些对应用最熟悉的人,能够有最多的时间和精力去解决安全问题。

我们不能指望在开发结束后,程序员转到另外的项目以后,才开始考虑安全问题。对安全问题的考虑,必须是渐进的,贯穿整个开发过程的。同样的,安全测试也是如此。

不少人都知道,程序员们一般都抵触安全问题,因为他们没有时间,没有能力,没法理解在完成应用的同时还要去满足一系列安全的要求。如果你开发一个产品的同时还对你提出一堆安全性的要求。你可能也会这么认为。而且,你如何保证程序员们都是安全测试的专家,而安全测试的专家们又不介入程序开发。

不少网络安全公司都针对程序员进行一些如跨站攻击(XSS)的培训。然而,我们却发现这样的漏洞却越来越多。有些漏洞甚至都存在了15年。这样的培训往往不成功,因为很多企业并没有采取正确的开发流程。

安全测试人员要善于与程序员沟通

安全测试专家需要更好地了解应用开发的过程,需要给出程序员能够理解的明确要求。通过技术和流程来测试应用的质量和安全性以及代码的质量和安全性。

安全测试人员不要在项目结束后才提出测试要求。对代码的测试需要按照天为单位,或者在代码提交后就进行测试。对代码的缺陷要用程序员能够理解的方式告诉他们,并对他们如何修改提供具体的指导。

这也就是为什么企业需要在开发开始时就开始让程序员介入安全测试。程序员们对应用的熟悉程度最高,可以实时地处理发现的安全问题。

采取程序员优先的应用安全的最佳实践

尽管很多企业还没有意识到应用安全应该作为Web应用的一项重要的要求,也有不少企业已经意识到了。

这些企业理解应用开发过程。他们愿意让程序员去和QA或者安全人员进行沟通。他们采取了一系列方式来倡导程序员优先的应用安全开发,包括培训,内部奖励(比如对程序员冠以“安全专家”,比如搞一些促进程序员, QA和安全等不同小组之间合作的活动等等)。而这样的企业,能够开发出更好,更加安全的应用。
  • 大小: 40.8 KB
来自: IT经理网
2
0
评论 共 2 条 请登录后发表评论
2 楼 bhq10000 2013-04-10 11:15
时间、成本,使客户、领导不会重视安全问题。
1 楼 lection.yu 2013-04-09 13:37
安全固然重要。。不过很多网站做出来没人访问。。等不到安全出问题的时候

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • CString字符串的基本操作

    头文件:CString.h CString没有基类。 一个CString对象由可变长度的一队字符组成。CString使用类似于Basic的语法提供函数和操作符。连接和比较操作符以及简化的内存管理使CString对象比普通字符串数组容易使用。 CString是基于TCHAR数据类型的对象。如果在你的程序中定义了符号_UNICODE,则TCHAR被定义为类型wchar_t,即16位字符类型

  • CString使用SetAt方法出错

    <br />做一个小软件,要对CString的字符进行操作,结果用SetAt方法总是报错,看起来像是溢出<br />百思不得其解,因为我的从语法上来看没有任何问题。<br />后来跟踪调试,到了CString的源码定义部分,发现CString用的是数组保存字符串的<br />数组可以溢出,是因为长度不够,CString呢?<br />如果CString没有初始化长度,是不能进行SetAt操作的,本身没有内容,也就没有申请内存存储空间,故不存在索引,也就没有东西可以用来操作了。指定一个不存在的索引肯定会出错啦

  • MFC之CString类及其成员函数用法详解

    本文·详细介绍了MFC CString及其成员函数,并以实例演示了其用法。

  • 整理:CString类的完美总结&&CString 成员函数用法大全&&string 与 CString 转化&&<string><string.h> 和<cstring>的区别

    CString类的完美总结: ①、CString 类对象的初始化: CString str; CString str1(_T("abc")); CString str2 = _T("defg"); TCHAR szBuf[] = _T("kkk"); CString str3(szBuf); CString str4 = szBuf; TCHAR *p = _T("

  • MFC-CString

    CSting用法速成

  • CString 成员函数用法大全

      CString 成员函数用法大全 CString的构造函数 CString( ); 例:CString csStr; CString( const CString& stringSrc );

  • CString 的成员函数详解

    CString 的成员函数详解 CSTRING的成员函数详解 typedef ATL::CStringT&lt; TCHAR, StrTraitMFC_DLL&lt; TCHAR &gt; &gt; CString; CString的构造函数: 1 CString( ); 2 CString( const CString&amp; stringSrc ); 3 CString( TCHAR ch, int nRepeat = 1 ); 4 CString( LPCTSTR lpch, int nLength

  • VC CString的用法大全

    1.CString::IsEmpty 检查是否为空字符串 2.CString::Left 截取前n个字符 3.CString::LoadString 读取字符串资源 4.CString::MakeLower 将字符串转换为小写 5.CString::MakeReverse 字符串顺序转换 6.CString::MakeUpper 将字符串转换为大写

  • 4.CString常用操作

    ①、CString 类对象的初始化: CString str; CString str1(_T(&quot;abc&quot;)); CString str2 = _T(&quot;defg&quot;); TCHAR szBuf[] = _T(&quot;kkk&quot;); CString str3(szBuf); CString str4 = szBuf; TCHAR *p = _T(&quot;1k2&quot;); //TCHAR * 转换...

  • CString 操作指南

    原著:Joseph M. Newcomer 翻译:littleloach 原文出处:codeproject:CString Management 通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多...

  • CString类详细介绍

    CString类背景介绍 这是本人第一次写csdn博客,如果有写得不好的地方请各位大佬帮忙指出不足之处,本人定会谦虚请教。众所周知,MFC(微软基础类库)是基于Windows界面开发的,它封装了大部分的Windows API(应用程序接口)函数,由C格式的函数升级为类库。而CString字符串类是MFC中比较常用的一个类,CString类里封装了很多对字符串操作的成员函数。接下来讲解该类的成员函数...

  • C++——CString用法大全

    VC:CString用法大全 列表形式的如下: CString的构造函数 CString( ); 例:CString csStr; CString( const CString& stringSrc ); 例:CString csStr("ABCDEF中文123456");     CString csStr2(csStr); CString( TC

  • CString类的用法总结

    CString对象的初始化: CString s; CString s1(_T("hello")); TCHAR buffer[] = _T("hello"); CString s2 = buffer;CString对象的基本操作长度:GetLength(); CString s = _T("abcdef"); int len = s.

  • CString字符操作部分说明

    今天遇到的部分说明如下: // TODO: 在此添加控件通知处理程序代码 CStdioFile file; // int duan=0; CString strLine; CString str; file.Open(_T("D:\\abc.txt"),CFile::modeRead); while(file.ReadString(strLine)) { str += s

  • CStringArray的使用(SetSize, SetAt)

    {// TODO: Add your control notification handler code hereCStringArray ArrayA;ArrayA.SetSize(3);ArrayA.SetAt(0, CSt...

  • CString常用方法简介

    CString常用方法简介CString::Compareint Compare( LPCTSTR lpsz ) const;返回值   字符串一样 返回0          小于lpsz  返回-1         大于lpsz  返回1         区分大小字符         CString s1( "abc" );CString s2( "abd" );

Global site tag (gtag.js) - Google Analytics