曾凡鋒 孫亮
摘 要 隨著計(jì)算機(jī)技術(shù)的發(fā)展,越來越多的高校采用在線考試的方式。同時(shí),在線考試系統(tǒng)的安全性,就愈加的重要。本文主要對(duì)在線考試系統(tǒng)的安全性進(jìn)行了闡述,對(duì)該系統(tǒng)的安全性和可靠性進(jìn)行了論證。希望在深入地探討和交流中,系統(tǒng)能夠得到進(jìn)一步改進(jìn)和完善,功能得到提升。
【關(guān)鍵詞】安全 在線考試 身份認(rèn)證 數(shù)據(jù)庫
隨著信息化和網(wǎng)絡(luò)化在高校的迅速發(fā)展,也隨著高校IT基礎(chǔ)建設(shè)的不斷加強(qiáng),無紙化考試成為一種最新趨勢(shì),逐步代替?zhèn)鹘y(tǒng)的紙質(zhì)化考試。由于Web自身存在的安全性問題,以及web系統(tǒng)開發(fā)人員對(duì)安全問題的疏忽,導(dǎo)致系統(tǒng)極易受到黑客的攻擊或被黑客篡改了數(shù)據(jù),導(dǎo)致系統(tǒng)崩潰或其他問題。本文就基于Web系統(tǒng)安全機(jī)制方面的問題進(jìn)行了分析,Web系統(tǒng)的安全性除了受Web應(yīng)用程序設(shè)計(jì)的影響,還包括運(yùn)行Web應(yīng)用程序的操作系統(tǒng)及數(shù)據(jù)庫等因素的影響。
1 訪問控制
在線考試系統(tǒng)的數(shù)據(jù)庫服務(wù)器采用Mysql,后臺(tái)包含了與考試相關(guān)的各種數(shù)據(jù),包括用戶信息、試題信息、組卷方案信息、成績信息等。除了采用Mysql與Windows 相結(jié)合的方式登錄數(shù)據(jù)庫服務(wù)器來實(shí)現(xiàn)安全性的身份驗(yàn)證方式以外,還根據(jù)不同用戶權(quán)限的設(shè)定和劃分,避免使得用戶在使用時(shí)獲取到身份不相符權(quán)限,或者頁面缺少身份驗(yàn)證,用戶不經(jīng)身份驗(yàn)證就打開相應(yīng)的頁面等問題。不同類別用戶的功能確定不同的操作對(duì)象和操作級(jí)別,從源頭保證數(shù)據(jù)操作的安全。通過建立角色,將訪問許可集中授予角色,之后將需要擁有這一許可的用戶加到角色中,這些用戶即繼承角色的訪問許可。需要撤銷用戶的訪問許可時(shí),將用戶從角色中刪除即可。
本系統(tǒng)中,有三種用戶角色,分別為管理員、教師、學(xué)生,其有各自權(quán)限:
(1)管理員權(quán)限:可以對(duì)教師、學(xué)生、試題信息進(jìn)行增刪改查。
(2)教師權(quán)限:組卷管理,查看學(xué)生信息(包括每個(gè)學(xué)生的試卷信息)。
(3)學(xué)生權(quán)限:考試,查詢成績。
2 程序設(shè)計(jì)問題漏洞
不管Web程序設(shè)計(jì)基于哪種語言或腳本,因使用語言或腳本本身就有部分缺陷導(dǎo)致產(chǎn)生安全漏洞,比如對(duì)特殊字符的判斷或者會(huì)話管理漏洞等。例如在php中的“cookie會(huì)話”漏洞,入侵者自己在URL中創(chuàng)造一個(gè)假的會(huì)話標(biāo)識(shí)(ID),并將其提交給服務(wù)器,服務(wù)器被欺騙以為會(huì)話是合法的,會(huì)創(chuàng)建一個(gè)會(huì)話。這個(gè)漏洞使得攻擊者可以竊取會(huì)話并裝扮成一個(gè)合法用戶自由訪問程序。
我們需要對(duì)特殊字符進(jìn)行轉(zhuǎn)義,代碼如下:
if (!function_exists('func_safe')) {
function func_safe($data, $ignore_magic_quotes = false) {
if (is_string($data)) {
$data = trim(htmlspecialchars($data)); //防止被掛馬,跨站攻擊
if (($ignore_magic_quotes == true) || (!get_magic_quotes_gpc())) {
$data = addslashes($data); //防止sql注入
}
return $data;
} else if (is_array($data)) //如果是數(shù)組采用遞歸過濾
{
foreach ($data as $key => $value) {
$data[$key] = func_safe($value);
}
return $data;
} else {
return $data;
}
}
}
3 腳本語言等惡意代碼的防范
惡意代碼不同于網(wǎng)絡(luò)病毒,雖然它的破壞力和對(duì)系統(tǒng)造成的損害沒有病毒和木馬程序那么大,但對(duì)系統(tǒng)的穩(wěn)定運(yùn)行而言依然是必須根除的隱患。網(wǎng)絡(luò)考試平臺(tái)系統(tǒng)特別要注意防范這一類的安全性問題,所以相關(guān)的系統(tǒng)安全設(shè)置是必須的,有一類安全漏洞對(duì)于系統(tǒng)管理員來講是很常見的,那就是系統(tǒng)中的復(fù)制功能。客戶端的用戶可以通過鼠標(biāo)的右鍵來查看相關(guān)頁面的屬性,從而獲取系統(tǒng)的部分源代碼,這對(duì)于服務(wù)器的安全穩(wěn)定是非常有害的,所以必須通過相關(guān)手段禁止使用鼠標(biāo)右鍵。
采用JavaScript腳本語言來取消右鍵、中鍵功能并通過偽靜態(tài)技術(shù)隱藏源代碼的示例如下:
function whichButton(e){
var ev = window.event || e;
var code = ev.keyCode || ev.which;
var btnNum = ev.button;
if (btnNum==2){
alert("禁止鼠標(biāo)右鍵!");
ev.preventDefault();
ev.returnValue = false;
} else if(btnNum==1){
alert("禁止鼠標(biāo)中鍵!");
ev.preventDefault();
ev.returnValue = false;
}
}
4 通信的安全性
為保證試卷等數(shù)據(jù)在傳輸過程中的安全,確保私有性和保密性,不會(huì)被可能使用網(wǎng)絡(luò)監(jiān)控軟件的竊聽者查看到,系統(tǒng)采用SSL加密傳輸。SSL是一個(gè)用來保證文件安全傳輸?shù)膮f(xié)議,可以在服務(wù)器和客戶機(jī)之間建立一條安全通道,從而實(shí)現(xiàn)在Internet中傳輸保密數(shù)據(jù)。在TCP協(xié)議族中,SSL位于TCP層之上、應(yīng)用層之下。這使它可以獨(dú)立于應(yīng)用層,從而使應(yīng)用層協(xié)議(諸如http)可以直接建立在SSL上。SSL協(xié)議由SSL記錄協(xié)議和SSL握手協(xié)議兩部分組成:SSL記錄協(xié)議建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持;SSL握手協(xié)議建立在SSL記錄協(xié)議之上,用于在實(shí)際的數(shù)據(jù)傳輸開始前通信雙方進(jìn)行身份認(rèn)證(協(xié)商加密算法、交換加密密鑰等)。
5 結(jié)束語
保證系統(tǒng)的安全穩(wěn)定運(yùn)行是一切工作的基礎(chǔ)。由于網(wǎng)絡(luò)本身的原因,給在線考試的安全和管理帶來了潛在的威脅。本文針對(duì)在線考試系統(tǒng)數(shù)據(jù)安全性要求較高的特點(diǎn),在系統(tǒng)中采用了多層次的安全技術(shù),并以案例驗(yàn)證了策略方法的可行性和有效性。
參考文獻(xiàn)
[1]馬玉芳.淺析Web服務(wù)器安全策略[J].信息安全與技術(shù),2014(6).
[2]王重英,李艷,盧瓊.基于Web架構(gòu)模式的安全性能分析與研究[J].信息技術(shù),2014(9).
[3]譚前進(jìn),趙前程.Web系統(tǒng)安全威脅研究[J].洛陽師范學(xué)院學(xué)報(bào),2014(2).
作者簡介
曾凡鋒,現(xiàn)為北方工業(yè)大學(xué)計(jì)算機(jī)學(xué)院副教授。研究方向?yàn)樾畔踩?/p>
作者單位
北方工業(yè)大學(xué)計(jì)算機(jī)學(xué)院 北京市 100144