阿摩線上測驗 登入

申論題資訊

試卷:112年 - 112 公務升官等考試_薦任_資訊處理:程式語言#117323
科目:程式語言
年份:112年
排序:0

申論題內容

三、請試述下列名詞之意涵:封裝(Encapsulation)、繼承(Inheritance)、 多型(Polymorphism) 、SQL 隱碼攻擊(SQL Injection Attack) 、預存程序 (Stored Procedure)。(25 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
封裝(Encapsulation)
意涵:
封裝是物件導向程式設計中的一個基本概念,它將物件的狀態(屬性)和行為(方法)封裝在一起,並對外界隱藏內部的實現細節。通過封裝,可以控制對物件屬性的存取和修改,提供數據的完整性和安全性。
特點:
將屬性和方法封裝在類別內部。
使用存取修飾符(如 public、protected、private)來控制對屬性和方法的存取。
通常通過公開的接口(getter 和 setter 方法)來訪問和修改屬性。
繼承(Inheritance)
意涵:
繼承是物件導向程式設計中的另一個基本概念,它允許一個類別(子類別)從另一個類別(父類別)繼承屬性和方法。通過繼承,子類別可以重用父類別的代碼,並可以新增或修改部分功能。
特點:
子類別繼承父類別的屬性和方法。
支持代碼重用和擴展。
子類別可以覆寫(override)父類別的方法來實現多態性。
多型(Polymorphism)
意涵:
多型是物件導向程式設計中的第三個基本概念,它允許不同類別的物件以統一的方式使用相同的方法。多型性使得一個方法可以有多種不同的行為,是實現靈活和可擴展程式設計的重要手段。
特點:
方法重載(Overloading):同一個類別中多個方法可以有相同的名稱,但參數不同。
方法覆寫(Overriding):子類別可以提供父類別方法的具體實現,使用相同的方法名稱和參數。
接口和抽象類別可以定義多型行為。
SQL 隱碼攻擊(SQL Injection Attack)
意涵:
SQL 隱碼攻擊是一種常見的網路攻擊手法,攻擊者通過在應用程式中插入惡意的 SQL 語句,從而執行未經授權的數據庫操作。這種攻擊方式利用了應用程式在構造 SQL 查詢語句時對用戶輸入缺乏有效的檢查和過濾。
防範方法:
使用預備語句(Prepared Statements)和參數化查詢來避免直接拼接 SQL 語句。
適當地過濾和驗證用戶輸入。
使用數據庫用戶權限管理來限制應用程式的數據庫操作範圍。
預存程序(Stored Procedure)
意涵:
預存程序是一種在數據庫中預先編寫並儲存的 SQL 程式,它可以包含查詢語句、條件語句、迴圈語句等。預存程序可以被應用程式調用,以執行一組複雜的 SQL 操作。
特點:
預存程序可以提高數據庫操作的效率,因為它們在數據庫端執行,減少了網路通信的開銷。
可以增強應用程式的安全性,因為預存程序可以隱藏複雜的數據庫邏輯,並減少 SQL 隱碼攻擊的風險。
支持參數傳遞和返回值,可以實現靈活的數據操作。
總結
封裝:將數據和方法封裝在類別內,控制存取。
繼承:子類別繼承父類別的屬性和方法,支持代碼重用。
多型:允許不同類別的物件以統一方式使用相同的方法。
SQL 隱碼攻擊:通過插入惡意 SQL 語句執行未授權的數據庫操作。
預存程序:在數據庫中預先編寫並儲存的 SQL 程式,提高效率和安全性。
這些概念是理解和實現現代軟體開發的基礎,熟練掌握它們有助於設計和實現高效、安全和可維護的程式碼。