- 网络攻击之-Webshell流量告警运营分析篇
村中少年
安全运营之网络攻击研判分析webshellwebshell上传webshell注入webshell通信webshell工具webshell数据包webshell研判
本文从Webshell的定义,多种Webshell利用的流量数据包示例,Webshell的suricata规则,Webshell的告警研判,Webshell的处置建议等几个方面阐述如何通过IDS/NDR,态势感知等流量平台的Webshell类型的告警的线索,开展日常安全运营工作,从而挖掘有意义的安全事件。Webshell定义Webshell是一种用于远程控制和操作Web服务器的恶意脚本或程序。攻击
- 基于Ubuntu坏境下的Suricata坏境搭建
yyytucj
ubuntulinux运维
在Ubuntu环境下搭建Suricata环境的步骤如下:更新系统:首先,需要更新Ubuntu系统的软件包列表,可以使用以下命令:sudoapt-getupdate安装依赖:Suricata的安装需要一些依赖,可以通过以下命令进行安装:sudoapt-getinstalllibpcre3libpcre3-dbglibpcre3-devbuild-essentiallibpcap-dev\libnet
- suricata基础介绍
强壮的向阳花
suricata源码学习网络linux网络协议
下载地址:Indexof/downloads学习社区SuricataUserGuide—Suricata6.0.10documentationOverview-Suricata-OpenInformationSecurityFoundation论坛bug关于Suricata的中文文档,目前有一些比较好的资源可供参考,包括:Suricata中文文档(https://suricata-cn.readt
- suricata构成-线程分布-功能讲解
强壮的向阳花
网络数据库linux运维开源学习
运行模式suricata启动的线程组成取决于他的运行模式,通过suricatasc-crunning-mode获取运行模式;其运行模式由两处位置决定:配置文件runmode参数代码中设置default变量workers模式af-packet收包1、线程线程名称数量作用入口函数suricata-main1主进程mainwoker配置文件决定对应配置项threads参数模式下default配置项thr
- suricata 开源工具学习-自定义协议开发
强壮的向阳花
suricata应用开发开源学习elasticsearchlinuxc语言网络
介绍suricata所有的协议都是通过向框架(AppLayerParserRegisterProtocolParsers)提供注册回调完成的。开发一个新的协议,按照相同结构格式完成即可。一、编写协议解析文件suricata可以通过工具脚本执行直接生成协议解析文件,文章使用的suricata4.1.3版本。那么下载同版本工具,工具我已经clone一份到我的git了,default分支为4.1x版本g
- suricata 开源工具学习-规则 关键字开发应用
强壮的向阳花
suricata应用开发linuxc语言网络源代码管理
suricata提供了组件式的开发方式,在SigTableSetup注册所有规则关键字。通过接口可以看出,sigmatch_table变量为所有规则关键字的实例(可以作为gdb的调试参数)文件规则关键字的编译文件命名格式detect-xx.cdetect-xx.h生成文件下载对应suricata主干版本的工具,本教程使用4.1.x版本,github地址:https://github.com/OIS
- suricata 开源工具学习-规则了解
强壮的向阳花
suricata应用开发开源学习linux服务器运维
规则存放位置,通过可执行程序查看相关配置--build-info规则构成suricat的规则由三部分构成,分为actionheaderoptions;与iptables规则不同,动作字段被定义在规则前。pass/log/alaret为ids规则动作,drop、reject(返回res报文)为ips动作三层协议号(tcp、udp、icmp、ip、any)规则的每一条都遵循固定的格式:name:set
- suricata使用捕获硬件
lx_jian
1.EndaceDAGSuricata附带原生EndaceDAG卡支持。这意味着Suricata可以直接使用libdag接口,代替libpcap(它也应该工作)步骤如下:(1)配置DAG支持./configure--enable-dag显示SuricataConfiguration:AF_PACKETsupport:noPF_RINGsupport:noNFQueuesupport:noIPFWs
- [Suricata]基于DPDK抓包
LzSkyline
项目需要用到Suricata的解包能力,但由于分光流量较大,软件自带的抓包方式并不能满足需求,于是发现了这个基于dpdk的Suricata.使用过程中遇到一些依赖和万兆网卡驱动的问题,已经解决并merge到master分支了,现在clone下来应该可以直接用安装DPDK#下载安装wgethttp://fast.dpdk.org/rel/dpdk-18.11.tar.xztarxfdpdk-18.1
- HTTP 关键字
lx_jian
1.http请求关键字图1图22.http响应关键字图3图43.关键字解释3.1http_method使用http_method内容修饰符,可以专门匹配并仅在HTTP方法缓冲区上匹配。关键字可以组合使用与所有上一篇suricata规则提到的内容如:depth,distance,offset,nocase和within。http方法有:GET,POST,PUT,HEAD,DELETE,TRACE,O
- suricata在Ubuntu下的源码安装编译与简单的ips模式测试
zwdzwd
1.相关依赖包的编译安装基本编译工具:sudoapt-getinstallmakegccpkg-configsudoapt-getinstalllibpcre3libpcre3-dbglibpcre3-devbuild-essentiallibpcap-dev\libnet1-devlibyaml-0-2libyaml-devpkg-configzlib1gzlib1g-dev\libcap-ng
- 文件操作安全之-目录穿越流量告警运营分析篇
村中少年
安全运营之网络攻击研判分析目录穿越目录遍历路径遍历WEB安全流量数据包安全运营告警研判分析
本文从目录穿越的定义,目录穿越的多种编码流量数据包示例,目录穿越的suricata规则,目录穿越的告警分析研判,目录穿越的处置建议等几个方面阐述如何通过IDS/NDR,态势感知等流量平台的目录穿越类型的告警的线索,开展日常安全运营工作,从而挖掘有意义的安全事件。目录穿越定义目录穿越,也可以称之为路径遍历或目录遍历。通过利用输入验证不足,在输入中包含特殊字符或构造恶意的路径,绕过目录访问控制,访问目
- [Suricata]结果写入kafka
LzSkyline
目前是公司正在搞得项目,所以只说思路,具体代码就不贴了修改配置中的写出类型suricata.yaml配置中,修改eve.json的filetype为kafka,并在下面新增几个配置传入kafka的broker,topic,clientid(若有)等信息增加对kafka写出类型的识别主要修改output-json.c文件可以搜索LOGFILE_TYPE_REDIS关键字,仿照类似的方式增加对Kafk
- 如何用ChatGPT分析恶意软件
虚无火星车
chatgpt人工智能
目录1.创建YARA规则2.编写Suricata规则3.了解恶意活动小结自从我们进入数字化时代以来,恶意软件就一直是计算机应用系统的“心腹大患”。事实上,每一次技术进步都会为恶意行为者提供更多的工具,使得他们的攻击行为更具破坏性。不过,如今生成式人工智能的崛起,似乎让一直以来的趋势发生了逆转。目前,网络安全专业人员正在利用ChatGPT等人工智能工具,分析和对抗恶意软件。作为具有广泛用途的工具,C
- Suricata/Snort规则参考
神域序列
Rust网络安全Snort网络安全IDSIPSSnortSuricata
Suricata/Snort规则参考文章目录Suricata/Snort规则参考限制优势6.Suricata规则6.1.规则格式6.1.1.动作(Action)6.1.2.协议(Protocol)6.1.3.源和目的(Sourceanddestination)6.1.4.端口(Sourceanddestination)6.1.5.方向(Direction)6.1.6.规则选项(Ruleoption
- suricata识别菜刀流量
simplycoder
suricata网络安全安全安全威胁分析
一、捕获菜刀流量payload特征:PHP:ASP:ASP.NET:数据包流量特征:1、请求包中:ua头为百度,火狐2、请求体中存在eavl,base64等特征字符3、请求体中传递的payload为base64编码,并且存在固定的QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0l
- suricata 各个线程干的事情 -- 主线程
xuwaiwai
suricata网络安全suricata
目录线程类型0.主线程注册runmodes根据配置初始化注册应用协议检测器注册应用层协议解析器加载规则关键字tag初始化几种存储结构的初始化与注册注册所有模块的函数检测引擎初始化:创建工作线程创建非工作线程的子线程主线程进入主循环:线程类型suricata除了主线程外还有若干子线程,子线程类型见下表:序号线程类型name线程数量tv->typetv->tm_func()对应的函数tv->tm_sl
- suricata 检测规则编写
xuwaiwai
suricata网络安全suricata
目录规则头规则行为,根据优先级排列:协议:源ip,目标ip:源端口/目标端口:流量方向:规则体msg:flow流匹配:flowbits:sameip源ip、目标ip检测:content内容匹配:不区分大小写nocase:偏移位置offset:结束位置depth:在xx范围外distance:在xx范围内within:有效载荷大小dsize:pcre正则pcre:http修饰符:fast_patte
- suricata学习记录
唐装鼠
opensource学习
pcre正则表达式shell语法automakeautogen.shautogen.sh和autoreconf单模匹配、多模匹配AC算法radixtree(IP查找)
- suricata源码解析
唐装鼠
opensourcesuricata
SCInstanceInit初始化suricata实例:程序名设置为程序文件名,其他变量复位。InitGlobalintInitGlobal(void){//调用rust代码初始化contextrs_init(&suricata_context);//初始化引擎状态:SC_ATOMIC_INIT(engine_stage);/*initializetheloggingsubsys*///包括日志级
- 威胁情报 之 情报收集 - 网络篇-1
Shell_xu
需求:1具备NIDS能力;2支持对全量数据包的存储;3支持快速对多个节点中的数据包进行预览、下载等操作;针对以上的需求,直接部署Suricata基本可以满足。主要2、3点的需求,更加偏向溯源的方向,Suricata在这一方面稍显欠缺。首先,Suricata在触发了告警之后只会保存攻击载荷(Payload)的数据包信息。但是,对于一些有趣的事件,我们很可能会需要查看整笔会话(Flow)的内容,这个时
- suricata匹配从入门到精通(四)----编译lua
leeezp
NTAIDSsuricatalua安全网络安全
年前有粉丝私信我,想让我做一期lua脚本。作为一个宠粉的博主,那必须给予回应。suricata结合lua可以达到提升工作效率的作用。0x00编译开启luna支持:yuminstallluarocks(不确定是否有用)手动下载安装:(https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Installation_from_G
- suricata匹配从入门到精通(三)----开始编写简单的snort规则
leeezp
suricataIDS网络安全网络安全web安全安全
suricata兼容snort规则的大部分语法。今天我来教大家编写一条检测请求的规则。基于suricata6.0.x版本。0x00规则编写初体验以http的流量举例:例如,想匹配一个黑客工具建立三次握手后发起的恶意请求,使用下面的关键字:flow:established,to_server;想匹配请求方法,POST等,使用下面的关键字:http.method;content:"POST";如果想匹
- suricata匹配从入门到精通(五)----二次开发保护规则库
leeezp
suricataIDSNTA网络安全安全
0x00背景开源的suricata资源包是没有做加密处理,如果想要保护资源包,需要二次开发修改suricata源码。本文基于suricata6.0.1版本https://github.com/OISF/suricata/archive/refs/tags/suricata-6.0.1.zip二开。0x01实践通过debug,跟规则处理相关需要修改2个地方。1.src/suricata.c2.src
- CENTOS上的网络安全工具(八)Scapy协议解析
lhyzws
网络安全Linux学习mysql数据库pythonpandas
一般来说,使用诸如Arkima、Suricata等现成的开源网络安全工具已经可以满足大多数需求,但需求总是无止境的。当我们需要关注网络通信中一些奇奇怪怪的行为的时候,常规工具给出的数据特征常常无法满足我们特立独行的需求,这个时候往往需要我们自己进行网络数据的处理,解析协议并获取想要的数据。最直接的方法当然是编写程序,按照RFC文档逐比特逐字节的去拆解,这样我们能够获得最为定制化的能力,随心提取任何
- Suricata + Wireshark离线流量日志分析
奈何@_@
网络渗透防御wireshark测试工具Suricatawazuh网络服务器
目录一、访问一个404网址,触发监控规则1、使用python搭建一个虚拟访问网址2、打开Wireshark,抓取流量监控3、在Suricata分析数据包流量分析经典题型入门题型题目:Cephalopod(图片提取)进阶题型题目:抓到一只苍蝇(数据包筛选,数据提取)数据分析题题目一:(1.pcap)答案:题目二(2.pcap)答案未完待续……Suricata环境搭建:基于Ubuntu坏境下的Suri
- Suricata规则编写
投篮不准的程序员不是一个好车手
计算机网络
规则格式Suricata规则包括以下三部分:action,action决定当signature匹配的时候会发生什么header,定义了协议,IP地址,端口和规则的位置ruleoptions,定义规则细节droptcp$HOME_NETany->$EXTERNAL_NETany(msg:”ETTROJANLikelyBotNickinIRC(USA+..)”;flow:established,to_
- Suricata – 入侵检测、预防和安全工具
青霄
安全suricata
一、Suricata介绍Suricata是一个功能强大、用途广泛的开源威胁检测引擎,提供入侵检测(IDS)、入侵防御(IPS)和网络安全监控功能。它执行深度数据包(网络流量)检查以及模式匹配,在威胁检测中非常强大。工作流程:主要特点:IDS/IPS–Suricata是一个基于规则的入侵检测和防御引擎,它利用外部开发的规则集(例如Talos规则集和新兴威胁Suricata规则集)来监控网络流量中是否
- DPDK-Suricata应用部署
tolun
DPDK安装部署1、DPDK下载下载dpdk-stable-18.02.2.tar.gz并解压,进入解压后dpdk目录下。https://fast.dpdk.org/rel/dpdk-18.02.2.tar.xz2、设置环境变量exportRTE_SDK=$PWD,exportRTE_TARGET=x86_64-native-linuxapp-gcc。建议在/etc/profile中设置,设置完后
- Suricata规则编写5- FlowInt
明翼
FlowIntFlowint是我们将很快添加到引擎中的全局变量任务的前身,这将允许捕获,存储和比较变量中的数据。这将是顾名思义全局的。因此,您可以比较不相关流中的数据包的数据。Flowint允许使用变量进行存储和数学运算。它的运行方式与flowbits非常类似,但增加了数学功能,并且可以存储和操作整数,而不仅仅是一个标志集。我们可以将其用于许多非常有用的事情,例如统计事件发生次数,增加或减少事件发
- html
周华华
html
js
1,数组的排列
var arr=[1,4,234,43,52,];
for(var x=0;x<arr.length;x++){
for(var y=x-1;y<arr.length;y++){
if(arr[x]<arr[y]){
&
- 【Struts2 四】Struts2拦截器
bit1129
struts2拦截器
Struts2框架是基于拦截器实现的,可以对某个Action进行拦截,然后某些逻辑处理,拦截器相当于AOP里面的环绕通知,即在Action方法的执行之前和之后根据需要添加相应的逻辑。事实上,即使struts.xml没有任何关于拦截器的配置,Struts2也会为我们添加一组默认的拦截器,最常见的是,请求参数自动绑定到Action对应的字段上。
Struts2中自定义拦截器的步骤是:
- make:cc 命令未找到解决方法
daizj
linux命令未知make cc
安装rz sz程序时,报下面错误:
[root@slave2 src]# make posix
cc -O -DPOSIX -DMD=2 rz.c -o rz
make: cc:命令未找到
make: *** [posix] 错误 127
系统:centos 6.6
环境:虚拟机
错误原因:系统未安装gcc,这个是由于在安
- Oracle之Job应用
周凡杨
oracle job
最近写服务,服务上线后,需要写一个定时执行的SQL脚本,清理并更新数据库表里的数据,应用到了Oracle 的 Job的相关知识。在此总结一下。
一:查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行
- 多线程机制
朱辉辉33
多线程
转至http://blog.csdn.net/lj70024/archive/2010/04/06/5455790.aspx
程序、进程和线程:
程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的
- web报表工具FineReport使用中遇到的常见报错及解决办法(一)
老A不折腾
web报表finereportjava报表报表工具
FineReport使用中遇到的常见报错及解决办法(一)
这里写点抛砖引玉,希望大家能把自己整理的问题及解决方法晾出来,Mark一下,利人利己。
出现问题先搜一下文档上有没有,再看看度娘有没有,再看看论坛有没有。有报错要看日志。下面简单罗列下常见的问题,大多文档上都有提到的。
1、address pool is full:
含义:地址池满,连接数超过并发数上
- mysql rpm安装后没有my.cnf
林鹤霄
没有my.cnf
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
至于为什么没有这个文件而MySQL却也能正常启动和作用,在这儿有两个说法,
第一种说法,my.cnf只是MySQL启动时的一个参数文件,可以没有它,这时MySQL会用内置的默认参数启动,
第二种说法,MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于r
- Kindle Fire HDX root并安装谷歌服务框架之后仍无法登陆谷歌账号的问题
aigo
root
原文:http://kindlefireforkid.com/how-to-setup-a-google-account-on-amazon-fire-tablet/
Step 4: Run ADB command from your PC
On the PC, you need install Amazon Fire ADB driver and instal
- javascript 中var提升的典型实例
alxw4616
JavaScript
// 刚刚在书上看到的一个小问题,很有意思.大家一起思考下吧
myname = 'global';
var fn = function () {
console.log(myname); // undefined
var myname = 'local';
console.log(myname); // local
};
fn()
// 上述代码实际上等同于以下代码
m
- 定时器和获取时间的使用
百合不是茶
时间的转换定时器
定时器:定时创建任务在游戏设计的时候用的比较多
Timer();定时器
TImerTask();Timer的子类 由 Timer 安排为一次执行或重复执行的任务。
定时器类Timer在java.util包中。使用时,先实例化,然后使用实例的schedule(TimerTask task, long delay)方法,设定
- JDK1.5 Queue
bijian1013
javathreadjava多线程Queue
JDK1.5 Queue
LinkedList:
LinkedList不是同步的。如果多个线程同时访问列表,而其中至少一个线程从结构上修改了该列表,则它必须 保持外部同步。(结构修改指添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方
- http认证原理和https
bijian1013
httphttps
一.基础介绍
在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后
- 【Java范型五】范型继承
bit1129
java
定义如下一个抽象的范型类,其中定义了两个范型参数,T1,T2
package com.tom.lang.generics;
public abstract class SuperGenerics<T1, T2> {
private T1 t1;
private T2 t2;
public abstract void doIt(T
- 【Nginx六】nginx.conf常用指令(Directive)
bit1129
Directive
1. worker_processes 8;
表示Nginx将启动8个工作者进程,通过ps -ef|grep nginx,会发现有8个Nginx Worker Process在运行
nobody 53879 118449 0 Apr22 ? 00:26:15 nginx: worker process
- lua 遍历Header头部
ronin47
lua header 遍历
local headers = ngx.req.get_headers()
ngx.say("headers begin", "<br/>")
ngx.say("Host : ", he
- java-32.通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小(两数组的差最小)。
bylijinnan
java
import java.util.Arrays;
public class MinSumASumB {
/**
* Q32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序.
*
* 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
* 例如:
* int[] a = {100,99,98,1,2,3
- redis
开窍的石头
redis
在redis的redis.conf配置文件中找到# requirepass foobared
把它替换成requirepass 12356789 后边的12356789就是你的密码
打开redis客户端输入config get requirepass
返回
redis 127.0.0.1:6379> config get requirepass
1) "require
- [JAVA图像与图形]现有的GPU架构支持JAVA语言吗?
comsci
java语言
无论是opengl还是cuda,都是建立在C语言体系架构基础上的,在未来,图像图形处理业务快速发展,相关领域市场不断扩大的情况下,我们JAVA语言系统怎么从这么庞大,且还在不断扩大的市场上分到一块蛋糕,是值得每个JAVAER认真思考和行动的事情
- 安装ubuntu14.04登录后花屏了怎么办
cuiyadll
ubuntu
这个情况,一般属于显卡驱动问题。
可以先尝试安装显卡的官方闭源驱动。
按键盘三个键:CTRL + ALT + F1
进入终端,输入用户名和密码登录终端:
安装amd的显卡驱动
sudo
apt-get
install
fglrx
安装nvidia显卡驱动
sudo
ap
- SSL 与 数字证书 的基本概念和工作原理
darrenzhu
加密ssl证书密钥签名
SSL 与 数字证书 的基本概念和工作原理
http://www.linuxde.net/2012/03/8301.html
SSL握手协议的目的是或最终结果是让客户端和服务器拥有一个共同的密钥,握手协议本身是基于非对称加密机制的,之后就使用共同的密钥基于对称加密机制进行信息交换。
http://www.ibm.com/developerworks/cn/webspher
- Ubuntu设置ip的步骤
dcj3sjt126com
ubuntu
在单位的一台机器完全装了Ubuntu Server,但回家只能在XP上VM一个,装的时候网卡是DHCP的,用ifconfig查了一下ip是192.168.92.128,可以ping通。
转载不是错:
Ubuntu命令行修改网络配置方法
/etc/network/interfaces打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.
1. 以D
- php包管理工具推荐
dcj3sjt126com
PHPComposer
http://www.phpcomposer.com/
Composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
中文文档
入门指南
下载
安装包列表
Composer 中国镜像
- Gson使用四(TypeAdapter)
eksliang
jsongsonGson自定义转换器gsonTypeAdapter
转载请出自出处:http://eksliang.iteye.com/blog/2175595 一.概述
Gson的TypeAapter可以理解成自定义序列化和返序列化 二、应用场景举例
例如我们通常去注册时(那些外国网站),会让我们输入firstName,lastName,但是转到我们都
- JQM控件之Navbar和Tabs
gundumw100
htmlxmlcss
在JQM中使用导航栏Navbar是简单的。
只需要将data-role="navbar"赋给div即可:
<div data-role="navbar">
<ul>
<li><a href="#" class="ui-btn-active&qu
- 利用归并排序算法对大文件进行排序
iwindyforest
java归并排序大文件分治法Merge sort
归并排序算法介绍,请参照Wikipeida
zh.wikipedia.org/wiki/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F
基本思想:
大文件分割成行数相等的两个子文件,递归(归并排序)两个子文件,直到递归到分割成的子文件低于限制行数
低于限制行数的子文件直接排序
两个排序好的子文件归并到父文件
直到最后所有排序好的父文件归并到输入
- iOS UIWebView URL拦截
啸笑天
UIWebView
本文译者:candeladiao,原文:URL filtering for UIWebView on the iPhone说明:译者在做app开发时,因为页面的javascript文件比较大导致加载速度很慢,所以想把javascript文件打包在app里,当UIWebView需要加载该脚本时就从app本地读取,但UIWebView并不支持加载本地资源。最后从下文中找到了解决方法,第一次翻译,难免有
- 索引的碎片整理SQL语句
macroli
sql
SET NOCOUNT ON
DECLARE @tablename VARCHAR (128)
DECLARE @execstr VARCHAR (255)
DECLARE @objectid INT
DECLARE @indexid INT
DECLARE @frag DECIMAL
DECLARE @maxfrag DECIMAL
--设置最大允许的碎片数量,超过则对索引进行碎片
- Angularjs同步操作http请求with $promise
qiaolevip
每天进步一点点学习永无止境AngularJS纵观千象
// Define a factory
app.factory('profilePromise', ['$q', 'AccountService', function($q, AccountService) {
var deferred = $q.defer();
AccountService.getProfile().then(function(res) {
- hibernate联合查询问题
sxj19881213
sqlHibernateHQL联合查询
最近在用hibernate做项目,遇到了联合查询的问题,以及联合查询中的N+1问题。
针对无外键关联的联合查询,我做了HQL和SQL的实验,希望能帮助到大家。(我使用的版本是hibernate3.3.2)
1 几个常识:
(1)hql中的几种join查询,只有在外键关联、并且作了相应配置时才能使用。
(2)hql的默认查询策略,在进行联合查询时,会产
- struts2.xml
wuai
struts
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache