solr权限控制之web界面和Java相关操作

Apache Solr高危漏洞深度解析与安全加固实战指南 在企业级搜索服务中,Apache Solr作为基于Lucene构建的开源搜索平台,因其高性能和可扩展性被广泛应用。其核心原理是通过索引和检索技术实现快速内容查询,技术价值在于支撑电商、日志分析等大规模数据检索场景。然而,复杂的功能模块也带来了安全风险,例如DataImportHandler组件和Velocity模板引擎都可能成为攻击入口。本文聚焦Solr的**远程代码执行**和**服务器端请求伪造**等关键漏洞,深入剖析其利用条件与攻击路径,并提供从认证授权、配置加固到应急响应的完整防护方案,帮助开发与运维 阅读详情

solr权限控制之web界面和Java相关操作


一、在配置solr的时候我们曾在solr的WEB-INF/web.xml中注释一段代码,那段代码就是对权限的控制。只需将注释代码更改为以下即可

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Restrict access to Solr admin</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>DELETE</http-method>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
        <http-method>PUT</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>solr</role-name>
        <role-name>admin</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>
<login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>default</realm-name>
</login-config>

二、替换之后进行如下操作

//在apache-tomcat-9.0.0.M9/conf下的tomcat-users.xml文件最后增加:
<role rolename="solr"/>  
<user username="admin" password="new-password" roles="solr"/>

以上操作方式来源于网络,亲测可用。


三、对于Java程序的操作

① spring的配置文件中solr.host=admin:123456@IP:端口号/solr/core名称

//例如:
solr.host=admin:123456@127.0.0.1:8080/solr/new_core

② 可以配置拦截器,进行请求过滤。Solr通过BASIC认证。可以添加请求头的方式进行认证(未实验,不提供代码示例。仅供参考)。

四、定时全量索引和增量索引权限配置

网上有很多关于solr-dataimporthandler-scheduler的jar.在前期的文章中也有说明和源码提供下载。但是源码中由于原作者的编码风格(不知道第几任作者,哈哈),也走了一些弯路。在此说明一下:
日志的提示级别,会导致在solr的web界面报异常,其实并不是异常信息。在GitHub下载源码没有此问题。

对于定时索引机上权限之后如何配置,查看官方文档没找到很好的解决办法,就在solr-dataimporthandler-scheduler.jar进行改造。在配置文件中增加认证字段,在发送请求是进行请求头的添加(采用BASIC)。

//示例:
#################################################
#                                               #
#       dataimport scheduler properties         #
#                                               #
#################################################
#  to sync or not to sync
#  1 - active; anything else - inactive
syncEnabled=1
#  which cores to schedule
#  in a multi-core environment you can decide which cores you want syncronized
#  leave empty or comment it out if using single-core deployment
syncCores=new_core
#  solr server name or IP address
#  [defaults to localhost if empty]
server=172.0.0.1
#  solr server port
#  [defaults to 80 if empty]
port=8080
#  application name/context
#  [defaults to current ServletContextListener's context (app) name]
webapp=solr
#  URL params [mandatory]
#  remainder of URL
#  增量索引
params=/deltaimport?command=delta-import&clean=false&commit=true
#  schedule interval
#  number of minutes between two runs
#  [defaults to 30 if empty]
interval=1
#  重做索引的时间间隔,单位分钟,默认7200,即5天; 
#  为空,为0,或者注释掉:表示永不重做索引
reBuildIndexInterval=0
#  重做索引的参数
#  全量索引
reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true
#  重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;
#  两种格式:2016-012-11 14:10:00 或者  14:10:00,后一种会自动补全日期部分为服务启动时的日期
reBuildIndexBeginTime=00:00:00
#  权限认证(用户名:密码)
authorization=admin:123456

源码修改:

//SolrDataImportProperties.java增加
public static final String AUTHORIZATION = "authorization";

//BaseTimerTask.java增加
protected String authorization;
protected void reloadParams() {
        ....
        this.authorization = this.p.getProperty(SolrDataImportProperties.AUTHORIZATION);
    }
    protected void sendHttpPost(String completeUrl, String coreName) {
            //省略前半段......
            URL url = new URL(completeUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setRequestProperty("type", "submit");
            conn.setDoOutput(true);
            //增加部分====start====
            if (this.authorization != null){
                String encoding = Base64.encode(this.authorization.getBytes());
                conn.setRequestProperty  ("Authorization", "Basic " + encoding);
            }
            //增加部分======end=====
            conn.connect();

            logger.info(core + "<index update process> Full URL\t\t\t\t" +
                    conn.getURL());
            //省略后半段

solr-dataimporthandler-scheduler源码
jar包下载

Solr未授权访问漏洞深度剖析:从配置疏忽到RCE攻击链 在企业级搜索服务中,Apache Solr凭借其强大的全文检索和近实时索引能力,成为众多中大型系统的核心组件。其工作原理基于Lucene库,通过HTTP API提供丰富的查询和管理功能。然而,默认配置的“友好性”往往隐藏着巨大的安全风险,不当的安全设置会直接暴露管理接口,导致未授权访问。这种风险的技术价值在于,攻击者可利用暴露的Config API或DataImportHandler等核心功能,注入恶意配置,将简单的信息泄露漏洞升级为严重的远程代码执行(RCE)攻击,从而完全控制服务器。在电商、日志分析等应 阅读详情

相关推荐

Apache Solr CVE-2019-0193漏洞深度剖析:从原理到实战复现与防御

在Java应用安全领域,远程代码执行漏洞是威胁等级最高的安全风险之一,其核心原理在于攻击者能够通过应用暴露的接口,注入并执行恶意代码。这类漏洞常源于不安全的反序列化、表达式注入或动态脚本执行等功能。以广泛使用的企业级搜索平台Apache Solr为例,其DataImportHandler组件允许通过XML配置执行脚本,若缺乏严格的输入验证和权限控制,便可能成为攻击入口。结合JMX服务暴露的管理接口和JNDI注入技术,攻击者可构造复杂的利用链,实现从配置篡改到远程类加载的完整攻击。本文以CVE-2019-01

jackleechina2011212的博客 490

solr配置及Java实现

一、下载solr(地址:http://lucene.apache.org/solr/),并解压到一个目录中   Bin目录是执行脚本。Dist是构建完的jar包。Doc文档。Example是样例核配置。Server是solr的webapp和默认的solr_home目录。 Cmd进入在window命令窗口 (1)在solr/bin/路径下启动 solr start (2)暂停solr

davis的博客 1500

企业级Apache Solr安全加固实战:从高危漏洞修复到深度配置优化

在分布式搜索与大数据处理领域,企业级搜索平台的安全防护是系统架构中至关重要的一环。其核心原理在于通过严格的访问控制、输入验证、配置管理和运行时监控,构建纵深防御体系,以抵御外部攻击与内部风险。对于广泛应用的Apache Solr而言,其技术价值不仅体现在高性能的全文检索能力,更在于能否在复杂生产环境中稳定、安全地处理敏感数据。典型的应用场景包括电商商品搜索、内容管理系统、日志分析平台等,这些场景往往涉及用户隐私或商业数据,对安全性有极高要求。本文聚焦于Solr的远程代码执行(RCE)与反序列化等常见高危漏洞

weixin_30654419的博客 675

solr系列5——solr访问权限

solr访问权限 当我们部署完solr的时候通过浏览器访问或者java程序调用solr进行数据检索时,我们会想到这个solr任何一个人都可以访问或者调用,这是不安全的,也不可能为别人服务,这时solr的访问权限就是我们要关心的事情了。 端口限制 这种是常规的linux ipta...

chichuo1681的博客 1021

java solr solrj 带账号密码增量查询添加索引

主要讲解了 solr客户端如何调用带账号密码的solr服务器调用,实现添加索引和查询索引,以及分组查询

[事件相机1]2024CVPR:Event Stream-based Visual Object Tracking: A High-Resolution Benchmark Dataset

作者:Xiao Wang, Shiao Wang, Chuanming Tang, Lin Zhu, Bo Jiang, Yonghong Tian, Jin Tang代码:https://github.com/Event-AHU/EventVOT_Benchmark。

m0_37412775的博客 1706

java 连接solr_java程序中连接solr并设置参数等

public List getUrlResults(List strList,String serverUrl,pageResult result)throwsMalformedURLException, SolrServerException{HttpSolrServer server=newHttpSolrServer(serverUrl);//serverUrl 表示要连接的网址List ...

weixin_39672979的博客 291

【已解决】App unavailable Unfortunately, Claude is only available in certain countries and regions

App unavailable Unfortunately, Claude is only available in certain countries and regions right now. We will soon publish a list of supported locations on our website.

weixin_43941438的博客 3万+

solr 配置用户名密码以及代码账号密码连接

1. 安装 centos solr8集群搭建 2. 配置用户、密码、权限 1. 新建账号密码文件 1. 打开路径`/disk/solr/solr-8.8.1/server/etc`,此处是我的安装路径。 2. 打开文件进行编辑 , 内容如下:格式为-用户名:密码,权限 xxx:MD5:xxxx,admin 2. 添加权限验证 进入/disk/solr/solr-8.8.1/server/contexts,修改solr-jetty-context.xml文件。 <?xml version="1.

叶子来啦 3345

网格自适应_Comsol案例解析17:自适应网格的使用

本期导读自适应网格细化有许多优势,比如可以不用对网格进行全局加密,增加计算精度,又会降低求解自由度。本期仍然以气泡上升案例为例,在两相流模块中使用自适应网格。【打开案例模型】【修改网格】适当让气泡边界加密,注意,曲率因子越小,曲线上的网格越密【添加自适应网格】使用默认的参数即可,这里的误差指示器用的是水平集phi。可以根据具体求解模型选择适当的自变量作为误差指示器。【口诀】默认的一般是最...

weixin_28726871的博客 5681

STM32F103循迹小车PID调参实战:手把手教你整定舵机PD与电机PI参数

本文详细介绍了基于STM32F103的循迹小车PID调参实战,重点讲解舵机PD控制与电机PI参数的整定技巧。通过硬件选型、基础测试、四步调参法和分段控制策略,帮助开发者解决小车蛇形走位等问题,提升循迹性能。文章还分享了高级调试技巧和典型问题排查方法,适用于智能车竞赛和机器人开发。

weixin_42524226的博客 361

solr(一)solr的安装及权限控制

最近使用并维护过solr,一直没时间总结,抽出时间总结了一下它的使用方法,分几次分享给大家,那就直接重头开始来吧... 内容: 1.Solr的版本要求、安装教程及权限控制 一:版本安装要求: Solr的版本6.0.0以上的都要求jdk8.0及以上。 (Solr各版本发布时间、对应的JDK版本、Jetty版本(http://blog.youkuaiyun.com/jiangchao858/...

peach_garden的博客 3161

Windows 11“此应用已被管理员阻止运行”解决方案

通过本文介绍的两种方法,你应该能够解决Windows 11中“此应用已被管理员阻止运行”的问题。无论你选择创建新管理员账户还是禁用管理员批准模式,都请确保了解相关操作的风险,并根据你的实际需求做出选择。通过禁用“用户账户控制:以管理员批准模式运行所有管理员”设置,可以解决因系统安全设置导致的应用程序被阻止运行的问题。这种方法适用于那些希望简化管理员账户操作流程的用户,但需要注意可能带来的安全风险。通过创建并登录具有管理员权限的新账户,可以解决因系统安全设置导致的应用程序被阻止运行的问题。

mmoo_python的博客 1万+

Solr快速入门第二讲——Solr的安装及配置

Solr的下载 首先,咱们得明确一点,在本系列教程中所使用的Solr是Apache Solr 8.4.0这个版本。大家可以从Solr官方网站(http://lucene.apache.org/solr/)下载Solr 8.4.0,根据Solr的运行环境,Linux下需要下载solr-8.4.0.tgz,Windows下需要下载solr-8.4.0.zip。 Solr的目录结构 将下载下来的solr...

李阿昀的博客 1948

RAG——RAG 索引(文档解析技术)

本文介绍了RAG系统中文档解析的关键技术,重点分析了如何通过LangChain的Document Loaders处理多种格式文档。文章指出高质量文档解析对RAG系统效果的决定性作用,并详细讲解了PDF、TXT、Word等常见格式的解析方法。作者提供了代码示例和Gitee开源项目链接,特别强调了PDF解析的深入方案,同时介绍了相关依赖库的安装配置。文章还展示了如何定义通用文档加载方法,为开发者提供了实用的技术参考。

小志的博客 751

基于ESP32Cam摄像头+YOLOv3完成图像识别_355

本项目正是在此背景下提出,设计一个基于ESP32Cam摄像头的图像识别系统,通过WIFI热点通信实现图像数据的传输,并利用上位机(Windows与Android平台的QT APP)实时显示原始图像与识别结果,实现目标检测、识别与标注功能。

595

Java组件安全攻防实战:Solr、Shiro、Log4j漏洞组合利用与纵深防御

在Java Web应用开发中,组件安全是构建健壮系统的基石。其核心原理在于理解各组件(如日志框架、鉴权模块、搜索引擎)的内部工作机制与交互方式,攻击者往往利用组件间的信任边界和配置缺陷,构造复杂的攻击链。从技术价值看,深入掌握组件安全机制不仅能有效防御远程代码执行(RCE)、反序列化等高风险漏洞,更是实现应用安全左移、提升整体安全水位的关键。在实际应用场景中,无论是电商、金融还是企业级后台系统,Apache Solr的未授权访问、Apache Shiro的硬编码密钥、Log4j2的JNDI注入等典型漏洞,常

cuanjingyue4687的博客 477

RT-DETR改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU等)

本文记录的是改进RT-DETR的损失函数,将其替换成。现有研究通过利用边界框之间的几何关系来提高回归性能,但忽略了困难样本和简单样本分布对边界框回归的影响。不同检测任务中困难样本和简单样本的分布不同,对于简单样本占主导的检测任务,关注简单样本的边界框回归有助于提高检测性能;对于困难样本比例较高的检测任务,需要关注困难样本的边界框回归。,提高检测器在不同检测任务中的性能。实现的。

Limiiiing的博客 1922

hive表级权限控制_Apache Ranger——Hadoop ACL控制工具

本文主要通过ranger在hdfs acl中的应用以及原理介绍一下ranger的使用,另外介绍一下实际使用过程中碰到的问题。上篇文章回顾:时间服务器—NTP目前公司内部大多通过数据工场来管理hdfs上的数据,工场开发团队和hdfs、yarn的SRE同学也配合紧密。由于涉及到管理数据,那么不得不说到权限控制的问题。接触过hadoop的同学都应该了解hdfs上数据的权限类似linux中的权限...

weixin_39609770的博客 866

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

solr7在tomcat上的部署

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34309543的博客 189

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

solr服务器搭建tomcat

★ 1、下载Solr并解压:      下载地址:http://lucene.apache.org/★  2、解压后目录结构如下      - bin:该目录下存放了Solr的工具命令。   - contrib:该目录下存放了Solr所依赖的第三方JAR包   - dist:该目录下存放了Solr本身的JAR包。           其中solrj-lib的JAR包是Java客户端需要的JAR包。...

qq_35957398的博客 174

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

深入剖析Solr CVE-2019-17558:Velocity模板注入如何演变为致命RCE(附修复与自查指南)

本文深入解析Apache Solr的CVE-2019-17558漏洞,详细介绍了Velocity模板注入如何演变为远程命令执行(RCE)的安全风险。通过技术原理分析、攻击场景演示,提供全面的修复方案与自查指南,帮助用户有效防御这一高危漏洞。

weixin_30381317的博客 294

2.使用Tomcat8部署Solr7.5

因为生产环境不允许使用Solr,所以只能在原有部署Web项目的Tomcat中部署Solr 环境:JDK1.8;Tomcat8;Solr7.5 以下为转载内容,试了有效 转载自https://blog.youkuaiyun.com/static_coder/article/details/78401699 1、前言 solr是基于lucence的企业级搜索服务器。之前使用的都是4.x版本,...

Damionew的博客 976

Tomcat9 部署solr7

①准备环境:安装JDK1.8,tomcat8②将solr-7.1.0/server/solr-webapp/下的webapp复制到apache-tomcat-8.5.23/webapps/下并且重命名(可以随意命名),这里命名为solr。③复制solr-7.1.0/server/lib/ext下的所有jar,到apache-tomcat-8.5.23/webapps/solr/WEB-INF/li...

m0_37598953的博客 744

Apache Solr、Shiro、Log4j2三大组件漏洞原理与本地复现实战

在软件开发和系统架构中,第三方组件是构建现代应用的基础模块,它们极大地提升了开发效率,但也引入了潜在的安全风险。组件安全的核心原理在于,当这些模块存在设计缺陷、配置不当或版本过旧时,攻击者可能利用其暴露的接口或功能实现权限提升或远程代码执行。从技术价值看,深入理解组件漏洞的形成机制,是构建纵深防御体系、提升整体安全水位的关键。在应用场景上,无论是Web服务、身份认证还是日志记录,核心组件一旦被攻破,往往导致整个系统沦陷。本文聚焦于Apache生态中三个经典高危组件——Solr的Velocity模板注入、Sh

weixin_33770878的博客 455
上一篇: 富文本之BootStrap-wysiwyg
下一篇: centOS7安装MySQL
motui
博客等级 码龄10年 84粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值