題:
Hosting company advised us to avoid PHP for security reasons. Are they right?
Yumecosmos
2016-06-28 21:40:51 UTC
view on stackexchange narkive permalink

我正在為一個客戶進行重新設計,該客戶過去曾被黑客入侵過,但可以理解地關注安全性。最初,我建議使用簡單的PHP頭文件包含頁眉和頁腳模板以及他們想要的聯繫表單。他們不願意,因為託管公司告知他們使用PHP是安全問題,這可能會使某人闖入cPanel並獲得對該網站的控制權。

在我看來,這聽起來像是在告訴某人永遠不要開車,這樣他們就不會發生車禍。我的直覺是主機試圖將其自身系統中的安全漏洞歸咎於客戶端。另外,無論我們是否使用它,服務器仍然安裝了PHP,因此我在質疑這實際上減少了​​多少攻擊面...但是由於我不是安全專家,所以我不想堅持

我告訴我的客戶,要處理聯繫表單,他們將需要某種形式的動態腳本。 (錯誤?)他們問我是否可以只在那一頁上使用PHP。這會更安全嗎?或者等同於鎖上車門並使窗戶滑下?

使用 any PHP腳本聲稱有多少道理? ,無論多麼簡單,都是固有的安全問題?我們在沒有SSL的共享主機上。 假設我們由於使用PHP而被黑,這是否合理?如果不使用它,但不能將其卸載,我們會更安全嗎?因為如果不使用,我們還會遇到其他問題。

(答案是否會與其他語言不同? ?)

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/41822/discussion-on-question-by-yumecosmos-hosting-company-advised-us-to-avoid-php-for)。
九 答案:
Alexander O'Mara
2016-06-28 22:06:53 UTC
view on stackexchange narkive permalink

PHP本身並沒有安全性問題(假設需要安全更新),因為它存在很多流行的基於PHP的軟件,都存在嚴重的安全性問題。您可能會批評PHP是一種語言,它給您足夠的繩索來使自己感到窒息,但是真正的問題是易受攻擊的PHP代碼實際上是多麼普遍。一個人只需要使用 Stack Overflow PHP標記就可以發現PHP的新手根據舊教程的一些殘酷性來編寫令人毛骨悚然的代碼。

此外,大量受歡迎的PHP以其普遍存在的安全漏洞而聞名的軟件基於很老的代碼和編碼慣例。由於固有的安全性問題,許多舊的做法被認為是不當行為。

在我看來,這聽起來像是告訴某人不要開車,以免發生車禍。

是的。更好的建議可能是“不要駕駛沒有安全氣囊的舊車”。

我的直覺是,主機正在試圖將安全漏洞歸咎於客戶。自己的系統。

不一定。如果用戶為WordPress網站和cPanel使用相同的密碼,則破壞WordPress密碼也會損害cPanel。那將是用戶的錯。黑客很少需要走那麼遠,而只需使用PHP shell。

我告訴我的客戶,要處理聯繫表單,他們將需要某種形式的動態腳本。 (否?)

不一定是真的。您可以使用第三方服務來處理郵件發送。然後,該服務將處理動態服務器腳本並接管安全隱患。有許多具有不同功能集的此類服務可用,它們很受支持為靜態生成的站點上的聯繫表單提供動力。

聲稱使用任何PHP腳本(無論多麼簡單)是一個固有的安全性問題有多少道理?

有些,但不是很多。 PHP確實在PHP和執行它的服務器軟件中都包含一些活動代碼。如果該過程中曾經有一個不依賴於特定PHP代碼的安全漏洞,則可以利用它。儘管這種風險很小,但是這是沒有這種支持的服務器所沒有的風險。

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/41900/discussion-on-answer-by-alexander-omara-hosting-company-advised-us-to-avoid-php)。
Luis Casillas
2016-06-29 01:49:02 UTC
view on stackexchange narkive permalink

“正確”可能不是正確的詞,但是會想到“明智”,“謹慎”和“盡責”。自成立以來,PHP一直秉承降低軟件正確性的理念。程序可能會遇到很多情況,其他語言(例如Python)會放棄並拋出錯誤來告訴您您的程序是錯誤的,但是PHP卻選擇做一些荒謬的事情並繼續進行,就像事情只是

請記住,正確性對於安全性非常重要。傾向於靜默忽略左右錯誤的語言將比帶有安全問題的程序擁有更多的份額。例如,您可能有一段代碼,您的程序員認為這些代碼可以防止某種攻擊,但實際上由於解釋程序忽略錯誤而被跳過。

此外:

  • PHP的設計宗旨是吸引程序員的最低分母,並以最少的動力去熟練自己的技術。因此,最有可能編寫不安全的軟件。
  • PHP團隊在解決常見的安全問題方面有著嚴重的缺陷。例如看一下SQL注入保護,它出賣了反复的錯誤嘗試來解決問題: real_escape_string (因為原始的 escape_string 已損壞,但直到後來,他們才將其刪除) )與 斜杠 mysql_escape_string / pg_escape_string 等。幾乎所有其他語言都帶有準備好的語句和查詢參數,並且在第一次嘗試時就可以將其設計擴展到所有數據庫。

因此,所有有關您如何使用其他答案的討論可以用PHP編寫安全的軟件,如果您嘗試使用它,將會非常不符合潮流。

評論不作進一步討論;此對話已[移至聊天](http://chat.stackexchange.com/rooms/42135/discussion-on-answer-by-luis-casillas-hosting-company-advised-us-to-avoid-php-fo)。
Machavity
2016-06-29 00:57:11 UTC
view on stackexchange narkive permalink

PHP的安全問題通常可以分為兩類

未打補丁的系統

截至目前, Wordpress統計信息顯示了所有用戶的一半以上在壽命終止(PHP 5.2-5.4)之後的PHP版本上運行PHP。在兩週內,PHP 5.5停產,然後躍升至所有安裝量的80%。公平地說,現在,某些Enterprise / LTS Linux安裝將向後移植安全修復程序,但是其中絕大部分都沒有在使用向後移植的修復程序(或某些未對他們的系統打補丁)。更糟糕的是,許多人拒絕升級PHP本身。他們要么無法/不會更新其代碼,要么他們認為較舊的軟件更穩定。

Wordpress(全球範圍內排名第一的PHP應用程序)做出了共同努力,以確保用戶能夠及時了解最新信息。關於軟件本身的日期(他們已經取得了長足的進步),但是儘管如此,只有40%的人運行最新版本的Wordpress。這意味著大約60%的人可能存在未修補的安全漏洞。那隻是基礎程序。 WordPress具有龐大的插件生態系統,其中許多具有自己的安全漏洞

然後還有其他問題,例如許多使用已失效的 mcrypt的舊代碼庫。那隻是您可以編譯的一個PHP插件。

現在將其推斷為未運行的服務器,並將統計信息報告給WP。它沒有畫出漂亮的圖畫。去年夏天,我發現一個運行電子商務頁面的網站仍在Apache 1.3.3和PHP 4.1.2上。太老了,啟用了SSLv2 ...

錯誤的做法

如果您對SO PHP問題的討論時間足夠長,就會發現很多人在練習錯誤的代碼。我多年來看到的一些問題

  • SQL注入
  • 認為MD5是保護密碼的好方法
  • 使用過時的API int他們的代碼(即 ext / mysql ,舊的MySQL連接器)
  • 信任用戶輸入以執行代碼(即對用戶提供的數據使用 eval
  • 未關閉PHP代碼中的安全風險(即 exec函數)

對於未經培訓的人,這看起來像一個PHP問題,編碼器及其產生問題的生態系統。也許他們很著急。也許他們雇了一個在業餘時間做這件事的人,“只是讓它起作用”。

可以安全嗎?

是的!但是,這種安全性需要付出一些努力。使您的PHP安裝保持最新。哎呀,讓您的整個服務器保持最新狀態。主機不會做安全和補丁程序嗎? 找到另一位主持人。(令我驚訝的人對此感到驚訝)。構建自己的服務器(VM很便宜)。但首先要注意。了解有關安全性的所有知識。不要只是讓您的網站和服務器出海。

有人告訴您PHP不安全只是在偷懶。

_構建您自己的服務器(VM很便宜)。擁有虛擬機的人本身不知道如何合理地使它們保持安全是一個重大問題。
@marcelm是的,但是至少您可以使用自己的VM,而不是無法升級任何內容的主機
從安全角度來看所有語言都是平等的想法是錯誤的。說您可以解決問題並不等於沒有問題的語言,或者要求您積極介紹這些問題。
-1
“告訴您PHP不安全的人只是在偷懶。”->我完全同意!
未打補丁的系統不會單獨使PHP不安全。僅僅因為一個版本的PHP存在安全漏洞,並不一定意味著您使用該版本的PHP執行的代碼會使您的網站容易受到該安全漏洞的攻擊。您必須利用任何易受攻擊的代碼才能成為安全漏洞的受害者。如果無論您使用什麼代碼,都可以利用此缺陷,請確定。
“告訴您PHP不安全的人只是在偷懶”:或者對即將發生的懶惰抱有現實的態度。我的意思是,也可以在原始彙編器中編寫一個安全的網站,但實際上這很可能不會發生。
這些因素中的大多數也存在於其他語言中。MD5與PHP有何關係?
同樣[非常不安全]:在外部輸入上使用“ unserialize()” [最常見的可實際利用的攻擊媒介]。PHP有很多_vulnerabilities_,但是在現實世界中通常很難利用它們。
munkeyoto
2016-06-28 22:04:12 UTC
view on stackexchange narkive permalink

與任何其他語言(Java,Rails等)相比,PHP都一樣,或更安全或更不安全。這全都與編碼有關。是否進行製衡,以偏轉,防禦,防止或減輕攻擊。引用:

WhiteHat Security使用.NET,Java,ASP,PHP,Cold Fusion和Perl對30,000多個網站進行了漏洞評估。使用最廣泛的語言是.NET(佔Web應用程序的28.1%),Java(佔24.9%)和ASP(佔15.9%)。

...

編程語言.Net每個插槽,Java 11.32和ASP 10.98的平均漏洞為11.36。最安全的語言ColdFusion每個插槽有六個漏洞。 Perl每個插槽有七個漏洞,PHP有10個漏洞。

...

Java佔發現的漏洞的28%,ASP佔15%。報告說:“同樣,必須考慮使用該語言編寫的應用程序的數量以及網站的複雜性。” PHP也佔發現的漏洞的15%。 ColdFusion僅佔漏洞的4%,Perl佔2%。 ( source

這並沒有說明根據良好的編碼慣例如何開發網站。例如,如果您使用每種語言的非熟練(缺乏術語)程序員,則這些數字可能會相反,而perl的漏洞最多,而.Net的漏洞最少。一切都歸結為代碼本身應該做什麼。在將代碼投入開發之前,是否已對其進行編程以執行其唯一功能並進行了篡改/濫用測試?

有很多安全性備忘單最佳實踐指南,以及涉及安全性問題的其他文章,但這是一種情況客戶會根據其提供者的建議而感到厭倦。她說,要說服您的客戶允許您使用PHP創建網站,這可能是一個障礙,因為這變成了“他說”。如果我仍然想使用PHP,我可能會使用的一種方法是創建一個演示站點,然後對它使用漏洞評估掃描程序(Acunetix,AppScan,Burpsuite)來檢查缺陷。如果找不到任何內容,我將向該報告提供詳細說明您對兩個客戶端構建的安全狀態的報告,並以可以提供給提供商的方式(PDF等)進行創建。

對於沒有資格使用Java的等式聲明,我會格外小心,因為安裝JRE(如果同時啟用了JRE,則更是如此)對於客戶端本身就是安全隱患,對服務器而言更是如此。
.Net不是一種編程語言。
@BalinKingOfMoria,,當有人在編程語言的上下文中說“ .Net”時,他們通常是指帶有.Net / CLR運行時的C#。有時,他們指的是帶有.Net / CLR運行時的Visual Basic.NET。
@Mark讓我感到奇怪的是,他們不僅不使用適當的名稱,而且他們也沒有正確使用大寫字母。
@NateDiamond:我的猜測是,它引用[JAVA servlet](https://en.wikipedia.org/wiki/Java_servlet),它不需要在任何客戶端中安裝JRE。
.net是相同的低級語言,無論您是否使用c#,VB,php,f#等編寫它。
@lepe好一點,儘管它確實要求將它安裝在服務器本身上,但這仍然是威脅向量。
因此,在您參考的報告中,它說11%的站點是PHP,但是發現的漏洞中有15%。如果您假設漏洞應該在各種語言之間平均分配,那代表的數量將超出您預期的36%。Java和.NET在漏洞中所佔的比例也很高,但分別僅為12%和11%。按照該指標,PHP在該報告中具有(到目前為止)最差的統計信息。
對我來說,這個答案就像是說所有汽車都一樣安全,僅僅是指關節駕駛員就是問題所在!我認為談論一種語言本質上是不准確的,而不是談論很難發現該種語言的錯誤。PHP的類型很弱,這會導致犯其他語言永遠不會犯的錯誤。本質上,該語言允許您犯這些錯誤。把所有的責任都放在開發人員上來編寫完美的代碼是一個錯誤,並且說這純粹是一個編碼問題會錯了重點。編碼器和語言很難分開。
有趣的是,PHP站點“沒有像.NET或Java站點那樣大或複雜的趨勢,但仍然遭受許多相同的問題困擾”。因此,基本上,儘管PHP站點明顯更簡單,複雜程度更低,但其漏洞與更複雜的.NET或Java站點一樣多。這就像注意到一百萬個LOC應用程序具有與100k LOC應用程序相似的絕對錯誤數,然後得出結論,兩者的質量相似。
@Voo“因此,基本上,儘管PHP站點非常簡單和復雜,但其漏洞卻與復雜站點一樣多。”實際上,這比那更糟。如上文所述,在使用PHP構建的網站中發現了不成比例的漏洞。因此,根據引用的此報告,這些站點更簡單,每個站點具有**更多**漏洞。
在您說它“同樣安全”之前,請閱讀[這篇文章](http://phpsecurity.readthedocs.io/en/latest/_articles/PHP-Security-Default-Vulnerabilities-Security-Omissions-And-Framing-Programmers.html)-特殊的URI和其他功能可能會啟用漏洞,如果您查看PHP文檔,它們**甚至沒有提到那些不受信任的輸入可能發生的XML漏洞**。舉例來說,將其與Python進行對比-他們的[xml docs](https://docs.python.org/2/library/xml.html#xml-vulnerabilities)的主頁顯示了每個受支持的解析器可能存在的漏洞
作為程序員,我堅決不同意PHP與其他語言一樣安全的原則。並不是說您不能用PHP編寫安全程序,而是PHP使它變得不合理地困難,同時使編寫不安全的程序變得異常容易。
@dandavis .NET根本不是一種語言,這就像說IBM PC是一種語言一樣。大多數其他.NET語言所比較的低級語言是CIL。這些愚蠢的困惑幫助了新生。
@NoBugs PHP手冊獨立於語言而進行維護,儘管與我所見過的相比,它是一個了不起的官方資源。隨意撰寫有關XML安全性的頁面。現在,關於是否有人真的會*閱讀*並*理解*使用PHP或Python的文檔,這是一個不同的問題...
@IMSoP _Sams在24小時內自學PHP,MySQL和Apache也是有用的資源,但實際上建議不要在使用SELECT語句查詢時轉義-搜索“ SELECT”並查看384上的查詢(“ SELECT傳真號,鍵入從傳真,其中master_id = $ _POST [sel_id]“`和[其他頁面。](https://books.google.com/books?id=2hm3ScwClKIC&q=SELECT+WHERE#v=snippet&q=SELECT%20WHERE&f=false)。如果編寫PHP參考書的人不知道查詢的最佳方法,那麼為什麼我們期望普通的Joe PHP程序員能夠做到呢?
@SteveSether與汽車的類比距離很遠,您也沒有提供任何理由來解釋為什麼弱類型語言在定義上是不安全或較不安全的。更不用說弱類型的含義沒有公認的定義
@ClaudiuCreanga請閱讀“ PHP是糟糕的設計的分形”作為實際參數。我要提出的要點是對問題進行總體了解。真實的論點不能在評論中完成。
@NoBugs因此,為了抵制我的建議,即手冊不應該被視為核心語言的一部分,您需要進一步擴展定義,以使PHP作為一種語言顯然對世界上每個出版社的輸出都負有責任?我敢肯定,還有很多糟糕的Ruby和Java書籍;我不確定這能證明什麼。
-1
-1
fluffy
2016-06-29 06:23:06 UTC
view on stackexchange narkive permalink

PHP的一個基本問題實際上是CGI事物模型的一個基本問題(儘管 mod_php 陷入困境,PHP還是基於此模型的)-即面向用戶的數據是混合在一起的使用腳本,例如用戶上傳以成為可執行腳本。這並不是PHP本身的問題,但是在系統上完全可以使用PHP使得它成為一個很大的攻擊面。例如,相當多的WordPress插件的安全性問題就來自此方面。

基於CGI的傳統部署在歷史上通過僅允許CGI腳本從受信任的目錄(如 / cgi-bin / ),但許多共享主機提供商最終放寬了對“便利性”的限制,並且在整個PHP中也普遍存在這種便利。

許多基於PHP的現代應用程序經常使用 .htaccess 作為一種快速,骯髒的請求路由機制,確實有助於緩解這些問題,但這遠非通用,而且仍然不是很容易解決。

在我看來,PHP的最大問題在於,可以很容易地在任意配置了它的服務器上執行任意PHP代碼,因此,用PHP編寫的代碼不一定比編寫的代碼更安全或更安全。其他語言(儘管其標準庫在編寫se時並沒有任何幫助治愈代碼),PHP腳本的執行機制通過PHP的優點提出了巨大的安全挑戰,甚至在服務器上也是如此。

HashHazard
2016-06-28 21:52:42 UTC
view on stackexchange narkive permalink

我同意您的評估,即使用PHP並不一定會帶來安全風險。有些供應商出於與WordPress被視為安全風險的大致相同的原因而迴避PHP。很受歡迎越流行,就越有更多的精力投入到開發漏洞利用中。 。底線:安全風險是與平台無關的安全風險。更改腳本語言不會減輕與編寫/開發/實施代碼不良相關的安全風險。

WordPress *存在安全風險。即使是核心,也有糟糕的編碼實踐和悠久的漏洞歷史。
@Jacco是的,但是在許多應用程序的開頭都有糟糕的代碼。WordPress主要是針對性的,因為它很流行。在最近的幾次迭代中,該內核進行了一些改進,儘管還遠遠不夠完善。
命名一個沒有悠久歷史的流行應用程序/系統。哦,是的,android
@ClaudiuCreanga真的嗎?* [android](http://androidvulnerabilities.org)*是您要用作沒有悠久漏洞歷史的系統的示例嗎?
Bristol
2016-06-28 22:51:40 UTC
view on stackexchange narkive permalink

如果只想包含一個標準的頁眉/頁腳,則PHP可能會過大-簡單的服務器端包含可以做到這一點。

如先前的回答所述,PHP並不是天生的危險。但是,如果您在服務器上不需要完整的腳本語言,則最佳安全實踐是不安裝一種。如果您說過無論如何都要在服務器上安裝PHP,那麼只要您不做任何愚蠢的事情,使用它所產生的額外風險大約為零。除非您以某種方式從URL參數解析文件名,否則包含模板並不愚蠢。

聯繫表單將需要某種API和數據庫來支持在有人提交時的POST請求。這部分的編寫水平將如何使事情成敗-無論您使用哪種語言,如果是SQL數據庫,那麼SQL注入都值得關注;如果以某種方式在網頁中將用戶的輸入回顯給用戶或客戶端,則需要考慮(java)script注入,並且所有內容均應正確轉義為HTML。與聯繫表相比,使用include會盡可能安全。

如果您只想要一組網頁,而不是交互式Web應用程序,那麼最終的安全性是使用靜態網站生成器-服務器只需要提供文件即可,從而大大減少了攻擊面。

所以:

聲稱使用任何PHP腳本(無論多麼簡單)都是固有的安全性問題有多少道理?

這樣說,幾乎沒有。包含標頭腳本當然不是漏洞。不需要時首先安裝PHP並不是最佳的安全實踐,安裝並在安全補丁發佈時不定期對其進行更新是一個潛在的問題,因為沒有負責由誰負責這些更新的策略-完成網站設計後,客戶將負責此工作嗎?還是託管服務提供商?如果客戶端對此感到擔心,那麼他們首先不應該在服務器上安裝PHP。如果沒有,那麼就沒有安全相關的理由不在您知道自己在做什麼的地方使用它。

“在不需要的時候首先安裝PHP並不是最佳的安全做法,安裝並在安全補丁發佈時不定期對其進行更新是一個潛在的問題。”……擔心!不幸的是,它是共享主機,因此在這方面沒有太多選擇。:/我必須詳細了解服務器端包含,謝謝!
@Yumecosmos如果是共享託管,則託管服務的其他租戶比PHP本身面臨的風險要大得多。共享主機通常不願意為眾多(有時數千個)租戶之一安裝某些設備,並且會提出各種理由來避免這種情況。一個簡單的“您正在共享主機上,您所看到的就是您所得到的”會更加誠實(並且完全公平)。
-1
Neil Davis
2016-06-29 06:16:09 UTC
view on stackexchange narkive permalink

語言和工具並不是天生不安全的,糟糕的代碼和安全實踐也不是。

由於php的進入門檻很低,因此不了解網絡安全性和安全編碼的人會造成安全問題

不是工具,而是使用它的猴子;-)

用任何語言編寫的代碼都是不安全的。

語言可能並非天生就不安全,但是它們可以*在其設計中深深根植適當的安全原則。PHP *沒有*,這是一種輕描淡寫的說法。參見https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/
這就是每個人都應該學習Python的原因!抱歉,“另一種語言很爛,所以學習Python!”網站格式錯誤。您也可以在Python中編寫垃圾。我已經修好了很多。對於能力不強的程序員來說,Python並不是靈丹妙藥。您使用雇主已根據客戶要求的標準語言編寫代碼,在我的情況下,則使用客戶想要的代碼。我不知所措。我使用Python,php,Java,.net,Perl進行編碼,甚至維護一些舊的冷融合站點。請不要劫持帖子以推動Python議程。
*我*在任何地方都沒有提到Python。我什至還沒有*學習* Python(儘管我將要)。以常識的名義,您如何將我先前的評論解釋為“推動Python議程”令人困惑。但是您在這裡的答案基本上等於“沒有一種語言比任何其他語言都更安全”,這是胡說八道。([此答案](http://security.stackexchange.com/a/128601/96753)提供了有關原因的一些詳細信息。)
您提供了指向狂熱的Python福音派觀點的鏈接
-1
Python [xml docs](https://docs.python.org/2/library/xml.html#xml-vulnerabilities)的主頁顯示了每個受支持的解析器可能存在的漏洞。雖然PHP也具有這些漏洞,但它們並未在[xml閱讀器文檔](http://php.net/manual/zh/book.xmlreader.php)上提及。:(不幸的是,即使是普通的PHP書籍也都有帶有sql注入的示例。
“您也可以在Python中編寫垃圾”。那是個稻草人。該論點是PHP使很難為此處和其他地方提到的無數論點(記住`register_globals`?)編寫正確的代碼,而不是說您也不能用其他語言編寫錯誤的代碼。
這些評論都沒有使我的原始答案中的觀點無效。您可以使用任何語言安全地編碼。反之亦然。程序員必須安全地了解他們的工具和代碼。如果您認為任何語言都可以為您做到這一點,那麼您就不了解安全性。
+1,但;為什麼每個人都認為/聲明PHP的進入門檻較低,這與網絡安全有何關係?與那相比呢?Ruby,Python,Java,C,Perl?我將承認Perl的障礙更高,但是大多數Ruby / Python福音主義者都吹噓說那裡的語言比正常的切入點要低。老實說,我認為像Java這樣的類型化語言的入口點要比未類型化的語言低。實際上,當我用PHP編寫代碼時,我會鍵入所有內容。我要說的是,PHP在其時代比其他大多數語言都有更高的切入點。
@Voo在php中早已死亡。每種語言都有不安全的功能
@Claudiu使用該語言已有十年之久(直到2012年才刪除),甚至是默認語言。列舉一個不贊成使用的功能,該功能在任何其他主流語言中都達到相同的瘋狂水平。關鍵是:如果您以其他任何主流語言提出過類似的建議,那麼它將立即被駁回。
twigg
2016-07-25 16:30:55 UTC
view on stackexchange narkive permalink

“他們不願意,因為託管公司告知他們使用PHP是一種安全問題,這可能會使某人闖入cPanel並獲得對該網站的控制權”。

如果託管公司認為需要cPanel來運行PHP,然後才能移動主機



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...