是一年護網季,現在甲方hw已經主流采用SIEM平臺了,IPS、IDS、WAF、FW、EDR等安全數據經過安全態勢感知這個二道販子展現在藍隊面前,勉強能用,今天來說一下SIEM中常見的CEF格式,Common Event Format,公共事件格式,國外主流的ArcSight和Splunk日志導出采用的都是CEF格式,而IBM的QRadar使用的是LEEF。
ailx10
網絡安全優秀回答者
網絡安全碩士
去咨詢
CEF格式說下:
CEF:Version|Device Vendor|Device Product|Device Version|deviceEventClassId|Name|Severity|Extension
CEF格式舉例如下:
CEF:0|h3c|fw|1000|10086|worm successfully|10|src=10.0.0.1 dst=2.1.2.2 spt=1232 |
前7個字段的含義解析如下:
ello,親愛的小伙伴們,歡迎瀏覽“使用CefSharp和Javascript實現網絡爬蟲”。
最近我學習使用CefSharp和Javascript實現網絡爬蟲,自動獲取“悟空問答”站點的問題標題和地址信息,以及實現了“Bilibili”直播網站自定義彈幕自動回復,并做成了兩個工具小軟件,通過自動化程序提高效率。我準備將具體實現過程記錄下來,并分享給感興趣的小伙伴。
網絡爬蟲是一種按照一定規則,自動抓取互聯網上站點頁面信息的程序或腳本。說到網絡爬蟲,大家首先想到的是用Python實現,既高效又方便。不過對于不太熟悉Python,而對于熟悉C#或Javascript的小伙伴們,可以嘗試使用CefSharp和Javascript實現網絡爬蟲。此外,使用CefSharp和Javascript做成的工具軟件,具有方便安裝、發布,使用界面友好的優點,如果您還增加了不愿意公開的代碼邏輯,可以使用C#語言編譯加以保護。
首先我們簡單了解一下CefSharp和Javascript。CefSharp可以簡單理解為基于Google Chrome的開源版本—ChromiumEmbeddedFramework(CEF)實現的瀏覽器控件,CefSharp瀏覽器控件功能豐富且強大。 因為基于CEF,CefSharp支持Webkit & Chrome中實現的HTML5特性,并且在性能上,也接近Chrome。CefSharp是在C#應用程序中嵌入瀏覽器的最優選擇,支持WinForms和WPF兩種類型應用程序,英文好的小伙伴可以訪問 : http://cefsharp.github.io/ 網址進行深入學習。
而Javascript是一種廣泛使用的 Web前端編程語言,使用CefSharp和Javascript實現網絡爬蟲需要使用Javascript進行DOM操作,DOM(Document Object Model ,文檔對象模型)是一種用于操作XML、HTML文檔常用方式,JavaScript都能通過DOM接口操作到每個HTML節點。下一篇我將對使用CefSharp和Javascript實現網絡爬蟲過程中會使用到的C#和Javascript主要知識進行介紹 。
efSharp是一個基于Chromium的開源.NET庫,可以在C#應用程序中嵌入Web瀏覽器。以下是使用CefSharp內嵌網頁的步驟:
1. 安裝CefSharp NuGet包:在Visual Studio中打開NuGet包管理器,搜索并安裝CefSharp.WinForms或CefSharp.Wpf,根據應用程序的類型選擇相應的包。
2. 創建CefSharp瀏覽器控件:在Windows Forms或WPF應用程序中,創建一個WinForms或WPF控件,并將其設置為CefSharp的瀏覽器控件。例如,在Windows Forms應用程序中,可以使用以下代碼創建一個CefSharp瀏覽器控件:
```csharp
using CefSharp;
using CefSharp.WinForms;
public partial class Form1 : Form
{
private ChromiumWebBrowser browser;
public Form1()
{
InitializeComponent();
Cef.Initialize(new CefSettings());
browser = new ChromiumWebBrowser("https://www.google.com");
browser.Dock = DockStyle.Fill;
this.Controls.Add(browser);
}
protected override void OnFormClosing(FormClosingEventArgs e)
{
Cef.Shutdown();
base.OnFormClosing(e);
}
}
```
3. 加載網頁:使用瀏覽器控件的Load方法加載網頁。例如,可以使用以下代碼加載本地HTML文件:
```csharp
browser.Load("file:///C:/path/to/index.html");
```
4. 與JavaScript交互:使用CefSharp提供的方法,可以在C#代碼和JavaScript代碼之間進行交互。例如,可以使用以下代碼在JavaScript中調用C#方法:
```csharp
public class JsObject
{
public void ShowMessage(string message)
{
MessageBox.Show(message);
}
}
browser.RegisterJsObject("myObj", new JsObject());
```
在JavaScript中,可以使用以下代碼調用C#方法:
```javascript
myObj.ShowMessage("Hello from JavaScript!");
```
上面的代碼會在C#中彈出一個消息框,顯示“Hello from JavaScript!”。
注意,為了保證安全性,CefSharp默認禁用了跨域請求。如果需要在CefSharp中進行跨域請求,可以在CefSharp的初始化代碼中添加以下選項:
```csharp
var settings = new CefSettings();
settings.CefCommandLineArgs.Add("disable-web-security", "1");
Cef.Initialize(settings);
```
這樣就可以在CefSharp中進行跨域請求了。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。