ssi

深入浅出Fetch API 带你入解应用场景及适用问题

人盡茶涼 提交于 2020-08-07 01:29:34
Fetch API提供了一个fetch()方法,它被定义在BOM的window对象中,你可以用它来发起对远程资源的请求。 该方法返回的是一个Promise对象,让你能够对请求的返回结果进行检索。 为了能够进一步的解释Fetch API,下面我们写一些代码具体介绍它的用法: 下面这个例子将会通过Flicker API来检索一些图片,并将结果插入到页面中。到目前为止, Fetch API还未被所有的浏览器支持。因此,如果你想体验这一技术,最好使用最新版本的Chrome浏览器。为了能够正确的调用Flicker API,你需要申请自己的API KEY,将其插入到代码中的适当位置,即your_api_key那个位置。 来看看第一个任务:我们使用API来从Flicker中检索一些有关“企鹅”的照片,并将它们展示在也没中,代码如下。 Promise, 当Promise被通过,它会返回一个Response对象,通过该对象的json()方法可以将结果作为JSON对象返回。response.json()同样会返回一个Promise对象,因此在我们的例子中可以继续链接一个then()方法。 为了能够和传统的XMLHttpRequest进行对比,我们使用传统的方法来编写一个同样功能的函数: 可以发现,主要的不同点在于:传统上我们会使用事件处理器,而不是Promise对象。

MySQL用户和管理权限

久未见 提交于 2020-08-06 02:19:44
前言 在MySQL 5.7.24中,关于用户及用户权限的相关信息,都保存在了mysql库中的user表中,可以将user表中大致分为用户列、权限列、安全列、资源控制列这几种。 1、用户列 user表的用户列包括 Host、 User、password,分别表示主机名、用户名和密码。其中 user和 Host为user表的联合主踺。当用户与服务器之间建立连接时,输入的账户信息中的用户名称、主机名和密码必须匹配user表中对应的字段,只有3个值都匹配的时候,才允许连接的建立。这3 个字段的值就是创建账户时保存的账户信息。修改用户密码时,实际就是修改user表的password字段值。 2、权限列 权限列的字段决定了用户的权限,描述了在全局范围内允许对数据和数据库进行的操作。包括查询权限、修改权限等普通权限,还包括了关闭服务器、超级权限和加载用户等高级权限。普通权限用于操作数据库;高级权限用于数据库管理。 user表中对应的权限是针对所有用户数据库的。这些字段值的类型为 ENUM,可以取的值只能为 Y和 N, Y表示该用户有对应的权限; N表示用户没有对应的权限。查看user表的结构可以看到,这些字段的值默认都是 N。如果要修改权限,可以使用 GRANT语句或 UPDATE语句更改 user表的这些字段来修改用户对应的权限。 3、安全列 安全列只有6个字段,其中两个是 SSI相关的

tomcat中SSIPrintenv.java漏洞修复

♀尐吖头ヾ 提交于 2020-08-05 14:58:53
Tomcat是一个开源的轻量级Web应用服务器,在我们平常工作过程中接触得非常多。代码也非常经典,很多人为了提升自己的技术也会去阅读学习Tomcat的源码。但正如著名诗人李白所说的:世界上本没有漏洞,使用的人多了,也就发现了漏洞。比如今年的2月份就爆出了存在文件包含漏洞。今天我们选择 两个 比较直观的Tomcat漏洞去 模拟整个漏洞被攻击的过程,以及漏洞为什么会产生,Tomcat大神们又是如何应对的。 【攻击一:XSS攻击】 一、SSI技术说明 首先演示的漏洞和Tomcat的SSI功能有关,SSI是什么 SSI技术,也叫作Serve Side Includes,SSI(服务器端包含)是放置在HTML页面中的指令,并在服务页面时在服务器上对其进行评估。它们使您可以将动态生成的内容添加到现有的HTML页面,而不必通过CGI程序或其他动态技术来提供整个页面。使用SSI技术文件默认的后缀名为.shtml; 举例:我们可以将指令放置到现有的HTML页面中,例如: !--#echo var= "DATE_LOCAL" --> 当该页面被执行时,将会显示如下结果 Sunday, 22-March-2020 18 :28 :54 GMT SSI最常见的用途之一:输出CGI程序的结果,例如``命中计数器''。关于该技术更为详细的说明参见: http://httpd.apache.org/docs

[BJDCTF2020]EasySearch

你离开我真会死。 提交于 2020-05-05 13:57:40
0x00 知识点 Apache SSI 远程命令执行漏洞 链接: https://www.cnblogs.com/yuzly/p/11226439.html 当目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用<!--#exec cmd=”id” -->语法执行命令。 使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。 敏感文件泄露 index.php.swp 0x01 解题 扫描一下目录,发现.swp备份文件 <?php ob_start(); function get_hash(){ $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()+-'; $random = $chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)].$chars[mt_rand(0,73)];//Random 5 times $content =

DVB-C\DVB-S\DVB-T知识介绍

人盡茶涼 提交于 2020-05-05 01:10:50
1.简介 数字视频广播(英语:Digital Video Broadcasting,缩写:DVB),是由“DVB Project”维护的一系列为国际所承认的数字电视公开标准。“DVB Project”是一个由300多个成员组成的工业组织,它是由欧洲电信标准化组织(European Telecommunications Standards Institute, ETSI)、欧洲电子标准化组织(European Committee for Electrotechnical Standardization, CENELEC)和欧洲广播联盟(European Broadcasting Union, EBU)联合组成的“联合专家组”(Joint Technical Committee, JTC)发起的。DVB组织的徽标如图1所示。                                                              图1. DVB Project的LOGO DVB标准现如今被应用于世界上大部分的国家和地区。图2显示了各国使用的数字电视地面广播标准。图中浅蓝色代表DVB-T标准,深蓝色代表DVB-T2标准,绿色代表ATSC标准,粉红红色代表ISDB-T标准,黄色代表DTMB标准(我国的标准)。从图中可以看出ATSC的使用国家主要分布在北美地区,ISDB

JSP介绍与语法-java之JSP学习第一天(非原创)

心已入冬 提交于 2020-05-04 00:04:06
文章大纲 一、JSP 简介 二、JSP 生命周期 三、JSP 语法 四、学习资料下载 五、参考文章 一、JSP 简介 1. 什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。 JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。 JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。 2. 为什么使用JSP? JSP程序与CGI程序有着相似的功能,但和CGI程序相比,JSP程序有如下优势: 性能更加优越,因为JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。 服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本。 JSP 基于Java Servlet API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。 JSP页面可以与处理业务逻辑的

stm32+lwip(四):网页服务器测试

╄→гoц情女王★ 提交于 2020-05-02 19:42:36
我是卓波,很高兴你来看我的博客。 系列文章: stm32+lwip(一):使用STM32CubeMX生成项目 stm32+lwip(二):UDP测试 stm32+lwip(三):TCP测试 stm32+lwip(四):网页服务器测试 stm32+lwip(五):以太网帧发送测试 ST官方有lwip的例程,下载地址如下: https://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-library-expansion/stsw-stm32070.html 本文例子参考ST官方给出的例程。 一、准备 ST例程文档关于lwip的介绍如下: 由此可以看到LWIP有三种API,在本文中,使用Raw API。 HTTP 协议是建立在 TCP 协议之上的一种应用,本文用到的 TCP Raw API 如下 : 二、移植官方例程 官方例程在 stsw-stm32070\STM32F4x7_ETH_LwIP_V1.1.1\Project\Standalone\httpserver 目录下,拷贝以下文件到我们工程: fs.c/h 是文件的操作 fs.data.c/h 存放了网页的数据 httpd

什么是电子元器件 电子元件和电子器件的区别

若如初见. 提交于 2020-04-21 18:38:58
电子元器件是元件和器件的总称。电子元件:指在工厂生产加工时不改变分子成分的成品。如电阻器、电容器、电感器。因为它本身不产生电子,它对电压、电流无控制和变换作用,所以又称无源器件。 简介 电子元器件是元件和器件的总称。电子元件:指在工厂生产加工时不改变分子成分的成品。如电阻器、电容器、电感器。因为它本身不产生电子,它对电压、电流无控制和变换作用,所以又称无源器件。电子器件:指在工厂生产加工时改变了分子结构的成品。例如晶体管、电子管、集成电路。因为它本身能产生电子,对电压、电流有控制、变换作用(放大、开关、整流、检波、振荡和调制等),所以又称有源器件。按分类标准,电子器件可分为12个大类,可归纳为真空电子器件和半导体器件两大块。电子元器件发展史其实就是一部浓缩的电子发展史。电子技术是十九世纪末、二十世纪初开始发展起来的新兴技术,二十世纪发展最迅速,应用最广泛,成为近代科学技术发展的一个重要标志。 分类简介 概述 一、元件:工厂在加工产品是没有改变分子成分产品可称为元件,不需要能源的器件。它包括:电阻、电容、电感器。(又可称为被动元件PassiveComponents)(1)电路类器件:二极管,电阻器等等(2)连接类器件:连接器,插座,连接电缆,印刷电路板(PCB) 二、器件:工厂在生产加工时改变了分子结构的器件称为器件 器件分为: 1、主动器件,它的主要特点是:(1)自身消耗电能(2

大神教你Nginx常用基础配置方案

谁都会走 提交于 2020-03-16 01:42:00
Nginx的fastcgi模块参数设置 Nginx 有两个配置文件fastcgi_params、fastcgi.conf,两者唯一的区别是,fastcgi.conf 多一个参数 SCRIPT_FILENAME,diff显示如下: $diff fastcgi fastcgi_params < fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; vim 进入/usr/local/nginx/conf/fastcgi_params文件 #请求的参数;如?app=123fastcgi_param fastcgi_param QUERY_STRING $query_string; ##请求的动作(GET,POST) fastcgi_param REQUEST_METHOD $request_method; #请求头中的Content-Type字段 fastcgi_param CONTENT_TYPE $content_type; #请求头中的Content-length字段 fastcgi_param CONTENT_LENGTH $content_length; #脚本名称 fastcgi_param SCRIPT_NAME $fastcgi_script_name; #请求的地址不带参数 fastcgi

include SSI in javascript code

僤鯓⒐⒋嵵緔 提交于 2020-01-16 19:14:10
问题 based on the query string, I include a portion of a different code SSI in the footer page. My query string for example: ?headId=520&genderType=2 ?headId=600&genderType=1 function GetQueryStringParams(sParam){ var sPageURL = window.location.search.substring(1); var sURLVariables = sPageURL.split('&'); for (var i = 0; i < sURLVariables.length; i++) { var sParameterName = sURLVariables[i].split('='); if (sParameterName[0] == sParam) { return sParameterName[1]; } } }​ $(document).ready(function()