3 回答
TA贡献1765条经验 获得超5个赞
假设您的应用程序遵循最佳实践并且没有漏洞,这绝对是安全的,只要您不(意外地)包含您提到的任何凭据或机密。
如果您的应用程序确实存在漏洞,将其放在 GitHub 上实际上可能会降低危险。如果该漏洞存在于您正在使用的依赖项中,GitHub 可能会提醒您该漏洞,让您了解它并允许您修复它。此外,其他用户可能会发现缺陷、报告问题或 PR 并帮助您修复它。另一个额外的好处是,如果您自己的计算机受到威胁,您的代码将安全地存储在异地。
另一方面,有动机的攻击者可能想要利用该漏洞。为了做到这一点,他们仍然需要筛选您的代码以找到它,然后攻击您是使用您的软件的人。除非您的软件被高价值目标或大量目标使用,否则这对攻击者来说是不经济的。
github repo 设置为 private 是否安全?
差不多吧。私人回购的内容在ToS 的 E 节中进行了规定:
简短版本:您可以访问私有存储库。我们将私有存储库的内容视为机密,我们只会出于支持原因、在您同意的情况下或出于安全原因需要访问它。
我鼓励您阅读 ToS 的整个部分,如果您担心私人回购的机密性,它不是那么长但值得一读。
请注意,现在微软自己在 GitHub 上的一个私人仓库中托管了 Windows 源代码。许多其他公司也这样做。GitHub 在这方面赢得了值得信赖的声誉。
恕我直言,我会毫不犹豫地在 GitHub 上公开发布开源项目。但是,如果该项目是一个封闭源代码的盈利应用程序,那么问题就来了,为什么您首先要提供源代码。私人回购会更适合这一点。
TA贡献1828条经验 获得超13个赞
我不认为对此有一个简短的答案。
很大程度上取决于代码质量本身。如果您不使用准备好的语句访问数据库,那么可能想要攻击您的后端站点的人可能会找到一个简单的方法。如果您正确使用准备好的语句,他们可能甚至不会为 sql 注入攻击而烦恼。
但企业将其代码保密的主要原因是它被认为是敏感数据,就像密码和 api 密钥一样。竞争对手可以简单地复制您的代码(如果它位于公共存储库中),然后可能稍微修改一下布局,并在一周内使用您花了一年时间构建、改进和扩展的东西。
尽管如此,即使您将代码保密,您仍应将其视为公开的。这意味着您需要确保密码和 api 密钥之类的东西不会最终出现在存储库中。
还要记住,提交后很难从 git 存储库中删除文件。如果一个文件在提交 123456 中提交,然后在提交 abcdef 中删除,它仍然存在于提交历史中。
TA贡献1815条经验 获得超13个赞
假设您使用的是 php,但这也适用于其他语言。
当我构建时,我将所有 db/connect 凭据都放在一个文件中,并将每个凭据设置为一个变量,例如 $username、$password 等。然后使用 include 语句将这些变量引入连接文件。然后,如果您担心其他人看到它,请将该凭证文件放入您的 .gitignore 中。
确保 include 语句在 connection 语句之前。
例如
//credential.php
$username = 'usernameExample'
$password = 'passwordExample'
//then in your connect file
//connect.php
include 'credential.php'
//put a try block here
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
/put a catch block here
对于 gitignore,只需创建一个文件并将其命名为 .gitignore 并将 credential.php 放入
- 3 回答
- 0 关注
- 159 浏览
添加回答
举报