[發明專利]一種增強JavaScript函數封裝性的方法無效
| 申請號: | 201310378376.1 | 申請日: | 2013-08-27 |
| 公開(公告)號: | CN103440440A | 公開(公告)日: | 2013-12-11 |
| 發明(設計)人: | 吳明暉;呂嘉 | 申請(專利權)人: | 浙江大學城市學院 |
| 主分類號: | G06F21/12 | 分類號: | G06F21/12;G06F9/44;G06F11/36 |
| 代理公司: | 杭州宇信知識產權代理事務所(普通合伙) 33231 | 代理人: | 張宇娟 |
| 地址: | 310015 浙*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 增強 javascript 函數 封裝 方法 | ||
技術領域
本發明涉及軟件安全領域,更具體的說是涉及一種增強JavaScript函數封裝性的方法。
背景技術
JavaScript(語言規范是ECMAScript),是一種廣泛用于客戶端網頁開發的腳本語言,最早是在HTML上使用的,用來給HTML網頁添加動態功能,然而現在JavaScript也可被用于網絡服務器,如Node.js。不同于服務器端腳本語言(例如PHP與ASP),JavaScript主要被作為客戶端腳本語言在用戶的瀏覽器上運行,其源代碼在發往客戶端運行之前不需經過編譯,而是將文本格式的字符代碼發送給瀏覽器由瀏覽器解釋運行,不需要服務器的支持。所以在早期程序員比較青睞于JavaScript以減少對服務器的負擔,而與此同時也帶來另一個問題:安全性。隨著服務器的強壯,雖然現在的程序員更喜歡運行于服務端的腳本以保證安全,但JavaScript仍然以其跨平臺、容易上手等優勢大行其道。
函數是JavaScript程序的基本結構,JavaScript程序由一組函數組成,只有確保目標JavaScript函數安全和可靠的執行,JavaScript程序才能被安全和可靠的執行,不產生危險和惡意的程序行為。
但是目前,由于JavaScript語言的某些動態語法特性,例如函數閉包和原型繼承,缺乏有效的函數封裝性機制支持,破壞了傳統的軟件模塊化原則,容易引起JavaScript程序的可靠性和安全性問題。
而主流的靜態面向對象語言一般具有訪問權限控制符和完善的函數封裝性機制,如果可以借鑒主流靜態面向對象語言的封裝性機制,來設計一種增強JavaScript函數封裝性的方法,將有利于提高JavaScript程序的模塊化和實現隱藏,增加JavaScript程序的安全性和正確性。
發明內容
為解決上述問題,本發明的目的在于提供一種安全可靠、便于程序員學習和使用的增強JavaScript函數封裝性的方法,以增強JavaScript函數的封裝性,提高JavaScript程序的模塊化和實現隱藏,增加JavaScript程序的安全性和正確性。
為實現上述目的,本發明的技術方案為:
一種增強JavaScript函數封裝性的方法,包括如下步驟:
S1:附加訪問權限控制符到JavaScript函數,定義JavaScript函數的封裝性;
S2:根據步驟S1提出的JavaScript函數訪問權限控制符和JavaScript函數封裝性定義,設計JavaScript程序預處理系統生成JavaScript函數的監控代碼;
S3:運用JavaScript函數監控代碼,在運行時監控JavaScript程序的運行過程,阻止違反JavaScript函數封裝性定義的函數調用。
進一步的,所述步驟S1中的訪問權限控制符設置為字符A、字符B和字符C,所述JavaScript函數的封裝性定義如下:
使用字符A修飾目標函數時,允許當前函數所在范圍的語句調用目標函數,禁止其它訪問控制范圍內的語句調用目標函數;
使用字符B修飾目標函數時,允許當前函數所在范圍的語句調用目標函數,允許友員函數內部范圍內的語句調用目標函數,禁止其他訪問控制范圍內的語句調用目標函數;
使用字符C修飾目標函數時,允許目標函數所在范圍的語句調用目標函數,允許從目標函數的外部范圍的函數原型繼承的函數調用目標函數,禁止其它訪問控制范圍內的語句調用目標函數。
優選的,所述字符A、字符B和字符C分別設置為current、friend和inherit。
進一步的,所述步驟S2中,預處理系統根據目標函數的封裝性定義掃描目標函數的程序上下文,生成目標函數的監控代碼,其具體步驟如下:
S21:掃描附加訪問權限控制符的目標函數,生成目標函數的包裝函數;?
S22:用步驟S21中生成的包裝函數代碼替換源程序中的目標函數代碼;
S23:在步驟S22中生成的程序前面附加對JavaScript面向方面擴展庫的調用;
S24:根據目標函數的訪問權限控制符,在步驟S23生成的程序后面附加相應的授權代碼,授權代碼利用JavaScript面向方面擴展庫監控訪問控制范圍內的目標函數的調用,對正確的目標函數調用進行授權;
S25:在步驟S24生成的程序后面附加檢查函數的定義,檢查函數的參數是目標函數名稱,測試對目標函數的調用是否正確;
S26:將步驟S25生成的程序替換包含目標函數的源程序。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江大學城市學院,未經浙江大學城市學院許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310378376.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:電子設備的解鎖控制方法及系統
- 下一篇:農業旱災致災因子危險性評估方法





