entity

XXE漏洞

北城余情 提交于 2020-08-16 17:56:44
XXE漏洞 XXE漏洞就是XML外部实体注入,就是当xml引用外部实体并解析的时候会产生的漏洞,xml解析器去获取其中的外部资源并存储到内部实体中,攻击者可引用外部实体对目标进行文件读取、命令执行、DDOS、内网探测等。 什么是xml 1.XML 指可扩展标记语言(EXtensible Markup Language)是被设计用来传输和存储数据,而HTML则是被设计用来显示数据。 一个简单的xml文件包括声明、文档定义类型(DTD)、和元素。 <?xml version="1.0" encoding="UTF-8"?> 声明 <!DOCTYPE note [ <! ENTITY name "hello"> DTD定义类型 ]> <note>根元素 <to>&name;</to>子元素 <from>Jani</from> <body>Don't forget me this weekend!</body> </note> 什么是DTD DTD(Document Type Definition,文档类型定义)   1)DTD是一套关于标记符的语法规则。它是XML1.0版规格的一部分,是XML文件的验证机制,属于XML文件组成的一部分。   2)XML文件提供应用程序一个数据交换的格式,DTD正是让XML文件能够成为数据交换的标准,因为不同的公司只需定义好标准的DTD,    

Spring Boot Sample 023之spring-boot-data-mongodb

半腔热情 提交于 2020-08-16 16:48:08
一、环境 Idea 2020.1 JDK 1.8 maven 二、目的 spring boot 通过整合mongodb gitHub地址: https://github.com/ouyushan/ouyushan-spring-boot-samples 三、步骤 3.1、点击File -> New Project -> Spring Initializer,点击next 3.2、在对应地方修改自己的项目信息 3.3、选择Web依赖,选中Spring Web、Spring Boot Redis。可以选择Spring Boot版本,本次默认为2.2.7,点击Next 3.4、项目结构 四、添加文件 pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent>

Android 原生 SQLite 数据库的一次封装实践

廉价感情. 提交于 2020-08-16 14:18:00
本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/CL4MsQEsrWS8n7lhXCOQ_g 作者:Li Bingyan 本文主要讲述原生SQLite数据库的一次ORM封装实践,给使用原生数据库操作的业务场景(如:本身是一个SDK)带来一些启示和参考意义,以及跟随框架的实现思路对数据库操作、APT、泛型等概念更深一层的理解。 实现思路: 通过动态代理获取请求接口参数进行SQL拼凑,并以接口返回值(泛型)类型的RawType和ActualType来适配调用方式和执行结果,以此将实际SQL操作封装在其内部来简化数据库操作的目的。 一、背景 毫无疑问,关于Android数据库现在已经有很多流行好用的ORM框架了,比如:Room、GreenDao、DBFlow等都提供了简洁、易用的API,尤其是谷歌开源的Room是目前最主流的框架。 既然已经有了这么多数据库框架了,为什么还要动手封装所谓自己的数据库框架呢?对于普通 APP 的开发确实完全不需要,这些框架中总有一款可以完全满足你日常需求;但如果你是一个SDK开发者,而且业务是一个比较依赖数据库操作的场景,如果限制不能依赖第三方SDK(主要考量维护性、问题排查、稳定性、体积大小),那就不得不自己去写原生SQLite操作了,这将是一个既繁琐又容易出错的过程(数据库升级/降级/打开/关闭

【asp.net core】7 实战之 数据访问层定义

佐手、 提交于 2020-08-16 07:17:57
0. 前言 在上一篇,我们搭建了一个项目框架,基本上是一个完整的项目。目前而言,大部分的应用基本都是这个结构。好的,不废话了,进入今天的议题:完成并实现数据层的基础实现。 1. 数据实体 通常情况下,一个项目的数据实体中字段并不是完全没有规律可寻。通常情况下,必须有一个主键。有些时候,会要求在数据表中增加上次修改时间和创建时间,以及创建人和修改人的主键。 所以,我们可以创建一个泛型父类,来帮我们定义这些公共字段: using System; namespace Data.Infrastructure { public class BaseEntity<T> { public T Id { get; set; } public string ModifyUserId { get; set; } public DateTime? ModifyTime { get; set; } public string CreatorId { get; set; } public DateTime? CreateTime { get; set; } } } 看上述代码里,命名空间并不在Data里,而是在Data.Infrastructure里。这个命名空间 Infrastructure 用来存放一些项目的架构类或者接口,里面还会其他的类。 那么,给这个类补充一些可能有用的方法: public

PCB Genesis或Incam 右键导入TGZ 实现方法

时光毁灭记忆、已成空白 提交于 2020-08-16 06:55:06
使用Genesis导入TGZ方式很多 的,比如有:写个脚本框选TGZ的的方式实现TGZ导入,将TGZ拖入脚本界面实现TGZ导入, 给Engineering Toolkit窗口句柄注册拖拽事件实现TGZ导入, 右键实现TGZ导入等,本篇介绍最后一种右键导入TGZ的方法. 一.实现效果图 1.tgz文件右键导入 2.tgz文件夹右键导入 二.借助Gateway实现InputTGZ脚本----C#实现代码 1.C#实现代码部份 using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; using System.Xml.Serialization; namespace InputTGZ { static class Program { static Process process = new Process(); private static bool isIncam = false ; static string db_name = " genesis " ; //db名为默认值,满足个性化可以改为配置读取 /// <summary>

ssm框架实现图片上传显示并保存地址到数据库

僤鯓⒐⒋嵵緔 提交于 2020-08-16 03:44:28
本案例是通过springmvc+spring+mybatis框架以商品上传为例,实现的图片上传功能,并把图片的地址保存到数据库并在前台显示上传的图片。 本项目是使用maven搭建的项目,首先看下项目结构 相关配置自行搜索,下边直接实现上传功能 1.创建数据库 DROP TABLE IF EXISTS `product`; CREATE TABLE `product` ( `pid` int(11) NOT NULL AUTO_INCREMENT, `pimage` varchar(255) DEFAULT NULL, PRIMARY KEY (`pid`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of product -- ---------------------------- INSERT INTO `product` VALUES ('2', '6c648d82-dc29-4b92-855e-491741e092a21.jpg'); INSERT INTO `product` VALUES ('3', '80f26905-7342-492c-be6e-c3f0ad81c2aa1.jpg'); INSERT INTO

mybatis整合 遇见的问题

南笙酒味 提交于 2020-08-15 16:50:57
当sql连接不上的时候,先检查是否是sql连接缺少时区问题,当连接少了?serverTimezone=UTC 会各种错误。 比如遇见到的 Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1c4542cb] was not registered for synchronization because synchronization is not active Mapper method has an unsupported return type: class com.lee.entity.Employee 如果sql语句执行成功,那么只是返回类型出了问题。 出现这样的问题是因为 类型不匹配。 解决方法: insert、delete、update操作默认返回一个int类型的整数,将增删改的接口改成int或者void即可。 select操作返回的类型可以是自定义的Map或者是List(目前遇到的),这里等我总结了resultType相关知识再回来补充! 如果有帮助点个赞,一起学习吧! 来源: oschina 链接: https://my.oschina.net/u/4375750/blog/4326491

Cesium项目实战(3)-城市建筑三维白膜数据的制作与效果展示

本秂侑毒 提交于 2020-08-15 16:29:16
作为城市的主体,如果能站在上帝视角,直观的浏览这个城市的建筑面貌,或许这是他对这个城市最直接的感受,往往记住一个城市最直接的就是记住了它的标志性建筑,比如:北京天安门、水立方,上海东方明珠,广州小蛮腰塔等等。那么,在这篇文章里,我们用最简单的,通过还原建筑的方式来将整个城市从二维平面转换为三维立体。   在本篇“城市建筑三维白膜数据的制作与效果展示”中我们主要包括如下几个可视化内容。 城市建筑数据的获取 城市建筑数据的三维白膜建模 城市建筑模型的三维可视化 1. 城市建筑数据的获取   城市建筑数据,指的是一个城市的建筑平面轮廓图,跟某栋建筑的详规、控规图纸不一样,而是城市范围内所有建筑的轮廓,轮廓可以简单的就一个矩形,或者多边形封闭区域,表达的是在这个区域内有栋建筑,不需要详细的信息。   正常途径的话,数据更新最快,也最准确的,当然归属规划、国土相关部门了,但是这类数据往往很难拿到,如果有可能的话,也尽量从官方获取数据。   当然我们如果仅仅只是想做一些研究性的课题,或者其他技术交流、实验性质的项目的话,这个时候,我们对于数据的时效性、准确性就没那么高了,可以在网上下载免费的数据下载器工具软件,或者付费购买一些公司、大佬们写的下载软件,当然这个购买的费用也不贵,可以终生适用,还可以得到免费的升级维护服务。   当然,也有最简单的方式,就是通过一些渠道,QQ群、微信群、论坛

mybatis 缓存的使用, 看这篇就够了

妖精的绣舞 提交于 2020-08-15 14:43:40
@ 目录 1 一级缓存 1.1 同一个 SqlSession 1.2 不同的 SqlSession 1.3 刷新缓存 1.4 总结 2 二级缓存 2.1 配置二级缓存 2.1.1 全局开关 2.1.2 分开关 2.1.3 entity 实现序列化接口 2.2 使用二级缓存 2.3 配置详解 2.3.1 type 2.3.2 eviction 2.3.3 flushInterval 2.3.4 size 2.3.5 readOnly 2.3.6 blocking 2.4 注意事项 缓存的重要性是不言而喻的。 使用缓存, 我们可以避免频繁的与数据库进行交互, 尤其是在查询越多、缓存命中率越高的情况下, 使用缓存对性能的提高更明显。 mybatis 也提供了对缓存的支持, 分为一级缓存和二级缓存。 但是在默认的情况下, 只开启一级缓存(一级缓存是对同一个 SqlSession 而言的)。 以下的项目是在 mybatis 初步使用(IDEA的Maven项目, 超详细) 的基础上进行。 对以下的代码, 你也可以从 我的GitHub 中获取相应的项目。 1 一级缓存 同一个 SqlSession 对象, 在参数和 SQL 完全一样的情况先, 只执行一次 SQL 语句(如果缓存没有过期) 也就是只有在参数和 SQL 完全一样的情况下, 才会有这种情况。 1.1 同一个 SqlSession

pdf.js的使用(1) 站在巨人的肩膀上纯干货分享,没有华丽的词藻

本秂侑毒 提交于 2020-08-15 14:41:52
请耐着性子看完再上手,不难的,全实战干货分享,超详细教程,所见即所得 (pc端和移动端都可以!!!亲测 超给力) 以下是我在实际项目开发中的过程分享 前端是: vue+jsp 1.首先下载pdf.js(怎么下可以去百度),实在不会就私我,我发给你   1.1展示一哈我下载下来的pdf.js的目录结构      1.2接下来可以直接打开viewer.html在浏览器里看看效果,整个页面样式还是非常美观的 而且是纯js写的,真心佩服老外   关于页面的样式你也可以完全自己写不用他的,我实力不允许啊(哭笑!!!)      这个打开的是它默认的xxxxxKey-pldi-09.pdf文件 看源码在viewer.js里面的5153行(这个行号可能会有些差异 )自己去找找看,如果以后要加什么功能基本也是在viewer.js文件里    好了如果你进行到这一步就可以教你怎么调用这个pdf查看器了 2.然后把pdf.js放入你的项目里面( 就是把整个pdfJs文件夹拷贝到你的项目静态资源文件下面,可以把locale文件夹里面除了中英文的东西删了 )       2.1 开始调用 方式(一)    <%--方式一 直接在你要写的html页面用iframe标签嵌入插件的viewer.html页面 file 参数就是pdf文件的路径--%>    <%--<iframe id="pdf" width=