學習重點 程式與電腦基礎:掌握遞增運算、二分搜尋、繼承、補數表示法、開機韌體及系統指令。 網路原理:熟記協定功能與埠號,能計算子網路、廣播位址,理解乙太網路傳輸。 網頁與網路服務:分辨用戶端、伺服器端技術,以及 VPN、防火牆、Cookie 的用途。 資料庫與雲端:理解關聯式資料庫、正規化、共用鎖定、多表查詢及三大雲端服務模式。 資安與授權:辨識巨集病毒、加密與數位簽章、阻斷服務攻擊及創用 CC 要素。 核心觀念 一、程式邏輯與搜尋 ++i 是先遞增再取值;i++ 是先取值再遞增。「條件 ? A : B」在條件成立時取 A,否則取 B;若要更新變數,仍須配合指定運算。 追蹤迴圈應分別確認初值、進入迴圈的範圍、更新次數及離開時的值。例如 i、y 初值皆為 20,若以 while (++i < 100) 控制迴圈,並在 i > 40 時令 y 增加 1,則迴圈內 i 為 21~99,y 增加 59 次,最後為y=79、i=100。結束判斷時的遞增也要計入。 二分搜尋以已排序資料為前提,每次排除約一半範圍。n 筆資料的最壞比對次數為 ⌊log₂n⌋+1,亦即找最小整數 k,使 2ᵏ ≥ n+1。999 筆最多需10 次。 物件導向概念判斷關鍵 繼承子類別承接父類別的屬性與方法,使用時仍受存取權限限制。 封裝整合資料與方法,隱藏內部細節。 多形同一介面由不同物件呈現不同實作。 多載方法同名,但參數個數或型別不同。 二、數字表示、開機與系統指令 符號大小表示法及 1 的補數都有正零與負零;2 的補數只有一個零。求負數的 2 的補數表示,可將對應正數的位元全部反相再加 1。EBCDIC 是字元編碼,不是有號整數表示法。 傳統個人電腦開機先執行BIOS,進行硬體初始化與開機自我測試,再進入後續載入程序;現代電腦常採 UEFI。IO.SYS、COMMAND.COM、AUTOEXEC.BAT 均不是傳統開機最先執行者。 gpedit.msc 是 Windows 本機群組原則編輯器指令,在支援此工具的版本中,可設定關閉自動播放。 Linux 的 cat -n < test1 > test2 表示讀取 test1,加上行號後輸出至 test2。「<」指定輸入來源,「>」建立或覆寫輸出檔;「>>」才是附加到檔尾,「|」則將前一指令的輸出傳給下一指令。 三、網路協定與埠號 協定或服務主要功能與常見埠號 SMTP寄送、轉送電子郵件;傳統伺服器傳送服務使用 25。 POP3/IMAP存取、收取郵件;未加密預設埠分別為 110/143。 HTTP/HTTPS網頁服務;80/443。 FTP/TelnetFTP 控制連線為 21;Telnet 為 23。 RDP遠端桌面,預設 3389。 DNS名稱解析,常用埠 53;網址無法連線但 IP 可以時,優先懷疑 DNS。 DHCP自動提供 IP 位址、遮罩、閘道等設定。 NAT轉換網路位址;搭配連接埠轉換,可讓多台主機共用一個公有 IP。 ARP在 IPv4 區域網路上,查詢對應 IP 的 MAC 位址。 SNMP網路設備監控與管理。 3128 常見於 Squid 代理服務,8080 常作 HTTP 替代埠,均不是遠端桌面的預設埠。 四、子網路與乙太網路 IPv4 的 /n 表示網路前綴占 n 位元,區段共有 2 的(32-n)次方個位址。/29、/27、/25 分別含 8、32、128 個位址。這些前綴可直接按最後一段的區塊大小分段。 10.1.5.34/29 落在 32~39,網路位址為10.1.5.32/29,廣播位址為 10.1.5.39。 192.168.1.0/27 的廣播位址為192.168.1.31。 10.1.1.0/25 的廣播位址為10.1.1.127,其中的 .31 是一般主機位址。 一般子網路的主機位元全為 0 是網路位址,全為 1 是廣播位址;廣播位址也可用「區段起點+區段大小-1」計算。 傳統未加 VLAN 標籤的標準乙太網路訊框為 64~1518 bytes,包含 FCS,不含前導碼;過短或超出此標準範圍者視為異常。VLAN 標籤及巨型訊框另有規格,不能混用。 網卡通常接收目的為自身、廣播及已加入之多播的訊框;不會要求所有不同目的 MAC 的訊框都交上層處理。傳統共享媒介、半雙工乙太網路採 CSMA/CD,碰撞後採隨機退避再送,不是等待固定時間。 五、VPN、防火牆、Cookie 與網頁 VPN:透過共用網路建立邏輯上的私人通道,常搭配加密保護傳輸。 防火牆:依來源、目的位址、埠號等規則控制服務存取。代理伺服器主要代為存取服務,檔案伺服器提供檔案分享。 Cookie:由瀏覽器保存的小型資料,可記錄登入識別、偏好與瀏覽活動;不一定各自存成獨立文字檔。 單一登入:登入一次即可使用多個相關系統,重點是身分驗證整合。 傳統網頁中,HTML 由瀏覽器解析,JavaScript 通常在瀏覽器執行;Flash ActionScript 屬過往的用戶端技術。ASP.NET、PHP、JSP 則是常見伺服器端技術。JavaScript 也能用於伺服器端,不能一概認定只能在瀏覽器執行。 常見搭配為IIS 與 ASP/ASP.NET、Apache 與 PHP、Apache 結合 Tomcat 與 JSP/Servlet;其中 Tomcat 提供 JSP/Servlet 執行環境。伺服器能力取決於安裝及設定,IIS 亦可設定執行 PHP,不宜把常見搭配當成唯一可能。 六、資料庫與雲端 MySQL、Microsoft SQL Server 均屬關聯式資料庫。正規化透過適當拆分資料表及建立關聯,減少不必要的重複,避免新增、刪除與修改異常。 共用鎖定允許其他交易取得相容的讀取鎖,但會阻擋衝突的修改;實際讀取行為仍與隔離層級及版本控制機制有關。 多表查詢須交代輸出欄位、資料表、關聯條件及篩選條件。以學號連結學生與成績資料,可寫成: SELECT Score.Course, STUD.NAME, Score.SCFROM STUD, ScoreWHERE STUD.ID = Score.ID AND Score.SC > 90; SELECT 選欄位,FROM 指定資料表,WHERE 設定條件;AND 連接須同時成立的條件。GROUP BY 用於分組,ORDER BY 用於排序,不能取代學號的關聯條件。 雲端模式提供內容 IaaS基礎設施:運算、儲存及網路資源。 PaaS平台:應用程式開發、部署及執行環境。 SaaS軟體:使用者直接使用線上應用服務。 上述為三大基本分類;RaaS 不在此三類之中,但不能推論其他 XaaS 名稱一律不存在。 七、病毒、加密與創用 CC 巨集型病毒利用文件巨集,在開啟文件且巨集獲准執行時,可能感染其他文件或範本。檔案型病毒感染執行檔,開機型病毒感染開機區域;邏輯炸彈則依特定時間或條件觸發。 對稱式加密使用相同金鑰加解密;非對稱式機制使用公鑰與私鑰。SSL/TLS 利用握手機制建立工作階段金鑰,再以對稱式加密保護資料;金鑰建立方式依協定版本及演算法而異。 自然人憑證以公開金鑰基礎建設連結身分與公鑰,使用私鑰產生數位簽章,再以公鑰驗證;不是靠 Session Key 確認簽署者身分。DoS 使合法使用者無法正常取得服務;SET 是為網際網路信用卡交易設計的安全協定。 CC 要素意義 姓名標示 BY依條款標示作者、來源等資訊。 非商業性 NC利用不得以商業目的為主。 禁止改作 ND不得分享改作後的作品。 相同方式分享 SA分享改作成果時,須採相同或條款允許的相容授權。 「允許改作,分享時延續授權」的關鍵是SA。標準 CC 授權不將 ND 與 SA 組合使用。 常考陷阱 送信與收信混淆:SMTP 寄信,POP3、IMAP 收信;25 不是網頁服務埠。 IP 與 MAC 混淆:DNS 處理名稱解析,ARP 查詢區域網路上的 MAC。 只看位址尾數判廣播:必須連同前綴判斷;255.255.255.0 在常見設定中是遮罩,不能看到 255 就認定是廣播。 把常見搭配當技術限制:Apache 加 Tomcat 可提供 JSP;不能據此斷言 IIS 絕不能執行 PHP。 SQL 缺少關聯條件:只有成績篩選仍不足,兩表須以 STUD.ID=Score.ID 對應;大於 90 不包含 90。 混淆傳輸加密與身分驗證:Session Key 保護連線資料;憑證與數位簽章用於身分及簽署驗證。 忽略操作細節:碰撞後隨機等待;cat 的 -n 加行號;gpedit.msc 的名稱與副檔名都要正確。 記憶口訣 網路功能:「DNS 找 IP,ARP 找 MAC;SMTP 送,POP 收。」 雲端分類:「I 給基礎,P 給平台,S 給軟體。」 數字與授權:「一補兩個零,二補只一零;改作同享找 SA。」