xml格式

XXE 从入门到放弃

蹲街弑〆低调 提交于 2020-02-14 08:19:36
0x00 前言 如果各位表哥表姐已经懂得啥是 XML, DTD, 那么可以直接从 0x02 什么是 XXE? 开始看; 如果你只是大概知道啥是 XML , 那么我建议你从头开始看! 0x01 XML 与 DTD XXE 漏洞全程为 XML External Entity Injection , 也就是 XML外部实体注入 漏洞。 显然, 这个漏洞和 XML 有关(废话), 那第一步, 先了解什么是 XML 。 什么是XML? 百度百科 可扩展标记语言, 标准通用标记语言的子集, 是一种用于标记电子文件使其具有结构性的标记语言。 简单来说, 它是一种语言, 表现形式类似于 HTML(超文本标记语言) , 而 XML 与 HTML 的差别在于, HMTL 是用于展示数据和页面, 而 XML 是为了更好的存储和传输数据。 HTML的容错能力使得格式可以 不必十分规范, 例如有时可能忘记闭合标签了也不会出错。而 XML 语法就严格很多。XML的语法可以参见 菜鸟教程 简单了解即可。 当然, 为了方面我们理解, 我们这里会简单讨论一下 xml 的构建模块, 即 xml 由什么东西组成. 所有的 XML 文档均由以下简单的构建模块构成: 元素 属性 实体 DATA 元素 元素是啥没啥好讲的, 基本上就长下面的样子. < 元素名 > 值 </ 元素名 > 举个例子, 下面代码中有两个元素,

php随笔4-基本复习-Ajax

霸气de小男生 提交于 2020-02-09 17:48:54
一般使用 XML 作为接收服务器数据的格式,尽管可以使用任何格式,包括纯文本。 HTML 表单 <html> <head> <script src="clienthint.js"></script> </head> <body> <form> First Name: <input type="text" id="txt1" onkeyup="showHint(this.value)"> </form> <p>Suggestions: <span id="txtHint"></span></p> </body> </html> JavaScript  clienthint.js var xmlHttp function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML="" return } xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } var url="gethint.php" url=url+"?q="+str url=url+"&sid="+Math.random() xmlHttp

Google Protocol Buffers 概述

心已入冬 提交于 2020-02-08 23:18:42
Google Protocol Buffers 概述 个人小站,正在持续整理中,欢迎访问: http://shitouer. cn 小站博文地址: Google Protocol Buffers 概述 推荐阅读顺序,希望给你带来收获~ 《 Google Protocol Buffers 概述 》 《 Google Protocol Buffers 入门 》 《 Protocol Buffers 语法指南 》 《 Google Protocol Buffers 编码(Encoding) 》 1. 概述 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。 本文概述介绍Protocol Buffers,以及开始如何开始Protocol Buffers之旅,本系列主要以Java为主(虽然超想看Python的,无奈学的还不够...)。 以下Protocol Buffers简称PB。 2. Protocol Buffers是什么 Protocol Buffers提供了一种灵活,高效,自动序列化结构数据的机制,可以联想XML,但是比XML更小,更快

php 生成bing词典能导入的xml(有道词典->bing词典)

余生长醉 提交于 2020-02-08 14:46:32
    编程以来一直用网易有道词典查单词、翻译;最近一直在看英文方面的资料,于是越来越对有道词典(划词、广告,本来想转灵格斯的,但灵格斯没有android版)不满意,一番试用后决定转bing词典,于是想把有道单词本里的单词导出 再导入bing词典,但操作后才发现有道词典导出的xml和bing词典的xml格式和节点不一样,但我执意要换为bing词典,没办法只好自己自己动手写一个php将有道的xml转为bing词典能导入的xml。 数组转xml是在网上找的,虽然简单,但功能还行。 下面是代码: <?php // 有道词典xml 转为bing词典可以导入的xml /** * 把数组转化为xml,数字索引只支持一维,数字索引和字符索引不能混合 * * @param array $array * @return string */ function arrayToXML($array) { $str_xml = ""; if (is_array($array) && !empty($array)) { $has_number_key = false; foreach ($array as $key => $value) { $parent_key = @func_get_arg(2); if (is_integer($key)) { $has_number_key = true; if

WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(上篇)

淺唱寂寞╮ 提交于 2020-02-08 09:33:07
[爱心链接: 拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道《天天山海经》为此录制的节目视频(苏州话)] ]消息作为WCF进行通信的唯一媒介,最终需要通过写入传输层进行传递。而对消息进行传输的一个前提或者是一项必不可少的工作是对消息进行相应的编码。WCF提供了一系列可供选择的编码方式,它们分别在互操作和性能各具优势。在本篇文章我们将对各种编码方式进行消息的讨论。 从互操作性的角度来看,编码方法很大程度上决定了跨平台支持的能力。有的编码方式是平台无关的,有的则仅限于某种特定的平台。WCF提供了3种典型的编码方式:Binary、Text和MTOM。Binrary以二进制的方式进行消息的编码,但是仅限于.NET平台之间的通信;Text则提供平台无关的基于文本的编码方式。MTOM编码基于WS-MTOM规范,对于改善大规模二进制数据在SOAP消息的传输性能具有重大的意义,既然该编码方式遵循相应的规范,无疑这也是一种跨平台的编码方式。 在正式介绍WCF消息编码之前,我们很有必要了解如下几个实现编码的核心对象:XmlDictionary、XmlDictionary和XmlDIctionaryWriter。 一、XmlDictionary XmlDictionary,顾名思义,它是一个字典,它是从事编码和解码双方共享的一份“词汇表”。这样的说法可能有点抽象,我们不妨做一个类比。比如我说

MyBatis 介绍

久未见 提交于 2020-02-07 15:06:09
MyBatis 介绍 MyBatis 是一款优秀的 ORM(Object Relational Mapping,对象关系映射)框架,它可以通过对象和数据库之间的映射,将程序中的对象自动存储到数据库中。它是 Apache 提供的一个开源项目,之前的名字叫做 iBatis,2010 年迁移到了 Google Code,并且将名字改为我们现在所熟知的 MyBatis,又于 2013 年 11 月迁移到了 Github。 MyBatis 提供了普通 SQL 查询、事务、存储过程等功能,它的优缺点如下。 优点 : 相比于 JDBC 需要编写的代码更少 使用灵活,支持动态 SQL 提供映射标签,支持对象与数据库的字段关系映射 缺点 : SQL 语句依赖于数据库,数据库移植性差 SQL 语句编写工作量大,尤其在表、字段比较多的情况下 总体来说,MyBatis 是一个非常优秀和灵活的数据持久化框架,适用于需求多变的互联网项目,也是当前主流的 ORM 框架。 MyBatis 重要组件 MyBatis 中的重要组件如下: Mapper 配置:用于组织具体的查询业务和映射数据库的字段关系,可以使用 XML 格式或 Java 注解格式来实现; Mapper 接口:数据操作接口也就是通常说的 DAO 接口,要和 Mapper 配置文件中的方法一一对应; Executor:MyBatis 中所有的

mybatis之环境配置

北战南征 提交于 2020-02-06 02:41:29
环境配置介绍 mybatis作为一个框架,必然少不了环境配置,使用框架可以减少很多的代码量,但是却要配置很多的文件,首先看下mybatis的核心配置文件,官方使用文件名(mybatis-config.xml),也可以使用其他名称。 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">(以上为该文件的头信息,其中dtd文件是规定该xml的书写格式) <configuration>(其中书写的是所有的配置信息,但是配置的顺序即标签的顺序必须按照官网上给出的先后顺序进行配置,否则会出现解析不了的情况) <properties resource="JDBC.properties"/>(将数据库的连接信息保存在properties文件中,引入路径进行读取,方便以后的修改以及查看) <settings>(设置一些参数,比如在这里useGeneratedKeys允许 JDBC 支持自动生成主键,需要驱动支持,以便于我们可以知道插入记录的主键) <setting name="useGeneratedKeys" value="true"/> <

序列化和反序列化

我怕爱的太早我们不能终老 提交于 2020-02-06 00:25:59
1, 摘要   序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更加易于调试、便于扩展。本文从多个角度去分析和讲解“序列化和反序列化”,并对比了当前流行的几种序列化协议,期望对读者做序列化选型有所帮助。   简介   文章作者服务于美团推荐与个性化组,该组致力于为美团用户提供每天billion级别的高质量个性化推荐以及排序服务。从Terabyte级别的用户行为数据,到Gigabyte级别的Deal/Poi数据;从对实时性要求毫秒以内的用户实时地理位置数据,到定期后台job数据,推荐与重排序系统需要多种类型的数据服务。推荐与重排序系统客户包括各种内部服务、美团客户端、美团网站。为了提供高质量的数据服务,为了实现与上下游各系统进行良好的对接,序列化和反序列化的选型往往是我们做系统设计的一个重要考虑因素。   本文内容按如下方式组织: 第一部分给出了序列化和反序列化的定义,以及其在通讯协议中所处的位置。 第二部分从使用者的角度探讨了序列化协议的一些特性。

php 微信 统一下单 接口实例

青春壹個敷衍的年華 提交于 2020-02-06 00:23:14
<?php class wechatAppPay { //接口API URL前缀 const API_URL_PREFIX = 'https://api.mch.weixin.qq.com'; //下单地址URL const UNIFIEDORDER_URL = "/pay/unifiedorder"; //查询订单URL const ORDERQUERY_URL = "/pay/orderquery"; //关闭订单URL const CLOSEORDER_URL = "/pay/closeorder"; //公众账号ID private $appid; //商户号 private $mch_id; //随机字符串 private $nonce_str; //签名 private $sign; //商品描述 private $body; //商户订单号 private $out_trade_no; //支付总金额 private $total_fee; //终端IP private $spbill_create_ip; //支付结果回调通知地址 private $notify_url; //交易类型 private $trade_type; //支付密钥 private $key; //证书路径 private $SSLCERT_PATH; private $SSLKEY

2020/2/4学习总结

て烟熏妆下的殇ゞ 提交于 2020-02-05 12:42:21
今天学习了xml相关内容 1.xml是可扩展的标记语言,xml语法上和HTML比较相似,但HTML中的元素是固定的,xml的标签是可以由用户自定义的。它常用来做配置文件 2.语法: 文档声明: 文档声明必须以<?xml 开头,以?>结尾 文档声明必须从文档的0行0列开始 文档声明只有三个属性:version:指定当前xml文档版本,encoding:指定当前文档的编码格式,standalone 元素: 空元素只有开始标签,而没有结束标签,但元素必须自己闭合例如<c/> 元素命名区分大小写,不能使用空格,冒号。 3.当大量的转义字符出现在xml文档中时,建议使用<![CDATA[ 任意内容]]>的方式书写 4.DTD约束 DTD文档类型定义,用来约束xml文档。规定XML文档中元素的名称,子元素的名称及顺序,元素的属性等 DTD语法: DTD 以 <!DOCTYPE 分隔符开头。 元素告诉解析器从指定的根元素解析文档。 DTD标识符是文档类型定义的标识符,可以是系统上文件的路径或Internet上文件的URL。 如果DTD指向外部路径,则称为外部子集。 方括号 [] 包含一个称为内部子集的可选实体声明列表。 内部DTD 如果在XML文件中声明元素,则这样的DTD称为内部DTD。 要将其作为内部DTD引用,XML声明中的 standalone 属性必须设置为 yes 。