1、黑名單 白名單原則
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、網絡空間、營銷軟件、網站建設、都昌網站維護、網站推廣。
盡可能使用白名單,不使用黑名單。例如:要做限制過濾的時候,只提供一份可信任的白名單列表,比提供一份不可信任的黑名單
列表進行過濾要有效得多。另外,在白名單中應小心* 等通配符的使用。
2、最小權限原則
即是要注意系統(tǒng)只授予主題必須的權限,而不是過度授權。這樣能有效減少系統(tǒng),數(shù)據(jù)庫,網絡,應用等出錯的機會。
3、縱深防御原則
兩層含義:
A:在不同層面,不同方面實施安全方案。
例如:在設計安全方案時,盡可能考慮到web應用安全,os系統(tǒng)安全,數(shù)據(jù)庫安全,網絡環(huán)境安全等不同層面。共同組成防御體系。
B:在正確的地方做正確的事情,即是要在解決根本問題的地方實施有效的針對性的方案。
例如在對用戶輸入的html進行過濾時,要先進行語法樹的分析,而不是粗暴的進行< 等過濾,以免造成用戶本意想表達如1<2的意思。
4、數(shù)據(jù)與代碼的分離
像HTML injection sql injection SRLF injection X-PATH injection 均可以根據(jù)該原則設計出真正的解決方案。
以sql 為例,產生的原因正是因為無法判斷用戶的輸入和該執(zhí)行的sql語句而直接造成的損失。
如 select fieldlist from table where field =' ';
當輸入為:
select fieldlist from table where field =' 'anything' or 'x'='x' '; 這時候整個數(shù)據(jù)表的數(shù)據(jù)都將被返回。
5、不可預測性原則
數(shù)據(jù)與代碼分離是從漏洞的成因上做出防御,而不可預測性原則則是從克服***方法的角度看待問題。這是一種即使無法修復代碼,但是讓***變得無效
的成功的防御。
比如:讓程序的棧基址變得隨機化,使***程序無法準確猜測到內存地址,而大大的提高***的門檻。再比如在一些應用系統(tǒng)中,使用隨機的id。那么如果***者再
想使用類似于
for(int i=0;i<1000;i++){
delete(url="xxx?id="+i);
}
這種方法的***將無效,起碼是先爬取id的值,再進行delet操作。同樣的,現(xiàn)在利用token,利用加密算法,隨機算法,哈希算法等,其實都可以找到這條原則的影子。