作者red0whale (red whale)
看板PHP
標題[討論] PHP是個漏洞多且不安全的後端語言?
時間Thu May 7 11:30:19 2020
昨天我的資料庫老師說
PHP是一個漏洞相當多、非常不安全
而且是外面業界鮮少在使用的後端程式語言
他還說PHP只是給學生在用的程式語言
而他建議我們做網頁後端最好使用像C#或Java之類的需要編譯過後才能使用的「編譯語言
」
而非使用像PHP這種「直譯語言」
原因之一在於PHP是以明文儲存程式碼
在外面業界如果使用明文丟後端程式語言給其他人,早就造成安全上的漏洞了
所以非常不建議使用PHP作為網頁後端的程式語言
另外,他也提及
用PHP連後端資料庫是非常危險的
原因也是因為直譯式的關係
如果用PHP的話,資料庫的帳號密碼之類的也很容易外露造成資安漏洞
所以他說在外面業界幾乎很少有人會使用像PHP這種直譯式程式語言作為網頁後端的程式
語言
也非常不建議使用PHP,因為它本身的漏洞實在太多,且相當不安全
不曉得各位有什麼看法?
對於PHP不安全、漏洞多有沒有什麼能夠補救的辦法?
順帶一提,我也有想過,像Facebook、Wikipedia 之類的大網站不也是使用PHP作為其中
一種程式語言嗎?
雖然昨天也有跟老師討論到這個
不過老師是跟我說,那些大網站使用PHP也只是用來做顯示前端的一些部分
真正使用後端像是連資料庫之類的根本不可能使用PHP來寫
他說如果他們用PHP做後端的話是相當不安全、風險很高的作法
然而,我已經使用PHP做為後端語言已經好幾年了
聽到老師這番話要我全部改學另一種語言而且又要把先前已寫好好幾萬行的PHP碼全部都
改寫
我認為這是個相當相當浩大的工程
希望各位可以給些建議和看法
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.4.100 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1588822221.A.F9A.html
1F:推 alpe: 呵呵呵~ 你說你也用好幾年了打臉你老師不難吧 05/07 11:42
其實當下我也不知道該怎麼反駁老師
也不敢直接去“打臉”老師(畢竟他是我的老師,而且也怕再吵下去可能不會有什麼好下
場)
不過PHP真的有像他講的這麼不安全、漏洞超多,且是個不適合出社會在業界寫後端程式碼
的語言嗎?(疑惑)
2F:→ ddoll288: BufferUnderRun vs stackOverFlow 嘻嘻 05/07 11:46
3F:推 swallowcc: 通常寫出爛扣弄出漏洞的都是人啊 XD 不敢說語言本身絕 05/07 11:46
4F:→ swallowcc: 對完美無缺,但在那之前開發者要自己守好本份 05/07 11:46
5F:推 swallowcc: 認真說的話,我是覺得這老師對 PHP 有成見吧 ._." 05/07 11:48
6F:→ ddoll288: 我常看到java寫的API吐NULL出來呢 05/07 11:51
7F:推 newton2009: 那個人根本就想讓你幫他改code吧... 扯到程式語言不 05/07 13:16
8F:→ newton2009: 知是何居心... 05/07 13:16
9F:噓 tsao1211: 這老師水準太低了 05/07 13:24
10F:→ tyh11: 趕快換老師 05/07 14:30
11F:→ tkdmaf: 你問他:那為什麼你會在這當老師? 05/07 14:55
當下聽到老師講的這些話,我一開始也信以為真的認為PHP是個漏洞很多、且官方也沒再
繼續維護的後端程式語言
不過看板上的推文好像都不認同我老師的看法
那麼想請問一下各位有什麼理由或原因來駁斥老師的說法呢?
PHP直譯式程式語言真的會比C#、JAVA編譯式程式語言還來得不安全嗎?
(這裡的安全是指像如果直接丟明碼給別人修改或維護之類的會不會造成資安風險,或是
有著更多的安全漏洞之類的)
再者,PHP連資料庫是不是真的比其他種後端語言而言更危險呢?
現在大型網站的頁面用PHP寫的是不是真如老師所言,只用來做前端表面顯示的東西、而
不做真正後端如連後端資料庫或處理一些敏感資料?
謝謝
※ 編輯: red0whale (114.44.4.100 臺灣), 05/07/2020 15:27:22
12F:推 howder5566: 所以你的老師現在還在學界當老師,出不了學界 05/07 15:39
13F:推 swallowcc: JAVA C# 丟給別人維護也是要明碼啊 = =" 05/07 15:43
老師的意思好像是說「編譯程式」可以做成類似接口的形式
把編譯好的二進制檔案提供給別人繼續使用及維護,但別人仍然看不到原先編譯前的明碼
不知道老師的意思是不是這樣…
還是說丟給公司的程式可以弄成編譯好的形式,別人也無法偷窺裡面的程式碼內容?
14F:→ swallowcc: 當你的code交到別人手上的時候,就不要想太多了,這跟 05/07 15:44
15F:→ swallowcc: 什麼語言都無關,會爬扣找洞的人就是會去找 05/07 15:44
16F:→ swallowcc: 至於連資料庫,如果還是要用mysql_connect這種過時的, 05/07 15:45
17F:→ swallowcc: 確實是不太好,建議還是換成新的連法,但最主要的仍然 05/07 15:47
※ 編輯: red0whale (114.44.4.100 臺灣), 05/07/2020 15:48:51
18F:→ swallowcc: 是你的扣有沒有照規矩寫,會不會用 . 去湊字串湊 SQL? 05/07 15:47
19F:→ swallowcc: 回你那句,那他真的太淺,java 要 decompile 很容易的 05/07 15:48
20F:推 swallowcc: 有心一點的會把 code 作混淆,但也不是不能閱讀反推 05/07 15:51
22F:推 swallowcc: 而且php都出7.4了,這要說沒在維護應該是鬼遮眼了... 05/07 16:01
23F:→ mintu: 可以去找 Wikipedia 用的 MediaWiki source code,來打臉 05/07 17:06
24F:→ mintu: 那個老師 05/07 17:06
26F:→ mintu: .jpg 05/07 17:10
27F:噓 readper: 業界鮮少使用是三小智障言論 05/07 17:19
28F:→ readper: 資料庫連線資訊請使用kms之類的服務好嗎? 05/07 17:20
29F:→ readper: 老師停在十年前 你自己寫了幾年看來也沒去理解安全性阿 05/07 17:21
30F:噓 tsao1211: 你的問題和你老師的意見都太基礎了,像是初學者在問的。 05/07 17:38
31F:→ tsao1211: 而且自己google就有答案,Facebook都用PHP起家的,還聽 05/07 17:38
32F:→ tsao1211: 你老師那套? 05/07 17:38
其實一開始並不是我問的
有個同學好像要做網頁打工請教老師,該同學跟老師說他是寫PHP做後端網頁的
然後老師就開始唸說PHP很糟糕漏洞很多霹靂啪啦的
建議我們不應該使用PHP
我才接下去問老師關於PHP的事情
結果就… 讓老師很不耐煩
他甚至還把PHP比喻成木門、其他後端編譯程式比喻成鐵門
說兩種雖然都有可能會被攻破,只是看哪種容易被駭之類的
總之,當時老師就是覺得PHP不好,且在他觀念裡就是一個漏洞多非常不安全的程式語言
這樣
33F:推 ek0519: 應該是淡江的老師 05/07 19:23
怎麼知道的
通靈??
34F:→ chongruei: 敢質疑我大Facebook? 05/07 19:24
※ 編輯: red0whale (114.44.4.100 臺灣), 05/07/2020 20:01:27
35F:→ protonchang: 淡江哪個教授這樣說啊? 那我寫Python應該也蠻不安 05/07 20:06
36F:→ protonchang: 全的...? 直譯類語言都不安全 我覺得有點太武斷了 05/07 20:09
37F:→ crossdunk: 業界很少用?他的資料哪來的 05/07 20:58
38F:→ tkdmaf: 叫你老師直接來這跟大家聊,他就知死了,我諒他不敢來。 05/07 23:33
39F:推 supersonictw: 跟語言本身沒關係 坑是人寫的。 05/08 06:31
40F:推 swallowcc: 什麼門都好啦,重點是住戶,木門住戶都把門鎖緊,加裝 05/08 09:26
41F:→ swallowcc: 防盜設備,隨時跟警局連線,鐵門把鑰匙掛門上,偶爾還 05/08 09:26
42F:→ swallowcc: 不關門,那誰會被偷很明顯啊 05/08 09:26
43F:推 swallowcc: 一樣都做好防護的話,除非你家裡面放了金山銀山,不然 05/08 09:29
44F:→ swallowcc: 絕大部分的小偷只會摸摸鼻子去找下一家偷 05/08 09:30
45F:→ MagicMomo19: 鄙視鏈又出現了?寫久的都知道,最大的漏洞是人.. 05/08 17:04
46F:推 PTTNella: 原來平行世界是真的 05/08 17:44
47F:→ hitgun: 既然是資料庫老師,只聽資料庫部分就好 05/09 00:32
48F:→ ddoll288: 有些人是學一套走江湖數十年,不見得真有本事,是因為 05/09 09:49
49F:→ ddoll288: 底層很多東西根本不會變,但是就是不會去學也不需要學 05/09 09:50
50F:→ ddoll288: 新的技能,叫他上戰場實戰可能馬上就倒了,只能活在 05/09 09:51
51F:→ ddoll288: 被保護的金字塔內,向不的不接受的人傳授怪怪的理論 05/09 09:51
52F:推 im93: 換程式不如換老師 05/09 20:14
53F:推 bill0205: 難怪只能待在學界 絕大多數漏洞都馬人為的 05/10 00:32
54F:推 ctrlbreak: 危險的是人, 不是語言. 05/10 02:49
55F:推 twsphere: 業界很少用 ?? 你要不要換個老師比較快 05/11 11:52
56F:推 g781: Bug是人導致和語言本身無關。如果按你老師的神邏輯,Python 05/28 19:07
57F:→ g781: 也是直譯語言不安全,如果用Python寫了一堆後端程式也很不安 05/28 19:07
58F:→ g781: 全,這樣Google不就很也很不安全。PHP也可以對程式加密,只 05/28 19:07
59F:→ g781: 是要多花錢。如果用編譯語言就安全,這樣就沒有debug這問題 05/28 19:07
60F:→ g781: 。建議換老師,他可能PHP寫不好被駭過,就把問題推給PHP。 05/28 19:07
61F:→ newhandfun: google工程師跟我說他們用python,fb用的是改造後的php 06/25 11:43
62F:→ newhandfun: ,真的豪危險 06/25 11:43
63F:噓 kobala: 我百分之百確定這老師不懂資安 07/31 17:36