第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 github 上公開后端是不好的做法嗎?

在 github 上公開后端是不好的做法嗎?

PHP
夢里花落0921 2023-04-15 14:27:41
這可能是一個愚蠢的問題,但我絕對是后端代碼的初學者,我正在嘗試專業(yè)地練習構建應用程序。將我的應用程序的整個代碼庫(不包括數(shù)據(jù)庫密碼、api 密鑰和其他敏感數(shù)據(jù)位)推送到公共 github 存儲庫是否被認為是不好的做法?這是否會使我的應用程序在托管后處于易受攻擊的位置?github repo 設置為 private 是否安全?github上前后端的專業(yè)處理方式是什么?我已經(jīng)在網(wǎng)上搜索過,但“后端”和“github”只是顯示“github 頁面不支持服務器端代碼”的結果。這很有趣,但完全是另一回事。
查看完整描述

3 回答

?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

假設您的應用程序遵循最佳實踐并且沒有漏洞,這絕對是安全的,只要您不(意外地)包含您提到的任何憑據(jù)或機密。

如果您的應用程序確實存在漏洞,將其放在 GitHub 上實際上可能會降低危險。如果該漏洞存在于您正在使用的依賴項中,GitHub 可能會提醒您該漏洞,讓您了解它并允許您修復它。此外,其他用戶可能會發(fā)現(xiàn)缺陷、報告問題或 PR 并幫助您修復它。另一個額外的好處是,如果您自己的計算機受到威脅,您的代碼將安全地存儲在異地。

另一方面,有動機的攻擊者可能想要利用該漏洞。為了做到這一點,他們?nèi)匀恍枰Y選您的代碼以找到它,然后攻擊您是使用您的軟件的人。除非您的軟件被高價值目標或大量目標使用,否則這對攻擊者來說是不經(jīng)濟的。

github repo 設置為 private 是否安全?

差不多吧。私人回購的內(nèi)容在ToS 的 E 節(jié)中進行了規(guī)定:

簡短版本:您可以訪問私有存儲庫。我們將私有存儲庫的內(nèi)容視為機密,我們只會出于支持原因、在您同意的情況下或出于安全原因需要訪問它。

我鼓勵您閱讀 ToS 的整個部分,如果您擔心私人回購的機密性,它不是那么長但值得一讀。

請注意,現(xiàn)在微軟自己在 GitHub 上的一個私人倉庫中托管了 Windows 源代碼。許多其他公司也這樣做。GitHub 在這方面贏得了值得信賴的聲譽。

恕我直言,我會毫不猶豫地在 GitHub 上公開發(fā)布開源項目。但是,如果該項目是一個封閉源代碼的盈利應用程序,那么問題就來了,為什么您首先要提供源代碼。私人回購會更適合這一點。


查看完整回答
反對 回復 2023-04-15
?
慕田峪7331174

TA貢獻1828條經(jīng)驗 獲得超13個贊

我不認為對此有一個簡短的答案。

很大程度上取決于代碼質量本身。如果您不使用準備好的語句訪問數(shù)據(jù)庫,那么可能想要攻擊您的后端站點的人可能會找到一個簡單的方法。如果您正確使用準備好的語句,他們可能甚至不會為 sql 注入攻擊而煩惱。

但企業(yè)將其代碼保密的主要原因是它被認為是敏感數(shù)據(jù),就像密碼和 api 密鑰一樣。競爭對手可以簡單地復制您的代碼(如果它位于公共存儲庫中),然后可能稍微修改一下布局,并在一周內(nèi)使用您花了一年時間構建、改進和擴展的東西。

盡管如此,即使您將代碼保密,您仍應將其視為公開的。這意味著您需要確保密碼和 api 密鑰之類的東西不會最終出現(xiàn)在存儲庫中。

還要記住,提交后很難從 git 存儲庫中刪除文件。如果一個文件在提交 123456 中提交,然后在提交 abcdef 中刪除,它仍然存在于提交歷史中。


查看完整回答
反對 回復 2023-04-15
?
蕭十郎

TA貢獻1815條經(jīng)驗 獲得超13個贊

假設您使用的是 php,但這也適用于其他語言。


當我構建時,我將所有 db/connect 憑據(jù)都放在一個文件中,并將每個憑據(jù)設置為一個變量,例如 $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,只需創(chuàng)建一個文件并將其命名為 .gitignore 并將 credential.php 放入


查看完整回答
反對 回復 2023-04-15
  • 3 回答
  • 0 關注
  • 207 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號