官术网_书友最值得收藏!

1.3.5 安全地失敗

安全地失?。‵ail Safely)是指安全地處理錯(cuò)誤。安全地處理錯(cuò)誤是安全編程的一個(gè)重要方面。

在程序設(shè)計(jì)時(shí),要確保安全控制模塊在發(fā)生異常時(shí)遵循了禁止操作的處理邏輯。以代碼清單1-1為例。

代碼清單1-1 不安全地處理錯(cuò)誤


isAdmin = true;
try {
    codeWhichMayFail();
    isAdmin = isUserInRole("Administrator");
}
catch (Exception ex)
{
    log.write(ex.toString());
}

如果codeWhichMayFail()出現(xiàn)了異常,那么用戶默認(rèn)就是管理員角色了,這顯然導(dǎo)致了一個(gè)非常嚴(yán)重的安全風(fēng)險(xiǎn)。

修復(fù)這個(gè)問題的處理方式很簡(jiǎn)單,如代碼清單1-2所示。

代碼清單1-2 安全地處理錯(cuò)誤


isAdmin = false;
try {
    codeWhichMayFail();
    isAdmin = isUserInrole( "Administrator" );
}
catch (Exception ex)
{
    log.write(ex.toString());
}

在代碼清單1-2中,默認(rèn)用戶不是管理員角色,那么即使codeWhichMayFail()出現(xiàn)了異常也不會(huì)導(dǎo)致用戶變成管理員角色。這樣就更加安全了。

主站蜘蛛池模板: 成都市| 阳春市| 图木舒克市| 中西区| 沂南县| 镇坪县| 米林县| 锡林浩特市| 唐山市| 石城县| 富源县| 治多县| 扶风县| 东丽区| 定州市| 宁阳县| 吉木萨尔县| 六安市| 浦县| 页游| 河东区| 华坪县| 平陆县| 伊宁市| 南漳县| 建平县| 太白县| 兰溪市| 嘉黎县| 镶黄旗| 徐闻县| 隆德县| 岱山县| 阜南县| 临澧县| 天峻县| 双辽市| 竹溪县| 吴堡县| 辽宁省| 闸北区|