密码认证器
默认的认证器是 org.apache.cassandra.auth.AllowAllAuthenticator。如果想要求客户端提供凭证,Cassandra提供另一种选择 org.apache.cassandra.auth.PasswordAuthenticatot
配置认证器
默认登录cqlsh不需要密码,修改cassandra.yaml 修改
# authenticator: AllowAllAuthenticator
authenticator: PasswordAuthenticator
Cassandra2.2或以后的版本,会看到使用 PasswordAuthenticator必须使用CassandraRoleManager,是Cassandra授权功能的一部分。
增加用户
修改之后登录提示需要账号密码,默认账号密码都是 cassandra
[cassandra@node2 bin]$ ./cqlsh node2
Connection error: ( ' Unable to connect to any servers ' , {' 192.168.56.12 ' : AuthenticationFailed(' Remote end requires authentication. ' ,)})
[cassandra@node2 bin]$ . /cqlsh node2 -u cassandra -p cassandra
Connected to Cluster01 at node2: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh >
修改cassandra账号的密码:
cassandra@cqlsh> alter user cassandra with password ' cass@123 ' ;
cassandra@cqlsh > quit
[cassandra@node2 bin]$ . /cqlsh node2 -u cassandra -p cassandra
Connection error: ( ' Unable to connect to any servers ' , {' 192.168.56.12 ' : AuthenticationFailed(' Failed to authenticate to 192.168.56.12: Error from server: code=0100 [Bad credentials] message="Provided username cassandra and/or password are incorrect" ' ,)})
[cassandra@node2 bin]$ . /cqlsh node2 -u cassandra -p cass@123
Connected to Cluster01 at node2: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh >
创建账号:
[cassandra@node2 bin]$ ./cqlsh node2 -u cassandra -p cass@123
Connected to Cluster01 at node2: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh >
cassandra@cqlsh > list users;
name | super
-----------+-------
cassandra | True
( 1 rows)
cassandra@cqlsh > create user cass with password ' cass@111 ' ;
cassandra@cqlsh >
cassandra@cqlsh > list users;
name | super
-----------+-------
cass | False
cassandra | True
( 2 rows)
cassandra@cqlsh >
配置自动登录,为了避免每次登录cqlsh都需要输入账号密码,可以在家目录中创建文件 .cqlshrc
[cassandra@node2 ~]$ ls -al
total 24
drwx ------. 3 cassandra cassandra 117 Feb 11 04 :59 .
drwxr -xr-x. 3 root root 23 Feb 4 03 :24 ..
-rw-------. 1 cassandra cassandra 8074 Feb 11 01 :17 .bash_history
-rw-r--r--. 1 cassandra cassandra 18 Aug 8 2019 .bash_logout
-rw-r--r--. 1 cassandra cassandra 193 Aug 8 2019 .bash_profile
-rw-r--r--. 1 cassandra cassandra 231 Aug 8 2019 .bashrc
drwxrwxr -x. 2 cassandra cassandra 51 Feb 11 04 :59 .cassandra
-rw-rw-r--. 1 cassandra cassandra 58 Feb 11 04 :57 .cqlshrc
[cassandra@node2 ~]$ cat .cqlshrc
[authentication]
username = cassandra
password = cass@123
[cassandra@node2 ~]$ cd /data/cass/bin
[cassandra@node2 bin]$ . /cqlsh
Connection error: ( ' Unable to connect to any servers ' , {' 127.0.0.1 ' : error(111 , " Tried connecting to [('127.0.0.1', 9042)]. Last error: Connection refused " )})
[cassandra@node2 bin]$ . /cqlsh node2
Connected to Cluster01 at node2: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh >quit
[cassandra@node2 bin]$ cd
[cassandra@node2 ~]$ ls -al
total 20
drwx ------. 3 cassandra cassandra 101 Feb 11 04 :59 .
drwxr -xr-x. 3 root root 23 Feb 4 03 :24 ..
-rw-------. 1 cassandra cassandra 8074 Feb 11 01 :17 .bash_history
-rw-r--r--. 1 cassandra cassandra 18 Aug 8 2019 .bash_logout
-rw-r--r--. 1 cassandra cassandra 193 Aug 8 2019 .bash_profile
-rw-r--r--. 1 cassandra cassandra 231 Aug 8 2019 .bashrc
drwxrwxr -x. 2 cassandra cassandra 66 Feb 11 04 :59 .cassandra
[cassandra@node2 ~]$ cd .cassandra/
[cassandra@node2 .cassandra]$ ll
total 16
-rw-------. 1 cassandra cassandra 3978 Feb 11 04 :59 cqlsh_history
-rw-rw-r--. 1 cassandra cassandra 58 Feb 11 04 :57 cqlshrc
-rw-rw-r--. 1 cassandra cassandra 5833 Feb 10 22 :00 nodetool.history
[cassandra@node2 .cassandra]$ cat cqlshrc
[authentication]
username = cassandra
password = cass@123
切换账号无需退出重新登录,执行时可以不加密码,在命令行输入。用户家目录下面 .cassandra/cqlsh_history 文件中会记录所有命令行上输入的内容
[cassandra@node2 bin]$ ./cqlsh node3
Connected to Cluster01 at node3: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh >
cassandra@cqlsh > list users;
name | super
-----------+-------
cass | False
cassandra | True
( 2 rows)
cassandra@cqlsh > login cass ' cass@111 ' ;
cass@cqlsh >
修改账号密码,删除账号
cassandra@cqlsh> alter user cass with password ' cass@222 ' ;
cassandra@cqlsh > login cass ' cass@222 ' ;
cass@cqlsh > login cassandra ' cass@123 ' ;
cassandra@cqlsh > drop user cass;
cassandra@cqlsh > list users;
name | super
-----------+-------
cassandra | True
( 1 rows)
使用CassandraAuthorizer
通过授权器,授权用户访问集群中的键和表。 默认授权器 org.apache.cassandra.auth.AllowAllAuthorizer。
关闭集群,配置脚本 bin/stop-server
echo " Cassandra is shutting down "
user =`whoami`
pgrep -u $user -f cassandra | xargs kill -9
if ps -ef|grep cassandra|grep -v grep|grep java; then
echo " Cassandra shutdown failed "
else
echo " Cassandra closed "
fi
修改cassandra.yaml
# authorizer: AllowAllAuthorizer
authorizer: CassandraAuthorizer
普通用户登录查看keyspace和table没有权限
[cassandra@node2 bin]$ ./cqlsh node2
Connected to Cluster01 at node2: 9042 .
[cqlsh 5.0 .1 | Cassandra 3.11 .5 | CQL spec 3.4 .4 | Native protocol v4]
Use HELP for help.
cassandra@cqlsh > desc keyspaces;
system_schema system system_distributed test01
system_auth keyspace1 system_traces
cassandra@cqlsh > list users;
name | super
-----------+-------
cass | False
cassandra | True
( 2 rows)
cassandra@cqlsh > login cass;
Password:
cass@cqlsh > desc keyspaces;
system_schema system system_distributed test01
system_auth keyspace1 system_traces
SyntaxException: line 1 :0 no viable alternative at input ' ues ' ([ues]...)
cass@cqlsh > use test01;
cass@cqlsh:test01 > desc tables;
test01
cass@cqlsh:test01 > select * from test01;
Unauthorized: Error from server: code=2100 [Unauthorized] message=" User cass has no SELECT permission on or any of its parents"
cass@cqlsh:test01 >
通过grant命令给用户赋予权限
cassandra@cqlsh> grant select on test01.test01 to cass;
cassandra@cqlsh > login cass;
Password:
cass@cqlsh > use test01;
cass@cqlsh:test01 > select * from test01;
key | C0 | C1 | C2 | C3 | C4
-----+----+----+----+----+----
( 0 rows)
基于角色的访问控制 Cassandra提供一种基于角色的访问控制(role-based access control, RBAC)功能。创建角色,给角色赋予权限,给用户赋予角色的权限。
cassandra@cqlsh:test01> list roles;
role | super | login | options
-----------+-------+-------+---------
cass | False | True | {}
cassandra | True | True | {}
( 2 rows)
cassandra@cqlsh:test01 > create role dev;
cassandra@cqlsh:test01 > grant all on keyspace test to dev;
InvalidRequest: Error from server: code=2200 [Invalid query] message=" Resource doesn't exist "
cassandra@cqlsh:test01 > grant all on keyspace test01 to dev;
cassandra@cqlsh:test01 >
cassandra@cqlsh:test01 > drop user cass;
cassandra@cqlsh:test01 > create user cass with password ' cass@111 ' ;
cassandra@cqlsh:test01 > login cass
Password:
cass@cqlsh:test01 > select * from test01.test01;
Unauthorized: Error from server: code=2100 [Unauthorized] message=" User cass has no SELECT permission on or any of its parents"
cass@cqlsh:test01 > login cassandra
Password:
cassandra@cqlsh:test01 > grant dev to cass;
cassandra@cqlsh:test01 > login cass
Password:
cass@cqlsh:test01 > select * from test01.test01;
key | C0 | C1 | C2 | C3 | C4
-----+----+----+----+----+----
( 0 rows)
Cassandra中角色是可加的,这表示,如果授权一个用户的任意一个角色有某个特定的权限,那么这个用户就会授权这个权限。
在后台Cassandra把用户和角色存储在system_auth 键空间。如果为集群配置的授权,那么只有管理员用户可以访问这个键空间,所以使用管理员用户登录cqlsh来检查这个键空间内容;
cassandra@cqlsh:system> use system_auth;
cassandra@cqlsh:system_auth > desc tables;
resource_role_permissons_index role_permissions role_members roles
cassandra@cqlsh:system_auth >
cassandra@cqlsh:system_auth > select * from role_members;
role | member
------+--------
dev | cass
( 1 rows)
cassandra@cqlsh:system_auth > select * from role_permissions;
role | resource | permissions
------+-------------+--------------------------------------------------------------
dev | data/test01 | {' ALTER ' , ' AUTHORIZE ' , ' CREATE ' , ' DROP ' , ' MODIFY ' , ' SELECT ' }
( 1 rows)
cassandra@cqlsh:system_auth > select * from resource_role_permissons_index;
resource | role
-----------+-----------
roles /dev | cassandra
( 1 rows)
cassandra@cqlsh:system_auth > select * from roles;
role | can_login | is_superuser | member_of | salted_hash
-----------+-----------+--------------+-----------+--------------------------------------------------------------
cassandra | True | True | null | $2a$10 $6q2SqzrdcARz6qGcLj7DreKWAnQjJT653r4acBAJlHWzQW/e/4SQm
cass | True | False | {' dev ' } | $2a$10 $Z/KpRFIkmhQ6uEn45eDa4eyymaj/sty6LN1MDBfZdrxZwHnMI8ow2
dev | False | False | null | null
( 3 rows)
实际上并没有一个单独的数据库级用户的概念,Cassandra使用角色概念来耿总用户以及角色。
改变system_auth 副本因子 需要指出重要的一点,system_auth键空间默认配置为使用SimpleStrategy,副本因子为1.
这说明默认情况下,我们配置的任何用户,角色和权限不会再集群上分布存储,除非我们重新配置system_auth键空间 的复制策略,使之与我们的集群拓扑一致。
加密 从3.0版本开始,Cassandra通过客户端与服务器(节点)间的加密以及节点间的加密来保护数据的安全。Cassandra3.0以后,只有DataStax企业版的Cassandra才支持数据文件(静态数据)加密。
数据文件加密路线图
有很多Cassandra JIRA请求都说针对提供加密特性的3.x版本系列。
提示的加密: https://issues.apache.org/jira/browse/CASSANDRA-11040
提交日志的加密: https://issues.apache.org/jira/browse/CASSANDRA-6018
SSTable的加密: https://issues.apache.org/jira/browse/CASSANDRA-9633/7922
你可能感兴趣的:(实战-Cassandra之账号权限管理)
Hive之正则表达式RLIKE详解及示例
三生暮雨渡瀟瀟
hive hive 正则表达式
目录一、RLIKE语法及核心特性1.基本语法2.核心特性二、常见业务场景及示例场景1:过滤包含特定模式的日志(如错误日志)场景2:验证字段格式(如邮箱、手机号)场景3:提取复杂文本中的关键词场景4:排除无效数据(如非数字字符)三、高级用法与技巧1.忽略大小写匹配2.匹配多行文本3.组合多个条件四、性能优化建议1.避免全表扫描2.预编译正则模式3.简化正则表达式五、常见问题与注意事项1.转义字符问题
flutter实战!2021年Android网络编程总结篇,移动架构师成长路线
椰果学Android
程序员 android
什么是中年危机根据权威数据显示,国内IT程序员鼎盛时期是在25-27岁左右,30岁对于程序员而言完全是一个38线,接着就是转业转岗的事情,这一点在业界也算是一个共识了。大学毕业步入IT行业普遍年龄也是在22岁左右,然而22-30岁之间也就是8年左右的时间,那么27岁也就是职业生涯“中年”的开始,那么作为程序员的你有准备好如何度过“中年危机”吗?当程序猿到了28岁左右的“中年危机”就不一样了,这个年
奏响青春的乐章
大丈夫在世当日食一鲲
征文活动
青春是什么?是一场大型的交响乐,恢弘,灿烂。是自忧自怜的伤春悲秋,是举著前莫名的忧伤,是记忆里一场不散的筵席,是将军冲锋前的豪气,是明知不可为也要为之的书生气。壮丽的乐谱在你、在我、在他的心中奏响,奏响专属于每个人独一无二的乐章。六月的天空,专属于这个季节的暴雨不期而至,翠绿的树叶在空中飞舞,在暴雨的侵袭下,它本想轻轻转个圈,在调皮的落下,可以天气并不想给它这个机会,无情的冲击下,只能随着雨滴。不
Flutter-防京东商城项目-状态管理 多页面数据共享-23
冯汉栩
Flutter flutter
一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。代码文档Flutter防京东商城源码(1-10)链接Flutter防京东商城源码(11-20)链接Flutter防京东商城源码(21-30)链接Flutter防京东商城源
第六周:你推崇的领导方式是怎么样的
程序员
1.你所推崇的领导方式“君子有诸己而后求诸人,无诸己而后非诸人。”我所推崇的领导方式,应该是以身作则,不会要求别人做我自己做不到的事情,当然,也不会强求他人做我自己可以做到的事情。我也同意没有最好的领导方式,只有最适合的,方式要因人而异,在刘建国的《技术管理实战36讲》中提到的领导方式有以下四种。1.1指令式重事不重人,关注目标和结果,喜欢发号施令但不亲力亲为;比如安排下属去开发一个功能,直接说明
使用zyplayer-doc搭建一个属于自己或团队的WIKI知识管理系统
zyplayer-doc
zyplayer-doc 有道云笔记 石墨文档 飞书 开源软件
简介zyplayer-doc是一款现代化的适合团队和个人使用的WIKI文档管理工具,同时还包含数据库文档、Api接口文档在线文档:zyplayer-doc使用文档体验地址:http://doc.zyplayer.com账号:zyplayer密码:123456开源地址:https://gitee.com/zyplayer/zyplayer-doc系统的安装非常的简洁,只需要准备好依赖的JAVA和My
Flutter 状态管理:详细分析与实战
陈皮话梅糖@
flutter 状态管理
Flutter状态管理:详细分析与实战在Flutter中,状态管理是开发复杂应用的核心。随着应用规模的增长,管理状态变得越来越重要。无论是简单的局部状态,还是复杂的全局状态,选择合适的状态管理方案可以显著提高开发效率和代码可维护性。本篇博客将详细分析Flutter状态管理的核心概念、常见方案(如setState、Provider、Riverpod、Bloc等),并结合实际场景进行实战演示。1.什么
Vue 3 组件库开发实战:打造基础 UI 组件库并发布 - 构建可复用的 Vue 组件资产
Neo Evolution
前端学习 vue.js ui 前端 javascript 前端框架 ecmascript json
引言欢迎再次回到Vue3+现代前端工程化系列技术博客!在昨天的第六篇博客中,我们深入探索了Vue3CompositionAPI的进阶应用,通过构建可拖拽看板应用,熟练掌握了自定义Hook的代码复用技巧。今天,我们将迈向Vue3组件化开发的更高阶段,聚焦于组件库的开发与发布,构建可复用的Vue组件资产,提升团队协作效率和项目开发质量。在实际项目开发中,尤其是大型项目或团队协作开发中,组件的复用性至关
flutter 专题三十五 Flutter混合开发模式下的代码调试
leluckys
Flutter面试与实战 flutter
众所周知,在做Flutter开发的时候,它是自带有热重载/热重启功能的,不过,或许你会发现,当我们在原生工程中接入Flutter模块后,热重载/热重启好像都失效了,那么怎么才能在混合项目中使用热重载/热重启,以及怎么实现混合项目的代码调试呢?在介绍这些之前,我们先来看看原生接入Flutter模块,不知道如何接入的同学,可以参考下面的文章:Flutter混合开发之FlutterFragment和原生
An Introduction to Statistical Learning with Python 解读及实战指南
蔡鸿烈Hope
AnIntroductiontoStatisticalLearningwithPython解读及实战指南ISL-pythonSolutionstolabsandexcercisesfromAnIntroductiontoStatisticalLearning,asJupyterNotebooks.项目地址:https://gitcode.com/gh_mirrors/is/ISL-python1.
《白帽子讲 Web 安全》之文件操作安全
予安灵
白帽子讲Web安全 前端 安全 web安全 网络攻击模型 文件操作安全 安全威胁分析 系统安全
目录引言(一)文件上传与下载漏洞概述1.文件上传的常见安全隐患1.1前端校验的脆弱性与服务端脚本执行危机在文件上传流程中,部分开发者可能会在前端使用JavaScript代码对文件后缀名进行简单校验,试图以此阻止非法文件上传。但这种做法存在严重缺陷,因为前端代码在用户浏览器端运行,攻击者可轻易通过浏览器开发者工具或其他手段修改前端代码,绕过此类校验。1.2基于Content-Type判断文件类型的不
《白帽子讲 Web 安全》之深入同源策略(万字详解)
予安灵
白帽子讲Web安全 前端 安全 web安全 网络安全 同源策略 网络攻击模型
目录引言一、同源策略基础认知(一)定义(二)作用(三)作用机制详解二、同源策略的分类(一)域名同源策略(二)协议同源策略(三)端口同源策略三、与同源策略相关的攻击(一)跨站脚本攻击(XSS)(二)跨站点请求伪造(CSRF)(三)点击劫持(Clickjacking)四、基于同源策略的防御措施(一)针对XSS攻击(二)针对CSRF攻击(三)针对点击劫持五、新型攻击手法剖析(一)XSS进阶案例-DOMC
Python服务端测试开发实战-从单元测试到性能优化【好书推荐】
一键难忘
好书推荐 python 单元测试 性能优化 Python服务端
文章目录Python服务端测试开发Python服务端测试开发实战【好书推荐】Python服务端测试开发随着互联网技术的快速发展,服务端开发已经成为了技术栈中至关重要的一部分。而对于服务端的开发人员来说,测试不仅是保证代码质量的基础工作,也是开发过程中不可忽视的环节。本文将通过Python服务端测试开发的实战案例,详细讲解如何高效地进行服务端开发测试,确保系统的稳定性和性能。服务端测试的重要性在构建
计算机网络学习——TCP/IP四层模型之网络接口层
阿清~
计算机网络 以太网 网络 网络协议
物理层物理层的作用1、连接不同的物理设备计算机通过网线与路由器连接,网线属于物理层物理层传输介质:双绞线、同轴电缆、光纤、红外线、无线、激光2、传输比特流比特流:010101…的高低电平或者数字信号信道的基本概念信道是往一个方向传送信息的媒体一条通信电路包含一个接收信道和一个发送信道单工通信信道:只能一个方向通信,没有反方向反馈的信道。有线电视、无线电收音机等等,只能进行接收,不能进行发送。半双工
神策分析 iOS SDK 全埋点解析之元素点击与页面浏览
神策技术社区
大数据 前端 后端
一、前言本文是继《神策分析iOSSDK全埋点解析之启动与退出》之后,全埋点解析系列博客的第二篇,主要介绍元素点击与页面浏览的全埋点采集方案。在介绍具体的方案之前,我们需要先了解下相关的背景知识。二、背景知识2.1Target-ActionTarget-Action,也叫“目标-动作”模式,即当某个事件发生的时候,调用特定对象的特定方法。“特定对象”就是Target,“特定方法”就是Action。例
计算机毕业设计:基于python房产数据分析可视化大屏 可视化 Django框架 安居客二手房数据 商品房✅
源码之家
bysjbysj biyesheji0005 biyesheji0001 python 课程设计 数据分析 django 商品房 毕业设计 可视化
博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。点击查看作者主页,了解更多项目!感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业。1、毕业设计:2025年
机器学习——KNN算法实战—手写数字识别
巷955
机器学习 算法 人工智能
原理简述:KNN算法是机器学习中的一种基础的分类回归算法,选择距离自己最近的几条数据,依据最邻近的数据性质来估测自身的性质。下面我们开始实战,制作手写数字识别模型:一、cv2创建模型1、导入相关的库,这里我们用numpy和cv2两个库importnumpyasnpimportcv22、导入数据,并转化灰度图像img=cv2.imread('digits.png')gray=cv2.cvtColor
红蓝对抗-HW红蓝队基本知识
立志成为网安大牛
web安全 网络 安全 网络协议
第一章什么是蓝队蓝队,一般是指网络实战攻防演习中的攻击一方。蓝队一般会采用针对目标单位的从业人员,以及目标系统所在网络内的软件、硬件设备同时执行多角度、全方位、对抗性的混合式模拟攻击手段;通过技术手段实现系统提权、控制业务、获取数据等渗透目标,来发现系统、技术、人员、管理和基础架构等方面存在的网络安全隐患或薄弱环节。蓝队人员并不是一般意义上的电脑黑客。因为黑客往往以攻破系统,获取利益为目标;而蓝队
《懂哥不懂装懂之电视投屏》
故障抖机灵大师
电脑故障排除实战经验 科普与知识分享 电脑 运维 windows 智能硬件
懂哥系列文章目录文章目录懂哥系列文章目录前言故事开场迷之操作事后有感前言又是一个看似平平无奇的日常。我们的“懂哥”,这次又有什么雷人的言论,请大家期待故事开场“在公司里,‘懂哥’那可是大名鼎鼎,不管碰到啥事儿,他都非得不懂装懂地插上一嘴。这不,最近电视投屏这个“新玩意”又成功勾起了他的好奇心“那天,懂哥风风火火地跑到我跟前,一脸神秘地问:“哎,你说客房的电视能投屏不?”我心里暗自好笑,这都算老掉牙
Java反射
qq_65860758
java 开发语言
Java反射:深入探索与实战应用在Java编程的世界里,反射(Reflection)是一种强大的机制,它允许程序在运行时检查、修改和操作自身的结构和行为。通过反射,你可以动态地获取类的属性、方法、构造函数等信息,甚至可以调用私有方法和访问私有字段。这种能力在框架开发、依赖注入、测试工具等场景中尤为重要。本文将带你深入了解Java反射的工作原理、基本用法以及实战应用。一、反射的基本概念反射的核心在于
基于JavaWeb开发的Java+SpringBoot+vue+element实现前后端分离玩具商城系统
网顺技术团队
成品程序项目 spring boot 开发语言 课程设计 java vue.js
基于JavaWeb开发的Java+SpringBoot+vue+element实现前后端分离玩具商城系统作者主页网顺技术团队欢迎点赞收藏⭐留言文末获取源码联系方式查看下方微信号获取联系方式承接各种定制系统精彩系列推荐精彩专栏推荐订阅不然下次找不到哟Java毕设项目精品实战案例《1000套》感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人文章
网络安全从入门到精通(特别篇V):应急响应之webshell处置流程
HACKNOE
网络安全应急响应科研室 web安全 系统安全 网络安全 应急响应
应急响应应急响应之webshell处置流程1.1Webshell简介1.2Webshell的分类1.3Webshell的用途1.4Webshell的检测方法1.5Webshell的防御方法1.6常规处置方法1.6.1入侵时间确定1.6.2WEB日志分析1.6.3漏洞分析1.6.4漏洞复现1.6.5漏洞修复1.7常用工具1.7.1D盾1.7.2河马1.7.3wireshark应急响应之webshel
网络攻击之-Webshell流量告警运营分析篇
村中少年
安全运营之网络攻击研判分析 webshell webshell上传 webshell注入 webshell通信 webshell工具 webshell数据包 webshell研判
本文从Webshell的定义,多种Webshell利用的流量数据包示例,Webshell的suricata规则,Webshell的告警研判,Webshell的处置建议等几个方面阐述如何通过IDS/NDR,态势感知等流量平台的Webshell类型的告警的线索,开展日常安全运营工作,从而挖掘有意义的安全事件。Webshell定义Webshell是一种用于远程控制和操作Web服务器的恶意脚本或程序。攻击
Windows逆向工程入门之MASM数据结构使用
0xCC说逆向
windows 数据结构 单片机
公开视频->链接点击跳转公开课程博客首页->链接点击跳转博客主页目录第一章:MASM数据定义体系精要1.1基础数据类型全景1.1.1整型数据规范1.1.2浮点数据编码1.2复合数据结构1.2.1多维数组定义1.2.2复杂结构体第二章:逆向工程数据结构重建2.1PE文件数据段逆向2.1.1全局变量定位2.1.2导入表解析2.2运行时数据结构2.2.1堆内存结构2.2.2线程环境块(TEB)第三章:高
《懂哥的魔咒之硬盘“必须响”》
故障抖机灵大师
电脑故障排除实战经验 科普与知识分享 硬件工程 运维 智慧城市
系列文章目录文章目录系列文章目录事件起因硬盘“必须响”确认故障再次打脸的“懂哥”硬盘知识科普常见硬盘故障硬盘故障判断方法事件起因又是一个看似平凡的工作日,工程群的叮咚声再一次打破了凝滞的空气。来到监控室,我轻车熟路地着手检查,凭借经验,每一个步骤都进行得有条不紊。然而,当检查到硬盘时,一阵“嘎吱嘎吱”的敲盘声冷不丁传入耳中,我的心瞬间猛地一紧,这种声音犹如警报,一听便知情况不妙,需立即处理。硬盘“
安当全栈式PostgreSQL数据库安全解决方案:透明加密、动态凭据与勒索防护一体化实践
安 当 加 密
postgresql 区块链 数据库
引言:数字化转型下的数据库安全挑战随着PostgreSQL在企业核心业务中的广泛应用,其承载的敏感数据价值日益攀升。然而,近年来针对数据库的攻击事件频发,如SQL注入漏洞(CVE-2025-1094)、勒索病毒攻击、内部越权操作等,直接威胁企业数据资产安全。传统安全方案存在三大痛点:加密改造成本高、账号管理粗放、勒索防护滞后。安当基于多年技术沉淀,推出覆盖数据全生命周期的PostgreSQL安全解
认证支持全面碾压?Apipost的OAuth2.0与ASAP实战演示,Apifox用户看完扎心了
认证缺失的隐秘危机,你可能正在裸奔调试当开发者沉浸在接口调试的逻辑快感中时,往往容易忽视一个致命环节——认证机制。试想:你的API请求未携带合法令牌,就像用密码"123456"登录银行账户;你的OAuth2.0流程配置错误,相当于把用户隐私直接暴露在公网。更讽刺的是,80%的开发者认为认证是运维的职责,却在实际调试中反复踩坑:授权头缺失、令牌过期、回调地址配置错误...这些看似基础的问题,轻则导致
深度学习pytorch之4种归一化方法(Normalization)原理公式解析和参数使用
@Mr_LiuYang
计算机视觉基础 归一化 正则化 Normlization BatchNorm LayerNorm InstanceNrom GroupNorm
深度学习pytorch之22种损失函数数学公式和代码定义深度学习pytorch之19种优化算法(optimizer)解析深度学习pytorch之4种归一化方法(Normalization)原理公式解析和参数使用摘要归一化(Normalization)是提升模型性能、加速训练的重要技巧。归一化方法可以帮助减少梯度消失或爆炸的问题,提升模型的收敛速度,且对最终模型的性能有显著影响。本文将以PyTorc
Python第十二课:网络编程 | 连接世界的数字桥梁
程之编
Python学习笔记 青少年编程 开发语言 python
本节目标:1.掌握TCP/UDP协议的核心差异2.学会使用`socket`模块进行网络通信3.从零实现HTTP服务器4.开发实战项目:多用户即时聊天系统5.理解网络安全基础原则1️⃣协议基础:数字世界的交通规则|**协议**|核心特性|典型应用场景||----------|-----------------------------|-----------------------||**TCP**|
【AI论文】GHOST 2.0:高保真一次性头部生成迁移
东临碣石82
人工智能
摘要:近年来,虽然人脸交换任务在研究领域受到了广泛关注,但与之相关的头部交换问题却仍大都未被深入探索。除了肤色迁移外,头部交换还带来了额外的挑战,比如在合成过程中需要保留整个头部的结构信息,以及修补交换后的头部与背景之间的缝隙。在本文中,我们提出了GHOST2.0来解决这些问题,它包含两个针对特定问题的模块。首先,我们引入了一个增强的Aligner模型用于头部重演,该模型能够在多个尺度上保留身份信
SAX解析xml文件
小猪猪08
xml
1.创建SAXParserFactory实例
2.通过SAXParserFactory对象获取SAXParser实例
3.创建一个类SAXParserHander继续DefaultHandler,并且实例化这个类
4.SAXParser实例的parse来获取文件
public static void main(String[] args) {
//
为什么mysql里的ibdata1文件不断的增长?
brotherlamp
linux linux运维 linux资料 linux视频 linux运维自学
我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。
当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。
一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 innodbfileper_table,所以问题是:
ibdata1存了什么?
当你启用了 i
Quartz-quartz.properties配置
eksliang
quartz
其实Quartz JAR文件的org.quartz包下就包含了一个quartz.properties属性配置文件并提供了默认设置。如果需要调整默认配置,可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认的设置。
下面是这些默认值的解释
#-----集群的配置
org.quartz.scheduler.instanceName =
informatica session的使用
18289753290
workflow session log Informatica
如果希望workflow存储最近20次的log,在session里的Config Object设置,log options做配置,save session log :sessions run ;savesessio log for these runs:20
session下面的source 里面有个tracing
Scrapy抓取网页时出现CRC check failed 0x471e6e9a != 0x7c07b839L的错误
酷的飞上天空
scrapy
Scrapy版本0.14.4
出现问题现象:
ERROR: Error downloading <GET http://xxxxx CRC check failed
解决方法
1.设置网络请求时的header中的属性'Accept-Encoding': '*;q=0'
明确表示不支持任何形式的压缩格式,避免程序的解压
java Swing小集锦
永夜-极光
java swing
1.关闭窗体弹出确认对话框
1.1 this.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
1.2
this.addWindowListener (
new WindowAdapter () {
public void windo
强制删除.svn文件夹
随便小屋
java
在windows上,从别处复制的项目中可能带有.svn文件夹,手动删除太麻烦,并且每个文件夹下都有。所以写了个程序进行删除。因为.svn文件夹在windows上是只读的,所以用File中的delete()和deleteOnExist()方法都不能将其删除,所以只能采用windows命令方式进行删除
GET和POST有什么区别?及为什么网上的多数答案都是错的。
aijuans
get post
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历
前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。
这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把G
谈谈新浪微博背后的那些算法
aoyouzi
谈谈新浪微博背后的那些算法
本文对微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多。当然,本文覆盖的主题并不全,比如好友推荐、热点跟踪等就没有涉及到。但古人云“窥一斑而见全豹”,希望本文的介绍能帮助大家更好的理解微博这样的社交网络应用。
微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针
Connection reset 连接被重置的解决方法
百合不是茶
java 字符流 连接被重置
流是java的核心部分,,昨天在做android服务器连接服务器的时候出了问题,就将代码放到java中执行,结果还是一样连接被重置
被重置的代码如下;
客户端代码;
package 通信软件服务器;
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.O
web.xml配置详解之filter
bijian1013
java web.xml filter
一.定义
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.my.app.EncodingFilter</filter-class>
<init-param>
<param-name>encoding<
Heritrix
Bill_chen
多线程 xml 算法 制造 配置管理
作为纯Java语言开发的、功能强大的网络爬虫Heritrix,其功能极其强大,且扩展性良好,深受热爱搜索技术的盆友们的喜爱,但它配置较为复杂,且源码不好理解,最近又使劲看了下,结合自己的学习和理解,跟大家分享Heritrix的点点滴滴。
Heritrix的下载(http://sourceforge.net/projects/archive-crawler/)安装、配置,就不罗嗦了,可以自己找找资
【Zookeeper】FAQ
bit1129
zookeeper
1.脱离IDE,运行简单的Java客户端程序
#ZkClient是简单的Zookeeper~$ java -cp "./:zookeeper-3.4.6.jar:./lib/*" ZKClient
1. Zookeeper是的Watcher回调是同步操作,需要添加异步处理的代码
2. 如果Zookeeper集群跨越多个机房,那么Leader/
The user specified as a definer ('aaa'@'localhost') does not exist
白糖_
localhost
今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist
最后找原因发现删除操作做了触发器,而触发器里面有这样一句
/*!50017 DEFINER = ''aaa@'localhost' */
原来最初
javascript中showModelDialog刷新父页面
bozch
JavaScript 刷新父页面 showModalDialog
在页面中使用showModalDialog打开模式子页面窗口的时候,如果想在子页面中操作父页面中的某个节点,可以通过如下的进行:
window.showModalDialog('url',self,‘status...’); // 首先中间参数使用self
在子页面使用w
编程之美-买书折扣
bylijinnan
编程之美
import java.util.Arrays;
public class BookDiscount {
/**编程之美 买书折扣
书上的贪心算法的分析很有意思,我看了半天看不懂,结果作者说,贪心算法在这个问题上是不适用的。。
下面用动态规划实现。
哈利波特这本书一共有五卷,每卷都是8欧元,如果读者一次购买不同的两卷可扣除5%的折扣,三卷10%,四卷20%,五卷
关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要
chenbowen00
struts WEB安全
因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。
下面记录下本次解决的过程以便后续
1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议,
而使用ftp协议默认会产生一个匿名用
[电力与暖气]煤炭燃烧与电力加温
comsci
在宇宙中,用贝塔射线观测地球某个部分,看上去,好像一个个马蜂窝,又像珊瑚礁一样,原来是某个国家的采煤区.....
不过,这个采煤区的煤炭看来是要用完了.....那么依赖将起燃烧并取暖的城市,在极度严寒的季节中...该怎么办呢?
&nbs
oracle O7_DICTIONARY_ACCESSIBILITY参数
daizj
oracle
O7_DICTIONARY_ACCESSIBILITY参数控制对数据字典的访问.设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.在9i及以上版本默认为false,8i及以前版本默认为true.如果设置为true就可能会带来安全上的一些问题.这也就为什么O7_DICTIONARY_ACCESSIBIL
比较全面的MySQL优化参考
dengkane
mysql
本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。
1、硬件层相关优化
1.1、CPU相关
在服务器的BIOS设置中,可
C语言homework2,有一个逆序打印数字的小算法
dcj3sjt126com
c
#h1#
0、完成课堂例子
1、将一个四位数逆序打印
1234 ==> 4321
实现方法一:
# include <stdio.h>
int main(void)
{
int i = 1234;
int one = i%10;
int two = i / 10 % 10;
int three = i / 100 % 10;
apacheBench对网站进行压力测试
dcj3sjt126com
apachebench
ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。
通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。
2种办法让HashMap线程安全
flyfoxs
java jdk jni
多线程之--2种办法让HashMap线程安全
多线程之--synchronized 和reentrantlock的优缺点
多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync)
HashMap不是线程安全的,往往在写程序时需要通过一些方法来回避.其实JDK原生的提供了2种方法让HashMap支持线程安全.
Spring Security(04)——认证简介
234390216
Spring Security 认证 过程
认证简介
目录
1.1 认证过程
1.2 Web应用的认证过程
1.2.1 ExceptionTranslationFilter
1.2.2 在request之间共享SecurityContext
1
Java 位运算
Javahuhui
java 位运算
// 左移( << ) 低位补0
// 0000 0000 0000 0000 0000 0000 0000 0110 然后左移2位后,低位补0:
// 0000 0000 0000 0000 0000 0000 0001 1000
System.out.println(6 << 2);// 运行结果是24
// 右移( >> ) 高位补"
mysql免安装版配置
ldzyz007
mysql
1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3、my-large.ini是为专用于一个SQL数据
MFC和ado数据库使用时遇到的问题
你不认识的休道人
sql C++ mfc
===================================================================
第一个
===================================================================
try{
CString sql;
sql.Format("select * from p
表单重复提交Double Submits
rensanning
double
可能发生的场景:
*多次点击提交按钮
*刷新页面
*点击浏览器回退按钮
*直接访问收藏夹中的地址
*重复发送HTTP请求(Ajax)
(1)点击按钮后disable该按钮一会儿,这样能避免急躁的用户频繁点击按钮。
这种方法确实有些粗暴,友好一点的可以把按钮的文字变一下做个提示,比如Bootstrap的做法:
http://getbootstrap.co
Java String 十大常见问题
tomcat_oracle
java 正则表达式
1.字符串比较,使用“==”还是equals()? "=="判断两个引用的是不是同一个内存地址(同一个物理对象)。 equals()判断两个字符串的值是否相等。 除非你想判断两个string引用是否同一个对象,否则应该总是使用equals()方法。 如果你了解字符串的驻留(String Interning)则会更好地理解这个问题。
SpringMVC 登陆拦截器实现登陆控制
xp9802
springMVC
思路,先登陆后,将登陆信息存储在session中,然后通过拦截器,对系统中的页面和资源进行访问拦截,同时对于登陆本身相关的页面和资源不拦截。
实现方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23