Amp

哪个报表工具能抵挡 SQL 注入攻击

别说谁变了你拦得住时间么 提交于 2020-08-19 03:14:48
首先,要知道报表为啥会出现 SQL 注入攻击。所有的报表工具都会提供参数功能,主要用于用户输入条件后的数据筛选,固定条件不够,还要求更灵活,因此通用查询又出现,允许动态拼 SQL,随之而来的就是 SQL 注入的风险了。 那么如何避免?简单来讲,安全第一,只要不支持拼 SQL 做灵活条件就行了,但这样牺牲了产品能力,开源产品就是这样,想做也只能自己硬编码拼 SQL 来做灵活查询。 另外,有些报表工具只提供拼 SQL 实现灵活条件的方案,但没考虑规避 SQL 注入风险,是很危险的。 润乾报表在这方面考虑的就很全面(目前不清楚是不是有其他厂家能做到),提供拼 SQL 实现灵活条件的同时,还提供了敏感词监测功能,当参数中出现这些敏感词的时候,程序就会主动抛出错误提示,报表中断执行、抵挡住可疑攻击,并且都做了封装,操作起来很容易,只需要在配置文件配置好要规避的敏感词(或特殊关键字)就可以了。 xml 文件配置项如下: 禁用参数值通过 "disallowedParamWordList" 属性,多值用逗号隔开列出。更详细的说明可参考 报表的 SQL 植入风险及规避方法 。 总的来说,绝大报表工具都可以做到抵挡 SQL 注入,但简便性或产品完善度一对比就很清楚。另外,不能因为方法简便、产品完善就贵,还要考虑产品性价比,润乾报表兼具开源和商用的优势,有商用报表工具的所有功能(甚至更完善)

利用libbfd获取elf可执行文件的section(节)及symbol(符号)信息

陌路散爱 提交于 2020-08-18 21:43:46
一. 安装bfd库 libbfd(Binary File Descriptor library是binutils中附带的一个C库。 从 http://ftp.gnu.org/gnu/binutils 下载binutils。 我们这里下载binutils-2.23.2.tar.gz 下载后,解压安装libbfd。方法如下: tar -xzf binutils-2.23.2.tar.gz cd binutils-2.23.2/bfd ./configure make make install 安装完成后,可以看到有如下文件生成。 /usr/local/include/bfd.h /usr/local/lib/libbfd.a 二. 使用bfd库需要注意的地方 1. 头文件包含 程序使用bfd,需要包含bfd.h头文件。 但是,在包含bfd.h之前,还需要包含config.h。 即代码中需要有如下形式的文件包含: #include "config.h" #include <bfd.h> 那么这个config.h是什么东东呢?他不是系统的头文件,也不是bfd库的头文件,而是应用程序自己的头文件。 然而用户可能会感到奇怪,我的应用程序源码中并不存在这个config.h文件。那是因为你开发应用时,没有采用GNU autotools。 采用GNU autotools的项目

插入排序

你。 提交于 2020-08-18 21:32:26
package algorithm.sorts ; public class InsertSort { public static int [] insertSort ( int [] arr) { for ( int i = 1 ; i < arr. length ; i++) { int temp = arr[i] ; int j = i ; while (j > 0 && temp < arr[j - 1 ]) { arr[j] = arr[j - 1 ] ; j-- ; } arr[j] = temp ; } return arr ; } public static void main (String[] args) { int [] arr = { 99 , 22 , 33 , 44 , 2 , 5 , 1 , 7 } ; int [] result = insertSort (arr) ; for ( int i = 0 ; i < result. length ; i++) { System. out .println(result[i]) ; } } } 来源: oschina 链接: https://my.oschina.net/u/4055223/blog/4306764

Feign终极解析

风格不统一 提交于 2020-08-18 21:31:27
Feign简介 在上一篇文章中分析了Eureka的注册、续约、服务剔除、服务自我保护等机制,地址在https://blog.csdn.net/lgq2626/article/details/80288992。这篇分析SpringCloud的feign。SpringCloud微服务项目之间调用是通过httprest请求来进行服务调用的,之前我们会用到HttpClient等工具来进行服务请求,Spring对这种请求进行了处理,封装成了可声明式的web客户端,使得编写web客户端更容易,feign还支持可插拔的编码器和解码器,Spring在用的时候增加了对@requestMapping的处理,同时,SpringCloud还对feign集成了注册中心(eureka)和客户端负载均衡(ribbon),使得我们拥有一个客户端负载均衡的web请求客户端。 Feign在项目中的配置和使用 在Springcloud中使用feign的时候,需要在配置类中加入一个@EnableFeignClients注解。代码如下: @SpringBootApplication//springboot 启动类 @EnableFeignClients//开启eureka扫描 @EnableDiscoveryClient//开启eureka客户端 public class Application { public

Centos7如何编译安装vim8

纵饮孤独 提交于 2020-08-18 21:13:41
Vim是Vi编辑器的一个很大的改进版本,增加了很多新特性:多级撤销、语法高亮、 命令 行历史记录、在线帮助、拼写检查、文件名补全、块操作、 脚本 语言等等。 环境 Centos 7.7 Minimal vim-8.2.221 安装VIM8 需要先安装依赖包还有常用工具包: [root@localhost ~]# yum -y install git ncurses-devel ruby ruby-devel lua lua-devel perl perl-devel python3 python3-devel python2-devel perl-ExtUtils-Embed lrzsz cmake wget gcc gcc-c++ unzip 从github仓库下载最新的vim安装包 [root@localhost ~]# git clone https://github.com/vim/vim 开始编译安装vim [root@localhost ~]# cd vim-master/ [root@localhost vim-master]# ./configure --with-features=huge \ --enable-rubyinterp=yes \ --enable-luainterp=yes \ --enable-perlinterp=yes \ --enable

Discourse 发送人邮件地址如何修改的方法

跟風遠走 提交于 2020-08-18 21:12:30
Discourse 发送人邮件默认是使用安装的域名进行设置的。 如何修改这个发送人的邮件地址。 可以使用下面的方法: 这个配置是可以在后台修改的。 你可以搜索参数:notification_email 然后修改成你需要的邮件地址就可以了。 请参考 CWIKI.US 的内容: https://www.cwiki.us/display/CWIKIKB/questions/62620064 来源: oschina 链接: https://my.oschina.net/honeymoose/blog/4284556

leetcode977(有序数组的平方)--Java语言实现

£可爱£侵袭症+ 提交于 2020-08-18 20:48:23
求: 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121] 提示: 1 <= A.length <= 10000 -10000 <= A[i] <= 10000 A 已按非递减顺序排序。 题目链接: https://leetcode-cn.com/problems/squares-of-a-sorted-array/ 解: 1、原地排序 原地求各个数的平方数,然后对平方数数组原地排序。 时间复杂度: O(Nlog N) ,其中 N 是数组 A 的长度。 空间复杂度: O(1) public int [] sortedSquares ( int [] A) { for ( int i = 0 ; i < A. length ; i++) A[i] *= A[i] ; Arrays. sort (A) ; return A ; } 2、双指针法 因为题目已经交代A是有序的,那么可以认为,原数组中的每个数进行平方操作后,负数的平方是降序排列,而正数的平方是升序排列。因此我们很自然的想到可以使用双指针法进行优化。我们先找到第一个非负数出现的位置,记为j。再令i=j-1

避坑指南:关于SPDK问题分析过程

断了今生、忘了曾经 提交于 2020-08-18 14:40:44
【前言】 这是一次充满曲折与反转的问题分析,资料很少,代码很多,经验很少,概念很多,当内核态,用户态,DIF,LBA,大页内存,SGL,RDMA,NVME和SSD一起迎面而来的时候,问题是单点的意外,还是群体的无奈? 为了加深记忆,也为了分享出来给人以启示,特记录这次问题分析过程。 【现象】 同事L在项目中需要使用NVMF写盘,发现写盘失败,疯狂打印错误码: 图片中虽然截取的比较少,但实际是疯狂的一直打印。 故障现象简要描述一下就是: 通过NVMF写盘失败,疯狂打印错误码15; 作为对照,通过本地写盘,一切正常。 注:这里的盘,都是指SSD盘。目前实验室使用的型号是公司V3版本(HWE3xxx)。 【分析】 在这里把涉及到的一些基本缩略语都记录一下: 习惯了缩略语作为名词后,总是容易忽略其背后更多的含义,问题的分析,需要对这些有更深的理解,最初对这些理解不深,对数据处理流程不清晰,起步很艰难。 分析步骤(一) 在下发IO时,通过变换IO的大小,队列深度,发现数据量较小时,则几乎没有问题,直接下发1M大小IO时,则必现。 因此,可以明显的推测出IO的大小与问题的出现紧密相关。 直接运行业务来验证问题,过于笨重了,而且非常麻烦,将问题直接简化为,一个服务端和一个请求端,发现均能稳定复现,他们分别是: 1. 运行SPDK自带的app,nvmf_tgt程序,这个就是NVMF的服务端了;

迅为IMX6ULL开发板-Linux用户权限

限于喜欢 提交于 2020-08-18 13:07:11
基于迅为IMX6ULL开发板2.9 Linux 用户权限 用户权限 2.9.1 用户组及用户 Ubuntu 是一个支持多用户的操作系统。我们可以给不同的使用着创建各自的账号,每个用户使用自己 的账号来登陆。这样的好处是可以很好的管理每个用户,以及控制每个用户对系统的访问权限。 我们在安装 Ubuntu 系统的时候创建了一个名为“topeet”的用户,而且我们登录 Ubuntu 系统的时候 也是用的这个账户,登录到 Ubuntu 系统,会动进入到用户根目录下“/home/topeet”, 此时我们可以在该 目录下创建,修改删除文件。当然如果后面我们在创建其它的用户,Ubuntu 系统相应的也会在“/home”目 录下建立对应用户的根目录。 Ubuntu 系统下的用户可以分为下面的 3 中类型: t root 用户(系统的超级用户,具有最高的权限) 初次创建的用户(此用户比普通用户有更多的权限) 普通用户(安装完系统以后被创建的用户) 用户的相关信息保存在“/etc/passwd”文件中,如下图所示: 从上图中,我们可以看到每个用户都会有两组数据,比如我们登录的用户 topeet,他的两组数据是: 1000:1000,第一个 1000 是用户的 UID,第二个是用户组的 GID,Ubuntu 里面通过用户组来划分不同的用户, 而每个用户又通过用户 UID 来区分。 2.9.2

万万没想到,我在夜市地摊解决了MySQL临时表空间难题~~

吃可爱长大的小学妹 提交于 2020-08-18 08:57:16
都说“大隐隐于市,高手在深宫”。突如其来的“摆地摊”风潮,让原本冷清的街道热闹非凡,也让众人发现了那些神龙见首不见尾的大神们。 这不,小毛在下班的途中就遇到了大神“菊长”。一位专治数据库技术相关疑难杂症的专家,无论是你再数据库运维中踩过的雷、躺过的坑,他定能专业的角度帮你答疑解惑。不信,你看!菊长1分钟帮助小毛解决了MySQL临时表空间难题。 点击关注,第一时间了解华为云新鲜技术~ 来源: oschina 链接: https://my.oschina.net/u/4526289/blog/4333743