是一年护网季,现在甲方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小时内与您取得联系。