阿摩線上測驗
登入
首頁
>
程式語言
> 113年 - 113 司法特種考試_三等_檢察事務官電子資訊組:程式語言#122108
113年 - 113 司法特種考試_三等_檢察事務官電子資訊組:程式語言#122108
科目:
程式語言 |
年份:
113年 |
選擇題數:
0 |
申論題數:
9
試卷資訊
所屬科目:
程式語言
選擇題 (0)
申論題 (9)
一、請回答下列問題:
(一)請簡要說明何謂「SQL 資料隱碼攻擊(SQL injection)」 。
(二)系統使用下列 SQL 陳述(SQL statement)查詢資料庫以判斷是否為合法使用者。當該 SQL 陳述被執行時會檢查輸入的 username 與 password 是否存在於資料庫中,如果執行該 SQL 陳述有回傳任何結果,則表示認證成功,反之認證失敗。
SELECT * FROM db_user WHERE username='<USERNAME>' AND password='<PASSWORD>'
假設惡意攻擊者可以輸入任意<USERNAME>或是<PASSWORD>的資料,請以一個例子說明該 SQL 陳述會產生 SQL injection 的問題。
(三)請舉出至少兩種常見預防「SQL injection 攻擊」的方法並簡要說明。
(一)請說明何謂程式語言的遞迴函式,撰寫遞迴函式需要那些條件? (10 分)
(二)請用迴圈(Iteration)以及遞迴分別撰寫計算第 n 個費式數列的值。費氏數列由 0 和 1 開始,之後費氏數列的值就是由之前的兩數相加而得出。程式語言可使用 C/C++、Python 或是 Java 撰寫。 (10 分)
(三)請說明為何用遞迴函式撰寫第 n 個費式數列的值,其執行的時間會比用迴圈來得多。(15 分)
(四)請修改上述的費式數列遞迴函式版本,使其可以加快執行的時間(接近迴圈的版本) 。(15 分)
(一)這個程式依據題目說明以及預期呈現結果,會有三種錯誤,分別是語法錯誤(Syntax error)、執行錯誤(Run-time error)以及語意錯誤 (Semantic error)。請分別指出是那些行數指令造成上述三種錯誤、錯 誤的原因以及修正之方法。 (15 分)
(二)請說明這個程式功能是否可以改為不使用陣列而節省記憶體空間的方法。若是,請說明如何修改程式;若否,請說明原因。(5 分)