首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开放源码项目中与安全相关的代码?

开放源码项目中与安全相关的代码?
EN

Security用户
提问于 2014-02-16 18:23:17
回答 3查看 2.8K关注 0票数 11

我最近听说,大多数PHP代码都是保密的,因为如果攻击者知道您的数据库结构或用于加密密码的哈希函数,则会有更大的漏洞。

我想知道,如果是这样的话,那么开放源码项目会怎么样呢?

EN

回答 3

Security用户

回答已采纳

发布于 2014-02-16 18:36:12

我最近听说,大多数PHP代码都是保密的,因为如果攻击者知道您的数据库结构或用于加密密码的哈希函数,则会有更大的漏洞。

只有当设计人员没有使用正确的散列函数或保护webapp不受SQL注入时,才会出现这种情况。但是这些东西很容易被检测到,这些天来有一些自动化工具可以通过源代码查找SQL注入漏洞(而不是将sqlmap指向webapp)。

如果你使用类似氪星的东西,你可以完全安全地告诉每个人你使用它。

MediaWiki过去常使用咸的MD5散列。salt是安装特定的,而不是开源代码的一部分(它是在安装时生成的)。这并不像它所能做到的那样安全(每个用户的盐类和使用更好的散列算法会更好),但是只要LocalSettings文件没有公开,它仍然是安全的。(诚然,这并不是一个很好的安全级别)。我想是Drupal也这么做,但是和sha512。

我想知道,如果是这样的话,那么开放源码项目会怎么样呢?

默默无闻的安全并不是安全。如果将代码放在开放环境中会影响安全性,那么您一开始就没有任何安全性。

此外,如果代码中存在安全漏洞,这些漏洞也会被贡献者捕获。例如,最近我在Bugzilla软件中发现并修补了一个与安全相关的漏洞。

票数 22
EN

Security用户

发布于 2014-02-16 18:36:16

这被称为"默默无闻",对于大多数(如果不是全部)来说,这通常被认为是一个糟糕的安全模型。

有两个主要术语侧重于这一概念:

克尔霍夫原理

一个密码系统应该是安全的,即使所有关于系统的东西,除了密钥,都是公共知识。

后来,克劳德·香农( Claude Shannon )用更笼统的措辞重新表述了这一点,成为香农的格言:

敌人知道这个系统。

关键是安全应该来自可靠的安全概念,而不是试图隐藏信息和算法。加密性强的操作确保安全性,而私有代码只确保不透明。

票数 35
EN

Security用户

发布于 2014-02-16 23:22:03

我最近听说大部分PHP代码是保密的

这似乎是不正确的。在最起码,大多数PHP是没有混淆和可读性的任何人,它是分发给。

因为如果攻击者知道您的数据库结构或用于加密密码的哈希函数,则会有更高的漏洞发生。

也不对。数据库结构--没有散列函数--都不是架构初始漏洞的关键。这些在入侵后可能很有用,但在生成初始攻击时,重要的是了解站点代码中的某些缺陷或漏洞。

拥有源代码可以帮助查找安全漏洞(参见: Wordpress和Joomla插件),这并不是必要的。事实上,大多数有趣的漏洞(Windows、Flash、Internet、Acrobat等)是在没有源代码的帮助下找到的。

使您的项目开放源码使代码更容易为第三方审计(无论是否您的许可),这将导致更早发现错误和漏洞,希望使它们更快,更容易修补。

假设您的项目足够受欢迎,可以得到合理的检查,这应该意味着一旦完成初始发现和审查期间,您的项目就不太可能存在重要的安全漏洞。很难获得这方面的良好数据,但一些证据表明,流行的开源软件不太可能存在这些“休眠”漏洞,这些漏洞存在并活跃,但几十年来一直未被公开。

票数 12
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/51648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档