賀紅
摘要:文章基于網絡安全的教學改革探索中職C語言程序設計課程,分析目前教學內容與網絡安全的匹配度低、學生的網絡安全意識不強、學生的安全編程能力較弱等問題,并提出完善教學評價機制的建議。
關鍵詞:網絡安全;C語言程序設計;教學評價
隨著互聯網技術的飛速發展和應用,網絡安全問題已經變得越來越重要。中職電子信息大類下計算機相關專業的人才培養目標多為面向IT行業的程序員、開發工程師等崗位從業人員。而隨著網絡技術的發展,越來越多的人趨向從事移動端開發、網絡編程與云計算等工作。網絡和信息安全的高要求對這些崗位從業人員網絡安全意識、安全編程能力等方面提出了新的要求。
C語言是應用程序的開發基礎,因其強大的功能性和靈活性,經常被用于開發網絡安全相關的工具和應用程序,因此C語言程序設計課程作為中職計算機相關專業的基礎課程,對培養學生的編程能力、邏輯思維能力和解決實際問題的能力具有重要意義。然而,由于目前包含國家職業教育規劃教材在內的許多原版教材具有滯后性,以及部分教師存在的教學惰性,很多網絡安全新知識沒有很好地融入教學,導致學生缺乏網絡安全意識、基礎知識與技能。因此,考慮到網絡安全的重要性和C語言在課程中扮演的角色,基于網絡安全的中職C語言程序設計課程改革教學內容和教學方法十分必要且緊迫。
一、中職C語言程序設計課程存在的問題
(一)教材內容與網絡安全的匹配度低
中職C語言程序設計課程主要是教授學生C語言的基礎知識和編程技能,網絡安全則涉及網絡攻擊和防御技術、密碼學、漏洞分析、系統安全、Web安全、移動安全等知識。縱觀現有的大部分中職教材,在涉及網絡安全的內存管理、系統庫函數調用和代碼分析等內容方面匹配度很低。目前的教材內容不僅只涉及很小一部分安全領域的知識,而且與安全編程相關的教學案例和實踐內容偏少,對涉及黑客攻擊、惡意軟件、釣魚網站的預防等知識更是缺乏,這遠遠無法達到增強學生安全意識和安全實踐能力的目標。
(二)學生的網絡安全意識不強
隨著近年來網絡安全事件的頻繁發生,越來越多的學校開始強調網絡安全教育。絕大部分中職學生雖然對網絡安全有一定的認知,但在實際編程過程中仍然沒有將掌握的知識應用到實踐中,尤其是如何在實際編程中避免常見的安全隱患的意識還遠遠不夠。
(三)學生的安全編程能力較弱
學生主要學習C語言的基礎知識,實踐的機會并不多,再加上教材內容中的安全知識不夠,所以實際安全編程能力很弱,遠不能滿足目前信息技術發展對網絡安全應用人才的要求。
二、教學改革的實踐
(一)教材內容的優化與更新
筆者根據中職C語言程序設計課程教學的經歷,充分考慮到現代網絡安全趨勢,以中等職業學校計算機應用專業國家規劃教材《編程語言基礎——C語言(第5版)》為例,經過反思、探索和實踐,提出如下可行的優化與更新措施。
第一,增加安全相關章節。在教材中的相應章節后面,教師可以考慮新增一個小節,專門講解與本章C語言內容相關的網絡安全知識。例如,在字符數組部分增加格式化字符串攻擊小節,在分支結構部分增加條件漏洞小節等比較常見、難度不大且適合學生理解和掌握的C語言安全知識。
第二,在相關內容中直接融合安全知識。中職C語言程序設計課程中的有些內容是可以直接與安全知識融合起來進行教學的。比如,教師可以在數組、指針、字符串操作等編程基礎知識中,直接融合安全最佳實踐,針對不同的主題,通過提供安全的編碼示例或設置安全編程實踐活動,強調不安全的實踐可能導致的后果。又如,在講解字符串操作知識點時,教師可以設計一個存在strcpy安全漏洞的小程序供學生查因糾錯。
第三,為學生提供更新資源。由于網絡安全領域的知識更新速度很快,教師應給學生提供一些能反映當今網絡安全最新發展的在線資源,如安全論壇、博客、視頻教程等,能為學生提供有關最新威脅、漏洞披露和安全研究等非常有價值的學習資料,方便學生線上線下更全面地了解最新的安全知識。
第四,加入安全編碼規范。在教材末尾,教師可以列出一份簡明的C語言安全編碼規范供學生編程參考,幫助學生避免出現常見的安全錯誤。例如,教師可以對內存管理設置“始終在分配內存后釋放它,以防止內存泄漏”的編碼規范;對文件操作可以規定“在打開、讀取和寫入文件時,必須檢查文件是否存在”的編碼規范。
教材因有其使用周期,故具有一定滯后性。教師應根據社會的發展,不斷更新自己的知識,并結合實際教學情況,靈活地將最新的網絡安全知識融入教學。
(二)教學方法的創新
第一,融入安全知識的項目式學習。教師可以設計以安全為主題的小型編程項目貫穿一項主要內容,如構建一個簡單的密碼管理工具或加密算法的模擬項目。通過集合用戶認證、密碼存儲、密碼檢索等功能的項目實踐,學生可以更好地了解安全知識,并應用到實際編程中。
第二,設計攻防實戰模擬實踐。為提高學生的安全編程能力,教師可以利用已有的實訓條件創建一個安全實驗室環境,讓學生模擬攻擊和防御。例如,教師可以設計一個身份驗證安全的攻防實戰,讓學生在實踐中體會到安全的重要性。攻擊者可以利用gets函數(從標準輸入設備讀字符串函數)的不安全性故意輸入一個很長的字符串,以覆蓋程序棧上的其他數據,增加導致程序崩潰或執行不受控制的可能性。防御者則可以采用限制密碼嘗試次數等修復代碼來實施防御。此類攻防實戰能引導學生從模擬攻擊和防御兩個角度體驗安全問題帶來的后果,并嘗試采取措施來修復這些漏洞,提高安全編程能力。
第三,以真實安全案例驅動教學。教師可以選取一些真實的、因編程錯誤導致的安全事件以及最新的安全成果等作為案例驅動教學。例如,在講授緩沖區溢出的安全漏洞問題時,教師可以引用非常著名的安全事件——Heartbleed漏洞(心血漏洞),使學生看到真實世界中的安全威脅和編程的重要性,引導其樹立安全意識。教師再通過分析利用OpenSSL庫(開源的安全套接字層的密碼庫)進行逐步的漏洞修復過程,激發學生的學習興趣,促使其養成在編程時始終考慮安全性的良好習慣。
第四,引入網絡安全工具和交互式平臺教學。為更好保障學生在實際編程時代碼的安全性,教師還可以為學生提供如靜態代碼分析工具、fuzzing(模糊測試)工具等一些C語言的安全編程工具和在線交互式編程平臺,讓學生不僅能實時編程并得到即時反饋,還能更直觀地看到代碼中的潛在安全隱患。
第五,創設安全編碼工作坊。利用校企合作平臺,教師可以開設安全編碼工作坊,定期邀請專家或導師來為學生授課,分享企業實際經驗,提供安全編碼的建議和技巧。
第六,充分利用團隊合作機會與競賽活動。在整個教學實施過程中,教師引領學生從課中的攻防安全實戰練習,到課外參與團隊合作的編程項目實踐,再到積極參與各級網絡建設與運維、移動應用與開發等技能比賽活動,都可以系統化地強化學生的實際編程能力,讓學生在涉及一些保密與安全性問題的實際操作中逐步增強安全意識。
第七,跨學科教學。教師可以嘗試將中職C語言程序設計課程與HTML網頁制作課程、計算機組裝與維護課程等結合起來進行跨學科教學,共同設計一些項目或實驗。這樣可以讓學生從不同角度理解安全編程的應用,提高學生的綜合應用能力,以適應現代信息技術領域的需求。例如,教師可以設計生成一個HTML網頁,并演示在用戶輸入時如何通過用戶輸入長度限制和去除輸入中的換行符等處理來防止跨站腳本攻擊的跨學科教學案例,將C語言程序設計課程和HTML網頁制作課程融合起來。
(三)教學評價機制的完善
除采用教師評價、學生自評和學生互評外,教師還需要從三個方面完善教學評價機制。
第一,更新評價內容。隨著網絡安全領域的發展,教師需要定期更新網絡安全評價內容和標準,以確保評價的有效性和準確性。
第二,增加實戰性評價。教師應增設實際的安全編程任務和挑戰,評價學生的實踐操作能力和解決實際問題的能力。
第三,探索外部驗證環節。教師應通過引入行業專家和企業導師參與程序安全性方面的評價,獲取更為客觀和權威的教學效果反饋。
三、結論
基于網絡安全的中職C語言程序設計課程教學改革是一個反映行業需求、提高學生實際能力和應對當下網絡安全挑戰的重要探索。經過一系列的研究和實踐,筆者得出以下探究結論。
第一,網絡安全問題的凸顯和行業的需求,增加了C語言程序設計課程教學改革的緊迫性。網絡安全是一個關系國家安全和主權、人們工作和生活、社會穩定、民族文化的繼承和發揚的重要問題,并已經成為信息技術領域的重要分支,與編程密切相關,所以其在計算機行業應用領域的比重增大?;诖耍處煴仨殞語言程序設計課程進行基于網絡安全的教學改革,將網絡安全內容納入其中,幫助計算機應用技術相關專業的學生樹立起安全第一的觀念,為維護國家整體網絡安全作貢獻。
第二,教師通過教學內容的優化與更新、教學方法的創新,能幫助大部分學生在編程時主動考慮到網絡安全問題。例如,經過實際的模擬攻防實戰,學生的動手能力和問題解決能力得到了顯著的提高,增強了信息安全素養和綜合素質;通過在程序設計、移動應用開發等省市級技能競賽中取得好成績,學生提高了實際應用能力、就業能力。
第三,教師要與時俱進保持網絡安全敏銳度和持續學習力。在互聯網飛速發展的今天,計算機專業教師肩負著給學生開展網絡安全教育的責任。因此,一方面,教師要緊跟時代發展不斷進行研究,更新網絡安全的內容并融入教學,以培養符合時代發展需求的計算機應用人才;另一方面,教師在不斷增強自身安全意識的同時,還要注重加強與行業之間的交流和合作,不斷創新,以提高網絡安全教育的實際應用性,促進自身的專業化發展。
參考文獻:
[1]費葉琦,劉雨浩,馬竹樵.C語言程序設計課程教學問題及對策研究[J].中國教育技術裝備,2020(20).
[2]倪瑞曉.C語言編程技術的分析研究[J].計算機技術與發展,2009(12).
[3]李利華.計算機信息技術在技工院校網絡安全中的應用研究[J].科技與創新,2015(19).
[4]李前,藺琛皓,楊雨龍,等.云邊端全場景下深度學習模型對抗攻擊和防御[J].計算機研究與發展,2022(5).
[5]李蓬,崔寶江.基于C/C++代碼的靜態分析工具的比較研究[J].國際計算機科學技術與應用論壇,2010(12).
[6]劉達.通過HTML編碼防御XSS跨站腳本攻擊的研究[J].網絡空間安全,2016(7).
基金項目:湖南省教育科學研究工作者協會“十四五”規劃2021年度課題“中職信息技術專業教學相關問題研究”,項目編號:XJKX21B236。
(作者單位:長沙財經學校)