基礎(chǔ)知識(shí)

1. ajax 跨域問題

2. xss 琉兜,csrf 等前端安全問題陨溅,原理是什么,如何防范

3. 如何去理解javascript的異步概念

4. promise饲鄙,async凄诞,await,你用過哪些忍级,可以跟我說說使用場景帆谍、技巧等,如果瀏覽器不支持的情況下轴咱,怎么辦

5. 多人協(xié)作的情況下汛蝙,如何保證代碼規(guī)范和如何快速安全整合代碼

6. 頁面優(yōu)化手段有哪些,盡量提出10種以上

7. 描述一下瀏覽器緩存的原理朴肺,和緩存過程

/**

* 1窖剑、瀏覽器對(duì)于javascript的同源策略的限制,

* 同源指的是:相同域名,端口相同,協(xié)議相同,

* 只要有一個(gè)條件不符合就屬于跨域請(qǐng)求戈稿。

*

* 2西土、

* 1) XSS攻擊(Cross-Site Scripting)跨站腳本攻擊。

* 能注入惡意的HTML/JavaScript代碼到用戶瀏覽的網(wǎng)頁上器瘪,從而達(dá)到Cookie資料竊取翠储、會(huì)話劫持、釣魚欺騙等攻擊橡疼。<攻擊代碼不一定(非要)在 script標(biāo)簽 中>

* 防范:

* a:HttpOnly? ? 瀏覽器禁止頁面的JS訪問帶有HttpOnly屬性的Cookie援所。

* b: 對(duì)于用戶輸入操作,需要做格式及內(nèi)容檢查

* c:輸出檢查? ? 在變量輸出到html頁面時(shí)欣除,可以使用編碼或轉(zhuǎn)義的方式來防御XSS攻擊

* d: 對(duì)于需要輸出script標(biāo)簽或者HTML標(biāo)簽或style標(biāo)簽住拭,我們可以通過js先進(jìn)行轉(zhuǎn)碼再渲染到頁面。

*

* 2) CSRF攻擊跨站請(qǐng)求偽造(通常偽造一個(gè)正常的http請(qǐng)求)历帚。

* 本質(zhì):重要操作的所有參數(shù)都是可以被攻擊者猜測到的滔岳。攻擊者預(yù)測出URL的所有參數(shù)與參數(shù)值,才能成功地構(gòu)造一個(gè)偽造的請(qǐng)求挽牢。

* 防范:

* a:? 驗(yàn)證碼谱煤、? Referer Check 檢查請(qǐng)求是否來自合法的源(可被偽造)。

* b: Token使用Anti-CSRF Token在URL中保持原參數(shù)不變禽拔,新增一個(gè)參數(shù)Token刘离。Token的值是隨機(jī)的(必須使用足夠安全的隨機(jī)數(shù)生成算法,或者采用真隨機(jī)數(shù)生成器)睹栖,其為用戶與服務(wù)器所共同持有硫惕,可以放在用戶的Session中,或者瀏覽器的Cookie中野来。 注意保密恼除,盡量把Token放在表單中(構(gòu)造一個(gè)隱藏的input元素),以POST提交曼氛,避免Token泄露豁辉。

*

* 3令野、異步加載也叫非阻塞模式加載,瀏覽器在下載js的同時(shí),還會(huì)執(zhí)行后續(xù)的頁面處理.

*

* 4、用過promise秋忙,Promise 是異步編程的一種解決方案彩掐,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更強(qiáng)大。

* 使用場景:通常我們需要異步請(qǐng)求數(shù)據(jù)的時(shí)候灰追,為了避免傳統(tǒng)的ajax請(qǐng)求回調(diào)地獄,可以使用promise狗超。

* 用過async await:這兩方法通常是配合使用的弹澎,你可以理解為他們是promise的加強(qiáng)版

* 因此使用場景相似。

*

* 5努咐、多人協(xié)作苦蒿,對(duì)于代碼規(guī)范我們可以先規(guī)定一套規(guī)范,所有成員都必須按照這套規(guī)范來書寫代碼渗稍,

* 對(duì)于協(xié)作方面佩迟,我們可以借助第三方工具,比如git或者svn -->一個(gè)代碼版本管理工具竿屹,

* 只要我們使用這些工具报强,就能快速的進(jìn)行代碼的整合。

*

* 6拱燃、

* a: 優(yōu)化圖像

* b: 去掉不必要的插件

* c: 減少DNS查詢(DNS lookups)

* d: 把CSS文件放在頁面頂部秉溉,而JS文件放在底部

* c: 利用瀏覽器緩存

* e: 使用 CSS Sprites 整合圖像(即可以適當(dāng)使用精靈圖)

* f: 壓縮CSS和JavaScript

* g: 啟用GZIP壓縮,在服務(wù)器上壓縮網(wǎng)站的頁面

* h: 代碼層面的優(yōu)化

*? ? 1) 少用全局變量

*? ? 2) 用 innerHTML 代替 DOM 操作,減少 DOM 操作次數(shù)碗誉,優(yōu)化 javascript 性能

*? ? 3) 緩存DOM節(jié)點(diǎn)查找的結(jié)果

*? ? 4) 避免全局查詢

*? ? 5) 避免使用with(with會(huì)創(chuàng)建自己的作用域召嘶,會(huì)增加作用域鏈長度)

*? ? 6) 避免圖片和iFrame等的空Src∠保空Src會(huì)重新加載當(dāng)前頁面弄跌,影響速度和效率

*? ? 7) 盡量避免寫在HTML標(biāo)簽中寫Style屬性

*

* 7、瀏覽器與服務(wù)器通信的方式為應(yīng)答模式尝苇,即是:瀏覽器發(fā)起HTTP請(qǐng)求 – 服務(wù)器響應(yīng)該請(qǐng)求铛只。那么瀏覽器第一次向服務(wù)器發(fā)起該請(qǐng)求后拿到請(qǐng)求結(jié)果,會(huì)根據(jù)響應(yīng)報(bào)文中HTTP頭的緩存標(biāo)識(shí)茎匠,決定是否緩存結(jié)果格仲,是則將請(qǐng)求結(jié)果和緩存標(biāo)識(shí)存入瀏覽器緩存中,簡單的過程如下圖:

* 即:

* 瀏覽器每次發(fā)起請(qǐng)求诵冒,都會(huì)先在瀏覽器緩存中查找該請(qǐng)求的結(jié)果以及緩存標(biāo)識(shí)

* 瀏覽器每次拿到返回的請(qǐng)求結(jié)果都會(huì)將該結(jié)果和緩存標(biāo)識(shí)存入瀏覽器緩存中

*

* */

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凯肋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子汽馋,更是在濱河造成了極大的恐慌侮东,老刑警劉巖圈盔,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異悄雅,居然都是意外死亡驱敲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門宽闲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來众眨,“玉大人,你說我怎么就攤上這事容诬∶淅妫” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵览徒,是天一觀的道長狈定。 經(jīng)常有香客問我,道長习蓬,這世上最難降的妖魔是什么纽什? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮躲叼,結(jié)果婚禮上芦缰,老公的妹妹穿的比我還像新娘。我一直安慰自己押赊,他們只是感情好饺藤,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著流礁,像睡著了一般涕俗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上神帅,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天再姑,我揣著相機(jī)與錄音,去河邊找鬼找御。 笑死元镀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的霎桅。 我是一名探鬼主播栖疑,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼滔驶!你這毒婦竟也來了遇革?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎萝快,沒想到半個(gè)月后锻霎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揪漩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年旋恼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奄容。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冰更,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出昂勒,到底是詐尸還是另有隱情冬殃,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布叁怪,位于F島的核電站,受9級(jí)特大地震影響深滚,放射性物質(zhì)發(fā)生泄漏奕谭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一痴荐、第九天 我趴在偏房一處隱蔽的房頂上張望血柳。 院中可真熱鬧,春花似錦生兆、人聲如沸难捌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽根吁。三九已至,卻和暖如春合蔽,著一層夾襖步出監(jiān)牢的瞬間击敌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工拴事, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沃斤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓刃宵,卻偏偏與公主長得像衡瓶,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子牲证,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359