阿摩線上測驗 登入

申論題資訊

試卷:108年 - 108 經濟部所屬事業機構_新進職員甄試_統計資訊:1.資料庫及資料探勘 2.程式設計#80788
科目:國營事業◆1.資料庫及資料探勘 2.程式設計
年份:108年
排序:0

題組內容

四、有一 Web 程式系統,由使用者輸入 ID 及地址,並由後端接收處理程式進行資料庫相關處 理,其前端畫面輸入欄位、對應之 Html 碼及後端接收處理程式如下,試回答下列問題: (14 分)5ddf17eaab41f.jpg後端接收處理程式及註解(雙斜線//後為註解):5ddf180976379.jpg

申論題內容

(三)請在不變動系統任何設定及前端輸入下,就你所知道之任一程式語言(含虛擬碼),在 後端接收處理程式新增字串處理函數 checkdata(xxxx),傳入參數為使用者輸入之資 料,經處理後傳回無風險之資料(除宣告函數外,每行程式碼皆須註解處理內容,未加 註解者不予計分)。(8 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
import re  # 引入正則表達式模組,用於資料處理
def checkdata(user_input):
    """
    處理使用者輸入資料,返回無風險之資料
    :param user_input: str,使用者輸入的資料
    :return: str,經過處理後的安全資料
    """
    
    # 使用正則表達式去除所有非字母和數字的字符,僅保留字母和數字
    sanitized_input = re.sub(r'[^a-zA-Z0-9]', '', user_input)
    
    return sanitized_input  # 返回經過處理後的安全資料
# 示例使用
user_input = "Hello, World!123"
safe_data = checkdata(user_input)
print(safe_data)  # 輸出:HelloWorld123
註解說明
import re:
引入Python的正則表達式模組,用於進行字符串模式匹配和替換。
def checkdata(user_input)::
定義一個名為 checkdata 的函數,接收一個參數 user_input,代表使用者輸入的資料。
sanitized_input = re.sub(r'[^a-zA-Z0-9]', '', user_input):
使用正則表達式 re.sub 函數來處理 user_input 字符串。
正則表達式 r'[^a-zA-Z0-9]' 匹配所有非字母和數字的字符。
將匹配到的字符替換為空字符串 '',即去除所有非字母和數字的字符。
處理後的安全資料保存在變數 sanitized_input 中。
return sanitized_input:
返回經過處理後的安全資料。
user_input = "Hello, World!123":
示例輸入,包含字母、標點符號和數字。
safe_data = checkdata(user_input):
調用 checkdata 函數,處理示例輸入資料,返回安全資料。
print(safe_data):
輸出處理後的安全資料,結果為 HelloWorld123。
這段程式碼展示了如何使用Python的正則表達式模組來處理使用者輸入,過濾掉所有非字母和數字的字符,從而避免潛在的安全風險。