簡單web安全入門

基本原則

Secure by default

Secure by default, in software, means that the default configuration settings are the most secure settings possible……

《白帽子講Web安全》將其總結了下面兩條:

  1. 黑名單與白名單

盡量使用白名單汤徽。

  1. 最小權限原則

The principle of least privillege requires that in a particular abstraction layer of a computing environment, every module(such as a process, a user, or a program, depending on the subject) must be able to access only the information and resources that are necessary for its legitimate purpose.

簡單地說揽趾,就是系統(tǒng)只授予主體必要的權限竭宰,不要過度授權蹄胰。如:1)數(shù)據庫授權吼具,一般應用程序只需要針對數(shù)據進行增刪改查赡勘,而不需要對表結構進行操作哟冬。2)在Linux操作系統(tǒng)中楼熄,正常情況只需要使用普通賬戶登錄。

縱深防御原則

安全是一個整體浩峡】善瘢縱深防御,其實就是:這個“整體”的不同層次需要實施不同的安全方案翰灾,需要在正確的地方做正確的事缕粹。

數(shù)據與代碼分離原則

“注入”攻擊(如XSS、CRLF注入纸淮、SQL注入平斩、緩沖區(qū)溢出)產生的原因,就是代碼和數(shù)據沒有分離開咽块,而把“數(shù)據”當成“代碼”執(zhí)行了绘面。

不可預測性原則

不可預測性,能有效地對抗基于篡改侈沪、偽造的攻擊揭璃。如:1)操作系統(tǒng)為了提高緩沖區(qū)溢出攻擊的門檻,使用ASLR讓進程的椡ぷ铮基址隨機變化瘦馍。2)使用token防止CSRF攻擊。

同源策略

In computing, the same-origin policy is an important concept in the web application security model.

同源策略是整個Web安全的基礎皆撩。

所謂同源扣墩,就是協(xié)議相同、域名相同扛吞、端口相同呻惕。
主要表現(xiàn)為:

  1. 無法讀取/寫入不同源的頁面的cookie、localstorage和indexDB滥比。
  2. 無法操作不同源的頁面的DOM亚脆。
  3. 默認情況下,不能發(fā)送不同源的ajax請求(當然有特殊辦法)盲泛。

XSS攻擊

  • XSS攻擊簡介

Cross-site scripting(XSS) is a type of computer security vulnerability typically found in web applications. XSS enables attacker to inject client-side scripts into web pages viewed by other users.

XSS攻擊濒持,通常指通過”HTML注入”篡改網頁键耕,插入惡意腳本,從而在用戶瀏覽網頁時柑营,控制用戶瀏覽器的一種攻擊屈雄。

雖然叫“跨站腳本攻擊”,但這是歷史原因官套,現(xiàn)在這種攻擊不一定和“跨站”有關酒奶。

XSS防御

  • 輸入輸出

    • 對用戶輸入的標簽進行過濾/encode。但是這樣做容易誤傷奶赔,因為有些場景就是需要用戶輸入標簽惋嚎。
    • 一般建議在將數(shù)據添加到DOM的時候對數(shù)據進行HtmlEncode或JavaScriptEncode,以預防XSS攻擊站刑。
  • HttpOnly

    • 頁面被XSS攻擊之后另伍,最常見的攻擊方式就是“cookie劫持”——用js讀取用戶的cookie,并將其發(fā)送到攻擊者的后臺绞旅,實現(xiàn)盜取用戶的登錄態(tài)的目的摆尝。
    • 這里可以將比較敏感、重要的cookie設置為HttpOnly玻靡,js就無法獲取被設置為HttpOnly的cookie结榄。

CSRF

Cross-site request forgery, also known as one-click attack or session riding...is a type of malicious exploit of a website where unauthorized commands are transmitted from a user that the website trusts.

跨站請求偽造,可以這么理解:攻擊者在用戶不知情的情況下囤捻,利用cookie發(fā)送的特點臼朗,以用戶的名義發(fā)送惡意請求

CSRF的本質原因是:請求是可偽造/可預測的蝎土。

假如請求是無法偽造/無法預測的视哑,那么攻擊者自然就無法替用戶偽造并發(fā)起請求:用戶第一次訪問頁面的時候,后臺生成一個token誊涯,存到session和cookie里面挡毅。后續(xù)用戶發(fā)起請求的時候,都在表單中帶上這個token暴构,后臺對token進行校驗跪呈。

這里token是不可預測和不可偽造的。

SQL注入

SQL injection is a code injection technique, used to attack data-driven applications, in which nefarious SQL statements are inserted into an entry field for execution.

發(fā)生SQL注入的本質原因和XSS攻擊一樣取逾,沒有處理好代碼與數(shù)據分離,把用戶輸入的數(shù)據當成代碼運行了耗绿。

防止SQL注入:

  1. 使用參數(shù)化查詢:將SQL語句和參數(shù)分開提交給DB,而不是自己拼完整的字符串砾隅,這個需要庫的支持误阻。
  2. 小心地對輸入字符串進行escape,如使用mysql_real_escape_string

CRLF注入

CRLF也是一種注入攻擊究反,一般是指在http header注入CRLF這兩個字符寻定,導致改變了HTTP包的語義。

在將數(shù)據設置為http header的時候精耐,要注意這個問題狼速。防止攻擊的辦法也很簡單,過濾CRLF這兩個字符即可卦停。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末唐含,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子沫浆,更是在濱河造成了極大的恐慌,老刑警劉巖滚秩,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件专执,死亡現(xiàn)場離奇詭異,居然都是意外死亡郁油,警方通過查閱死者的電腦和手機本股,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桐腌,“玉大人拄显,你說我怎么就攤上這事“刚荆” “怎么了躬审?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蟆盐。 經常有香客問我承边,道長,這世上最難降的妖魔是什么石挂? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任博助,我火速辦了婚禮,結果婚禮上痹愚,老公的妹妹穿的比我還像新娘富岳。我一直安慰自己,他們只是感情好拯腮,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布窖式。 她就那樣靜靜地躺著,像睡著了一般疾瓮。 火紅的嫁衣襯著肌膚如雪脖镀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音蜒灰,去河邊找鬼弦蹂。 笑死,一個胖子當著我的面吹牛强窖,可吹牛的內容都是我干的凸椿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼翅溺,長吁一口氣:“原來是場噩夢啊……” “哼脑漫!你這毒婦竟也來了?” 一聲冷哼從身側響起咙崎,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤优幸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后褪猛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體网杆,經...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年伊滋,在試婚紗的時候發(fā)現(xiàn)自己被綠了碳却。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡笑旺,死狀恐怖昼浦,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情筒主,我是刑警寧澤关噪,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站乌妙,受9級特大地震影響色洞,放射性物質發(fā)生泄漏。R本人自食惡果不足惜冠胯,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一火诸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧荠察,春花似錦置蜀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至焕盟,卻和暖如春秋秤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工灼卢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绍哎,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓鞋真,卻偏偏與公主長得像崇堰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子涩咖,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內容

  • 1海诲、不安全的隨機數(shù)生成,在CSRF TOKEN生成檩互、password reset token生成等特幔,會造成toke...
    nightmare丿閱讀 3,692評論 0 1
  • 攻擊活動 SQL(結構化查詢語言)注入 概述 一個SQL注入攻擊包含了從應用客戶端的輸入數(shù)據中注入或嵌入的方式,一...
    夏夜星語閱讀 909評論 0 0
  • http://www.91ri.org/tag/fuzz-bug 通常情況下闸昨,有三種方法被廣泛用來防御CSRF攻擊...
    jdyzm閱讀 4,172評論 0 5
  • ????前端安全一直是一個蠻嚴苛的問題敬辣,特別如果設計到money更是如此。了解前端安全零院,在平時的coding中主動...
    Johnson杰閱讀 643評論 0 6
  • “紋身的都是壞人”這算是一個萬年不變的偏見,深深扎在我們的心里村刨,老少皆宜告抄。 最近總看到那些段子,一個紋身的人怎么怎...
    O2想去北海道閱讀 201評論 0 0