SSI服务器端包含注入

简介: SSI服务器端包含注入

服务器端嵌入:Server Side Include,是一种类似于ASP的基于服务器的网页制作技术。大多数(尤其是基于Unix平台)的WEB服务器如Netscape Enterprise Server等均支持SSI命令。


原理


将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本、图形或应用程序信息包含到网页中。例如,可以使用 SSI 包含时间/日期戳、版权声明或供客户填写并返回的表单。对于在多个文件中重复出现的文本或图形,使用包含文件是一种简便的方法。将内容存入一个包含文件中即可,而不必将内容输入所有文件。通过一个非常简单的语句即可调用包含文件,此语句指示 Web 服务器将内容插入适当网页。而且,使用包含文件时,对内容的所有更改只需在一个地方就能完成。

因为包含 SSI 指令的文件要求特殊处理,所以必须为所有 SSI 文件赋予 SSI文件扩展名。默认扩展名是 .stm、.shtm 和 .shtml

 

shtml和asp 有一些相似,以shtml命名的文件里,使用了ssi的一些指令,就像asp中的指令,你可以在SHTML文件中写入SSI指令,当客户端访问这些shtml文件时,服务器端会把这些SHTML文件进行读取和解释,把SHTML文件中包含的SSI指令解释出来

比如:你可以在SHTML文件中用SSI指令引用其他的html文件(#include ),服务器传送给客户端的文件,是已经解释的SHTML不会有SSI指令。它实现了HTML所没有的功能,就是可以实现了动态的SHTML,可以说是HTML的一种进化吧。像新浪的新闻系统就是这样的,新闻内容是固定的但它上面的广告和菜单等就是用#include引用进来的。

 

支持


Apache默认是不支持SSI的,需要我们更改httpd.conf来进行配置。我这里以windows平台的Apache 2.0.x为例:打开conf目录下的httpd.conf文件,搜索“AddType text/html .shtml”,搜索结果:

# AddType text/html .shtml

# AddOutputFilter INCLUDES .shtml

把这两行前面的#去掉。


然后搜索“Options Indexes FollowSymLinks”


在搜索到的那一行后面添加“ Includes”


即将该行改变为:

Options Indexes FollowSymLinks Includes


保存httpd.conf,重起apache即可。


开启shtml


打开文件 ./include/config.inc.php <?php


//数据库配置信息

define('DB_HOST','localhost'); //数据库服务器主机地址

define('DB_USER','root'); //数据库帐号

define('DB_PW','root'); //数据库密码

define('DB_NAME','phpcmsutf'); //数据库名


define('DB_PRE','phpcms_'); //数据库表前缀,同一数据库安装多套Phpcms时,请修改

表前缀

define('DB_CHARSET','utf8'); //数据库字符集

define('DB_PCONNECT',0); //0 或1,是否使用持久连接

define('DB_DATABASE','mysql'); //数据库类型


//网站路径配置

define('PHPCMS_PATH','/cms/phpcms_utf/'); //Phpcms框架访问路径,相对于域名

//shtml 支持


将它:

define('SHTML',0); //是否支持 shtml,需要服务器支持,并且生成文件扩展名为 shtml


改成:

define('SHTML',1); //是否支持 shtml,需要服务器支持,并且生成文件扩展名为 shtml。

nginx


编辑nginx配置文件 vi /usr/local/nginx/conf/nginx.conf

加入如下代码ssi on;

ssi_silent_errors on;

ssi_types text/shtml;


保存 重启 nginx

 

 

使用

SSI是为WEB服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。如:

<!--#include file="info.htm"-->

就是一条SSI指令,其作用是将"info.htm"的内容拷贝到当前的页面中,当访问者来浏览时,会看到其它HTML文档一样显示info.htm其中的内容。

 

在一些WEB服务器上(如IIS 4.0/SAMBAR 4.2),包含 #include 指令的文件必须使用已被映射到 SSI解释程序的扩展名;否则,Web 服务器将不会处理该SSI指令;默认情况下,扩展名 .stm、.shtm 和 .shtml 被映射到解释程序(Ssinc.dll)。


Apache则是根据你的设置情况而定,修改srm.conf如:


AddType text/x-server-parsed-html .shtml 将只对.shtml扩展名的文件解析SSI指令


AddType text/x-server-parsed-html .html将对所有HTML文档解析SSI指令


Netscape WEB服务器直接使用Administration Server(管理服务器)可打开SSI功能。

Website使用Server Admin程序中的Mapping标签,扩展名添加内容类型为:wwwserver/html-ssi


Cern服务器不支持SSI,可用SSI诈骗法,上下载一个PERL脚本,即可使你的CERN服务器使用一些SSI指令。(不支持exec指令。)

 

 

指令  (https://baike.baidu.com/item/SSI)

 

格式

程序代码:

<!-– 指令名称 参数="参数值"-->

<!-– 指令名称 参数="参数值"-->

如 程序代码:

<!--#include file="info.htm"-->

<!--#include file="info.htm"-->

说明:

1.<!-- -->;是HTML语法中表示注释,当WEB服务器不支持SSI时,会忽略这些信息。

2.#include 为SSI指令之一。

3.file 为include的参数,info.htm为参数值,在本指令中指将要包含的文档名。

注意:

1.<!--与#号间无空格,只有SSI指令与参数间存在空格。

2.上面的标点="",一个也不能少。

3.SSI指令是大小写敏感的,因此参数必须是小写才会起作用。

 

 

<!--#exec cmd="cat /etc/passwd"-->;将会显示密码文件

<!--#exec cmd="dir /b"-->;将会显示当前目录下文件列表

<!--#exec cgi="/cgi-bin/gb.cgi"-->;将会执行CGI程序gb.cgi。

<!--#exec cgi="/cgi-bin/access_log.cgi"-->;将会执行CGI程序access_log.cgi。

<!--#exec cmd="cat /etc/passwd"-->;将会显示密码文件

<!--#exec cmd="dir /b"-->;将会显示当前目录下文件列表

<!--#exec cgi="/cgi-bin/gb.cgi"-->;将会执行CGI程序gb.cgi。

<!--#exec cgi="/cgi-bin/access_log.cgi"-->;将会执行CGI程序access_log.cgi。

 

永远相信 永远热爱


相关文章
|
4月前
|
JavaScript API
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
|
弹性计算 安全 PHP
阿里云ECS phpcms v9 各种注入漏洞补丁
用阿里云ECS服务器,上传了用phpcms v9做的项目,没想到还能帮我查漏洞,于是各种百度,下面记录下百度到的答案
86091 0
|
JavaScript NoSQL 前端开发
MongoDB服务器端的JavaScript注入
安全研究者agixid在MongoDB数据库2.2.3版本上发现一个安全漏洞,并且表示Metasploit利用payload正在开发当中。
1032 0
|
JavaScript 前端开发 网络协议
一行代码解决iframe挂马(服务器端注入、客户端ARP注入等)
一行代码解决iframe挂马(包含服务器端注入、客户端ARP注入等)本文原创:linr@cncert.net 请转载时保留版权信息 相信大多数朋友都是iframe木马的受害者,有朋友的网站被注入了N回iframe,心情可想而知。
1131 0
|
4天前
|
弹性计算
阿里云2核16G服务器多少钱一年?亲测价格查询1个月和1小时收费标准
阿里云2核16G服务器提供多种ECS实例规格,内存型r8i实例1年6折优惠价为1901元,按月收费334.19元,按小时收费0.696221元。更多规格及详细报价请访问阿里云ECS页面。
37 9
|
1天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
4天前
|
弹性计算 异构计算
2024年阿里云GPU服务器多少钱1小时?亲测价格查询方法
2024年阿里云GPU服务器每小时收费因实例规格不同而异。可通过阿里云GPU服务器页面选择“按量付费”查看具体价格。例如,NVIDIA A100的gn7e实例为34.742元/小时,NVIDIA A10的gn7i实例为12.710156元/小时。更多详情请访问阿里云官网。
34 2
|
10天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
40 3