手动打造nortbarnyard可视化报警平台李晨光原创技术博客的技术博客

Snort:轻量级的开源IDS系统。

Acid(Analysis Console for Intrusion Databases) ***数据库分析控制台,它是一个基于PHP的分析引擎,可以搜索和处理snort具所生成的安全事件数据库。

BASE(Basic Analysis and Security Engine)直译为基本安全分析引擎,它用来查看Snort IDS告警的Web应用程序,是Acid的升级版。

Barnyard2 用来将Snort发出的告警事件存入数据库。

大家在安装基于Snort NIDS系统, 感觉很难,总是出错,其他安装Snort并不难,难的是准备工作做得不充分,如配置不当,当设置Snort的可视化报警时会遇到各种问题,例如:

手动编译安装Snort时所需的准备工作如下所示。步骤 1.准备软件环境。在安装前,必须在交换机上设置SPAN。中高端Cisco交换机都有SPAN功能。SPAN须为一个专用端口。以下是在虚拟机环境下的实验,须把网卡设置为混杂模式。步骤2.安装最新版VMware Workstations虚拟机,并准备远程连接 工具。步骤3.到异步社区的本书页面中统一获取安装资源。步骤4.使用镜像CentOS-6.8-x86_64-mini在虚拟机中安装操作系统。步骤5.重启系统后设置系统IP、网关及DNS,更新系统。默认安装时,网络IP是自动获取的,需要改成静态IP地址。#ifconfig -a //查看网卡配置信息#vi /etc/sysconfig/network-scripts/ifcfg-eth0 //编辑网卡配置文件DEVICE="eth0"BOOTPROTO="dhcp"HWADDR="00:0C:29:BA:53:4E"IPV6INIT="yes"NM_CO***OLLED="yes" //由于敏感词被限制此出为星号。ONBOOT="yes"TYPE="Ethernet"UUID="685d0725-02ab-41b9-b9bf-6a52fc68c0f8"

修改为静态IP地址的方法是将BOOTPROTO="dhcp"中的"dhcp"改为"static",然后增加以下内容(根据内网环境配置IP):IPADDR=192.168.x.yNETMASK=255.255.255.0GATEWAY=192.168.x.zDNS1=192.168.x.zDNS2=8.8.8.8 //DNS地址可以多个,要根据当地网络供应商进行添加

最后保存退出,重启网络服务。

准备工作完成之后,接着开始正式安装Snort。编译安装Snort需要如下10个步骤。步骤1.安装基本环境和依赖包。#yum install -y gcc gcc-c++ flex bison zlib-devel zlib-static libxml2 libpcap pcre-devel pcre-static libpcap-devel.x8664 tcpdump git libtool curl man make

● 安装DAQ。#cd daq-2.0.4#./configure

Build AFPacket DAQ module.. : yesBuild Dump DAQ module...... : yesBuild IPFW DAQ module...... : yesBuild IPQ DAQ module....... : noBuild NFQ DAQ module....... : noBuild PCAP DAQ module...... : yesBuild netmap DAQ module...... : no编译环境检查完成之后,我们可以看到AFPacket DAQ module,Dump DAQ module,IPFW DAQ module,PCAP DAQ module的状态都是“yes”只有这样才能继续编译软件包。

#make && make install

● 安装Snort 2.9(安装Snort前一定要正确安装libdnet和DAQ以及zlib)。#cd /usr/local/src/snort-2.9.7.0#./configure --enable-sourcefire#make && make install编译过程中没有报错信息即可进行安装。

步骤3.添加用户和组。创建用户和组,并设置权限。在root身份下解包的文件权限都与root有关,所以要修改成Snort用户的属主和相关权限。#groupadd -g 40000 snort //新添加一个Snort组#useradd snort -u 40000 -d /var/log/snort -s /sbin/nologin -c SNORT_IDS -g snort//将Snort用户加入Snort组,新建目录/var/log/snort,并且不允许登录系统

步骤4.配置Snort。● 新建目录/etc/snort/。#mkdir /etc/snort/

● 设置目录/etc/snort及其下所有文件的属主和属组。

#chown -R snort:snort *

这两个变量的默认值都是“any”,简单理解就是“默认监控一切”。但是我们需要进行适当修改,下面我们来设置网络变量,首将第45行的ipvar HOME_NET any改为ipvar HOME_NET 192.168.x.x网段,并写成CIDR格式。也可以添加多个网段,本实验中监控网段为192.168.11.0/24,来看下面的例子。ipvar HOME_NET [192.168.11.0/24] //如果不加限制,网段地址也可以改为"any"将48行ipvar EXTERNAL_NET any 改为 ipvar EXTERNAL_NET $HOME_NET

如果当前网段还有DNS、SMTP、HTTP、SQLServer、SSH服务,我们推荐用如下方法定义变量。

ipvar DNS_SERVERS $HOME_NETipvar SMTP_SERVERS $HOME_NETipvar HTTP_SERVERS $HOME_NETipvar SQL_SERVERS $HOME_NETipvar SNMP_SERVERS $HOME_NETipvar SSH_SERVERS $HOME_NET...

注意: 对于修改$HOME_NET、$EXTERNAL_NET变量为非必须项,对于初学者而言,不修改沿用原默认值any也可以。

但下面的相对规则路径就必须改成绝对路径了,否则启动snort时会报错。

第104行 var RULE_PATH ../ruls 改为 var RULE_PATH /etc/snort/rules第105行 var SO_RULE_PATH ../so_rules 改为var SO_RULE_PATH /etc/snort/so_rules第106行 var PREPROC_RULE_PATH ../preproc_rules 改为 var PREPROC_RULE_PATH/etc/snort/ preproc_rules第113行 var WHITE_LIST_PATH ../rules 改为 var WHITE_LIST_PATH /etc/snort/rules第114行 var BLACK_LIST_PATH ../rules 改为 var BLACK_LIST_PATH /etc/snort/rules

● 设置日志保存路径。第186行 config logdir:/var/log/snort/

步骤5.新建目录snort_dynamicrules并设置属主和属组权限。#mkdir -p /usr/local/lib/snort_dynamicrules#chown -R snort:snort /usr/local/lib/snort_dynamicrules#chmod -R 755 /usr/local/lib/snort_dynamicrules

步骤6.在/usr/sbin/目录下新建名为Snort的软链接文件。#cd /usr/sbin#ln -s /usr/local/bin/snort snort

步骤7.添加测试规则。我们在安装Snort时已经复制了很多规则文件,但这些文件内的规则默认都被注销了,先不要管这些注销的规则,下面我们来写一条规则。

加入如下内容:alert icmp any any -> $HOME_NET any (msg:"ICMP Packet Detected";sid:1000003;rev:1;)保存退出,我们就完成了第一条检测规则的编写。

注意:这里的参数“-T”表示测试完成之后即退出snort程序。

如出现“Snort successfully validated the configuration!”的提示,则表示安装配置成功。

Tips:以上命令中-A fast的含义如下。-A fast含义:该参数报警信息包括以下内容:

alert文件收到报警,代表这一步实验成功,如果收不到报警,请大家返回到第一步重新检查。实验步骤环环相扣,每个关键节点必须成功,下面要将这些报警存储到数据库。

注意:在上面介绍的第6、7步骤中如果没有设置正确的路径,那么在启动Snort时,就会出现找不到动态规则的文件,发生致命错误导致程序异常退出。ERROR:parser.c(5047)

将Snort报警存入MySQL数据库需要如下几个步骤。步骤1.安装MySQL数据库及PHP扩展。#yum install -y mysql-server mysql-devel php-mysql php-pear php-gd libtool php-imap php-ldap php-odbc php-xml php-pecl-apc#chkconfig --level 235 mysqld on //将MySQL服务设置为在运行级别为2、3、5时都是开启状态#/etc/init.d/mysqld start

步骤2.为数据库管理员root赋予密码(为调试方便暂设定纯数字密码)。#/usr/bin/mysqladmin -u root password '123456'

#mysql -u root -p //连接MySQL输入步骤2中设置的密码“123456”。

mysql>CREATE DATABASE snort; //新建数据库

mysql>USE snort;

mysql>CREATE USER 'snort'@'localhost' IDENTIFIED BY '123456';

下面授权用户snort对数据库的操作权限mysql>GRANT CREATE,SELECT,UPDATE,INSERT,DELETE ON snort.* TO snort@localhost IDENTIFIED BY '123456';

mysql>SET PASSWORD FOR 'snort'@'localhost'=PASSWORD('123456'); //为用户snort设置访问密码

mysql>SOURCE /usr/local/src/barnyard2-1.9/schemas/create_mysql; //通过引入文件create_mysql来创建数据库结构,该命令不可重复输入,在后面的安装BASE步骤中还会在snort库中写入多个表。该命令执行成功之后大家会看到下列提示信息:Query OK, 0 rows affected (0.01 sec)Query OK, 1 row affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.01 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.01 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 0 rows affected (0.00 sec)Query OK, 1 row affected (0.00 sec)Query OK, 1 row affected (0.00 sec)

执行完create_mysql脚本后,用户可以通过在mysql提示符下,运行下面的SQL语句来验证配置的正确性。mysql> SHOW TABLES;+------------------+| Tables_in_snort |+------------------+| data || detail || encoding || event || icmphdr || iphdr || opt || reference || reference_system || schema || sensor || sig_class || sig_reference || signature || tcphdr || udphdr |+------------------+16 rows in set (0.00 sec)

mysql>FLUSH PRIVILEGES; //刷新数据库权限

mysql>exit

注意:在导入barnyard2-1.9中的mysql数据库表时所在路径使用绝对路径。

下面这条语句用来设置数据库访问权限,其中定义了用户名为snort,密码为123456,数据库名称为snort,主机名为localhost。第318行 output database: log,mysql,user=snort password=123456 dbname=snort host=localhost

执行完这条命令之后,不会看到大量输出,只会出现以下三行提示信息:Spawning daemon child...My daemon child 12903 lives...Daemon parent exiting (0)Snort程序安静的在后台运行(“-D”参数表示以后台进程运行)。

Barnyard2 successfully loaded configuration file!Snort exitingdatabase: Closing connection to database "snort"

如果大家的机器也出现上述信息,说明程序可以正常运行,此时我们才能继续下面的操作。

● -d:指定Unified格式文件的路径,这里指定为/var/log/snort/,所有Unified文件必须放在该目录下。该参数为必选项。

● -w:该选项打开检验功能,告诉Barnyard检验文件名(也称为waldo文件)。该文件用于记录文件中最近处理的报警。如果不使用waldo文件,则Barnyard必须完整地载入一个日志文件,该参数的作用是将报警信息传送至***数据库。

步骤5.使用下述命令查询报警信息是否存入数据库。#mysql -u snort -p -D snort -e "SELECT COUNT(*) FROM event"Enter password:

注意:程序在启动过程中会弹出很多信息,当出现“Waiting for new spool file”字样表示该命令启动成功,如没有,则从该环节的步骤1开始检查。

如果在一个简单的模拟环境下实验,该步骤可忽略。

假设场景,我只希望某一个IP能访问Snort服务器上的22、80端口,我们在Snort主机上做如下设置。

禁止所有的IP访问Snort服务器的22、80端口。iptables -I INPUT -p tcp --dport 80 -j DROPiptables -I INPUT -p tcp --dport 22 -j DROP

允许IP地址为192.168.11.2,访问Snort服务器的80、22端口。iptables -I INPUT -s 192.168.11.2 -ptcp --dport 80 -j ACCEPTiptables -I INPUT -s 192.168.11.2 -ptcp --dport 22 -j ACCEPT

保存iptables规则service iptables save

重启防火墙#service iptables restart

步骤2.安装PHP插件(mcrypt、libmcrypt、libmcrypt-devel),命令如下所示。#yum install –y mcrypt libmcrypt libmcrypt-devel php-pear

Tips:Image_graph前身是GraPHPit,它是用于图表操作的包,也是一个开源项目,后来被整合到了Pear之中,被命名为Image_Graph(-alpha是他的版本号),所以它是通过pear命令来完成安装。

Package Version StateArchive_Tar 1.4.9 stableConsole_Getopt 1.3.1 stableImage_Canvas 0.3.5 alphaImage_Color 1.0.4 stableImage_Graph 0.8.0 alphaNumbers_Roman 1.0.2 stablePEAR 1.9.5 stableStructures_Graph 1.0.4 stableXML_RPC 1.5.4 stableXML_Util 1.2.3 stable

解压后发现增加了一个目录adodb5,将这个目录改名为adodb。#mv /var/www/html/adodb5 /var/www/html/adodb

解压后发现增加了一个目录base-1.4.5,接着需要对它重命名。#mv /var/www/html/base-1.4.5/ /var/www/html/base

将第513行内容改成如下内容。error_reporting = E_ALL & ~E_NOTICE修改完毕保存并退出。

注意:对于error_reporting()函数的解释:error_reporting() 设置 PHP 的报错级别并返回当前级别,错误报告是分级的,下面我们了解一下这个函数错误报告等级。

步骤7.改变/var/www/html/目录的属主和属组权限。#chown -R apache:apache /var/www/html/

注意:如果该步骤设置不对,有可能在后期配置BASE过程中出现“Config Writeable:No”的错误提示,从而导致无法完成BASE的配置任务。

注意:在步骤3中需要特别留意Image_Graph的安装情况如果安装报错或者漏装,当你打开BASE界面时会出现无法绘制图象的错误。以上这些错误有很多都是准备工作(安装Snort和PHP组件)做的不充分。

假设Snort服务器中只有一块网卡设备名称为eth0。为让Snort和Barnyard2自动运行,我们需要编写如下SHELL代码(Centos 7需要修改代码,使用yum install psmisc -y命令安装killall):

保存退出即可,如果没有执行,请检查是否加入了可执行权限。通常没有可执行权限会导致脚本无法执行。

至此我们已经将Snort安装过程讲解完毕,下面的时间就留给大家反复练习。另外大家网络环境可能各不相同,但操作系统和软件版本最好和本文中介绍的保持一致,实验时需要留意命令之间的大小写,空格,句点,单引号双引号等一些特殊符号的输入,为加深印象所有命令请大家一定要手动输入,不要使用^C ^V。

在CentOS 7.x下配置,有些配置习惯会有些不同,在新系统中ip add代替了ifconfig命令,网卡设备名称由eth0变为ens33等,那么在监听网络设备的时候,只要将配置命令中有关网卡的名称用新设备名称替换即可,另外在BASE配置期间,对于CentOS 7及其以上系统强烈建议临时关闭SELinux服务。整个系统配置过程基本上大同小异,只要你理解了,就可以轻松从Centos 6.x过渡到CentOS 7.x系统。

8.用vi编辑器查看,snort生成的unified2格式的数据,为什么都显示乱码?unified2是snort插件的一种输出方式,可以用来以二进制方式存储报警数据,如果你想手动查看他们,发现无法读取,Unified2这种输出格式并非设计为命令行可以读取的,而是为Barnyard2或者pigsty(Snortby中的小工具)工具使用做准备的。

9.我们在本地添加一条测试规则alert icmp any any -> $HOME_NET any (msg:"ICMP Packet Detected";sid:1000003;rev:1;),其中msg,sid,rev表示什么含义?

msg: 该选项用于规则相关文本的描述,这里设置为ICMP Packet Detected,当我们设置好BASE控制台之后,在页面上最直观展现出来的IDS引擎报警就是这条信息,所以这条信息尽可能详细。

sid: 特征标识符,用来唯一性标记规则。snort中每个规则不能重复,取值范围按如下习惯分布:0~1000000,为Sourcefire VRT保留。2000001-2999999 ,用于Emerging Threats (ET规则)3000000+,为自定义。

rev,表示版本修订,该选项永固表示规则发生了修改,从1开始,数字越大,修订次数越多,每次修订我们不用修改SID,而是修改rev.

分别用纸上的判别式法和Canvas图像法求函数 y=(x^2-2x-3)/(2x^2+2x+1) 的极值点。

UserDetailsService前文已经认识了 UserDetails,但是 Spring Securit 是从哪获取的用户呢?以及如何添加用户、修改用户?这就是 UserDetailsService 的职责所在了。先看一下 UserDetailsService 的定义,它只有一个方法,通过 username 来获取用户,返回值是 UserDetails 类型对象。当找不到对应的用户时,会抛出

本文详细介绍如何在Windows环境中编译安装barnyard2程序

本文详细介绍了基于FreeBSD系统中源码编译安装Snort IDS的过程。

CentOS 7安装IDS/IPS安全监测工具(Snorby+Barnyard2+Suricata)

1.准备安装软件2.安装DAQ 2.0.7报错预编译时出现下面的报错信息解决: apt install bison flex接着,make编译软件时继续报错解决:aclocal && autoconf && automakeDAQ安装成功之后我们接着,编译Snort,预编译时出现下图中错误信息。解决:安装libdnet接着编译还会遇到下面故障解决:只要在预编译参数中

集成环境Nginx0.8PHP5.3snort2.9MysqlADODBACID 安装前的准备PHP,nginx或apache,phpmyadmin,mysql,ACID,ADODB,[Barnyard2]libpcap,libnet,libdnet,daq,snort,[BASE]  , {mcry

IDS、IPS有Snort和Suricata,日志转换有barnyard2,前端web显示有Snorby和Base,虚拟防火墙pfsense可集成IDS、IPS。    等搭建完成 贴出过程。

【代码】Test2_2。

find命令可以用于查找文件如果不知道文件的目录可以find/etc/-namesshd*find常用指令-type-name-mtime-ctime-atimestat是用来查看文件的详细信息的lang是用来改语言的访问时间-atime修改时间-mtime变化时间-ctime模糊搜索文件-name选项-type文件名后缀linxu的后缀名不代表是什么类型的文件

#include<stdio.h>intmain(){charch='S';printf("%c\n",ch);return0;}#include<stdio.h>intmain(){printf("%d\n",sizeof(char));//得出不同数据类型的所占字节printf("%d\n",sizeof(short));printf

#include<stdio.h>int main(){printf("hehe");return 0;}

#########################unit2.用户权限列表############################1.权限列表的定义指定特殊用户对某个文件有特殊权限的记录表格###2.权限列表的识-rw-rw-r--+ 1 root root 12 Oct 29 21:21 file  ###权限位有加号权限列别开启-rw-rw-r--. 1 root root

# Python 矩阵2*2## 1. 介绍矩阵在数学和计算机科学中都是非常重要的概念。它是一个二维数组,由行和列组成。在Python中,我们可以使用列表(List)来表示矩阵。本文将介绍如何使用Python创建和操作2*2的矩阵,并提供一些常见的矩阵操作示例。## 2. 创建2*2矩阵在Python中,我们可以使用列表来表示矩阵。一个2*2的矩阵可以表示为一个包含两个列表的列表。

首先明白操作系统平台是Ubuntu 14.04 LTS 如今我们要在Ubuntu 14.04上部署snort NIDS(入侵检測系统)。 须要这些东西: SNO

Suricata 1.3.3 修复了很多精度和稳定性的问题,修复了文件抽取崩溃的问题。 Suricata 是一个网络入侵检测和阻止引擎,由开放信息安全基金会以及它所支持的提供商说开发。该引擎是多线程的,内置 IPv6 的支持,可加载预设规则,支持 Barnyard 和 Barnyard2 工具。

THE END
0.自己做App免费无代码,轻松实现个性化定制想要拥有专属App却担心技术门槛和成本?来试试无代码平台吧!无需编写一行代码,通过拖拽组件、配置参数,即可快速构建功能强大的App。个性化定制、成本节约、快速迭代,让你轻松实现App梦想。快来探索免费无代码做App的无限可能! 在当今这个数字化时代,拥有一个属于自己的App已经成为许多个人和企业提升影响力、拓展业务的重要手段。但提到jvzquC41yy}/j~tdcp4dqv4{z/pjcxhjgpm0s[_m3y}5s_fnL68c0qyon
1.18款低代码平台!开发解放双手!本文列举了多个开源低代码和无代码平台,如Saltcorn、JogetDX、CUBA Platform等,这些平台帮助企业快速构建数据库管理、业务流程自动化和应用程序。它们通常提供可视化的构建工具、拖放功能和丰富的生态系统,适用于各种规模的企业,从快速原型设计到复杂的业务解决方案。这些平台的兴起表明低代码开发正逐渐成为主流,降低了开发门jvzquC41dnuh0lxfp0tfv8|gkzooa=;98:<228ftvkimg8igvcomu86476629<=
2.Platform我们的平台 我们强大的,灵活的市场营销运营平台能使市场营销活动自动化,因此营销人员可以按时,按计划在市场营销中获得更多反馈。 Aprimo使您能够充分发挥潜力,并为您的公司带来价值。 计划和支出 营销生产力 分布式营销 营销活动 数字资产管理 产品内容管理 jvzquC41yy}/cywkoq4dqv3ep1
3.人机交互平台推荐腾讯云开发者社区Humatics今天发布其商业化空间智能平台,旨在帮助人们和机器以毫米级精度导航互联世界。今年2月,Humatics收购了Time Domain,后者也使用无线电波跟踪机器,将初创公司的技术融入其平台。jvzquC41enuvf7ygpekov7hqo0io1mjxgnuqg{4kphusojykqp5&G=*DC'HB'N;';E+CC.J6'DG&C=*G6'HB'B7'G7+C;.G5'G;&:O*D2'K7'AJ'C:+F:.=F';6
4.2025年十大免费无代码开发平台推荐,零基础也能快速搭建应用无代码开发平台的崛起,彻底改变了这一局面——无需一行代码,通过可视化拖拽和模块化设计,普通人也能轻松构建网站、APP、自动化流程甚至企业级系统。本文将聚焦十大免费无代码开发软件,助你以最低成本实现创意落地。 为什么选择无代码开发? 无代码工具的核心优势在于降低技术门槛和缩短开发周期。无论是初创团队需要快速jvzquC41kplp0r~wpdobq7hqo1oohx46486/j}rn
5.手动微调滑台精密电动平台丝杆直线模组同步皮带模组东莞市驰银传动科技有限公司(https://cykj2018.gys.cn)主营产品包括手动微调滑台、精密电动平台、丝杆直线模组、同步皮带模组等,东莞市驰银传动科技有限公司负责人黄先生,东莞市驰银传动科技有限公司希望能与您成为合作伙伴jvzq<84e{mp32:=0ep4djrsc0et0
6.替米思米位移台手动位移滑台XYSG/XSG/XYSPG/GPG位移平台主营产品:气缸,不锈钢位移滑台,手动位移台,旋转气缸 获取最低报价 品牌喜睦加工定制是 型号XYSG/XSG/XYSPG/GPG产品别名平台 规格XYSG/XSG/XYSPG/GPG是否跨境货源否 供应商信息 喜睦精密科技(东莞)有限公司进入店铺首页 喜睦精密科技(东莞)有限公司专业生产精密位移滑台,规格齐全,能满足不同用户的需求,公司采用优质的jvzquC41yy}/eqnpc0io1zyskfuoi‚zcplobp89:56>1;;7:0jznn
7.霍尔曼MRO工业品平台您好, 欢迎来到霍尔曼MRO工业品平台 立即登陆 免费注册 快速下单 帮助中心 400-065-0518 搜索 热门关键词:劳保上工刀具焊丝手套量具哈量三丰成量千分尺安全鞋口罩 我的采购单 0 Previous Next 1 2 2 欢迎来到霍尔曼商城 快速下单 【行业】工业互联网扶持新政将 jvzq<84yyy4iqurcp/ssq7hqo1
8.福州升降机租赁福州升降平台出租福州高空平台出租福州伊特通用设备公司(https://fzytyy.gys.cn)主营产品包括福州升降机租赁、福州升降平台出租、福州高空平台出租、福建升降机出租等,福州伊特通用设备公司负责人傅先生,福州伊特通用设备公司希望能与您成为合作伙伴jvzq<84h|{zz{7hp0enjpj3ep1
9.供应PQ230欢迎前来供应商网(https://www.gys.cn)了解北京派迪威仪器有限公司发布的供应PQ230-5 精密型手动倾斜台(双轴) 倾斜平台 调整台价格、厂家信息,产品和服务质量好,性价比高,为您节省采购成本!进网站查看卖家电话。jvzquC41yy}/eqnpc0io1}tpiz{olrfpegjs886:7767?<60jznn
10.10款最佳手动测试工具(2025年)根据我的经验,它已被证明是简化手动测试的最强大的工具之一。开发人员使用 Jira Software 使用其问题跟踪功能进行更快的调试,提高产品发布的速度。 #1 首选 Jira Software 5.0 开源:是 用于:时间跟踪、错误跟踪、里程碑跟踪等。 支持平台:Windows,Linux和 macOS jvzquC41yy}/i~ww;;4dqv4|j/IO1vfpwcr.vnxvkpm.vxtnu0nuou
11.在arm64平台kkfileview和LibreOffice的编译使用libreofficearm1、手动编译LibreOffice 1.1在arm64的机器上启动一个docker镜像 2、开始编译kkfileview的docker镜像 3、制作镜像 4、运行测试 因项目上需要在arm64平台使用kkfileview,然后发现在arm平台没有kkfileview需要的LibreOffice 所以自己手动编译了一个,在这里记录和分享下(用的docker镜像的方式启用的,镜像基于ubuntu:20.04) jvzquC41dnuh0lxfp0tfv8vsa5=18;9441gsvrhng1jfvjnnu1735A922;:
12.2022年前端Vue常见面试题大全(三万长文)持续更新vue前端面试题无需手动操作DOM 跨平台 缺点: 无法进行极致优化 25.虚拟DOM实现原理 用JavaScript对象模拟真实DOM树,对真实DOM进行抽象 diff算法:比较两棵虚拟树的差异 pach算法:将两个虚拟DOM对象的差异应用到真实的DOM树 26.直接给一个数组项赋值,Vue能检测到变化吗? jvzquC41dnuh0lxfp0tfv8|gkzooa>8372?:;8ftvkimg8igvcomu86447774>8