最近在川报网服务器配置ssi(WEB服务器nginx),存在问题。
include virtual=”../../test/test.htm”–> 这种语法格式在apache下木有问题,在nginx就使用不起
nginx 下 这种就能用,说明一点nginx解析的时候 不支持”..”路径!
问题应该可以解决 ,毕竟nginx是开源的。
顺便也验证了我之前文章里《工作5年多了,对所处行业环境及技能的一些认识!》提到的为什么开源比闭源的强的原因?
花了点时间 看了一下nginx 的源码 ,如下两个重要的文件表示是ssi模块
代码如下 | 复制代码 |
src/http/modules/ngx_http_ssi_filter_module.h src/http/modules/ngx_http_ssi_filter_module.c |
这个文件里 的函数 ngx_http_ssi_include 应该就是解释include指令
这个函数 里面 NGX_HTTP_LOG_UNSAFE ,NGX_HTTP_SSI_ERROR 表示的nginx错误信息处理。
那么就找到对应的函数ngx_http_parse_unsafe_uri 在src/http/ngx_http_parse.c里函数具体如下:
代码如下 | 复制代码 |
gx_int_t ngx_http_parse_unsafe_uri(ngx_http_request_t *r, ngx_str_t *uri, ngx_str_t *args, ngx_uint_t *flags) { u_char ch, *p; size_t len; len = uri->len; p = uri->data; if (len == 0 || p[0] == '?') { goto unsafe; } if (p[0] == '.' && len == 3 && p[1] == '.' && (ngx_path_separator(p[2]))) { goto unsafe; } for ( /* void */ ; len; len--) { ch = *p++; if (usual[ch >> 5] & (1 << (ch & 0x1f))) { continue; } if (ch == '?') { args->len = len - 1; args->data = p; uri->len -= len; return NGX_OK; } if (ch == '') { goto unsafe; } if (ngx_path_separator(ch) && len > 2) { /* detect "/../" */ if (p[0] == '.' && p[1] == '.' && ngx_path_separator(p[2])) { goto unsafe; } } } return NGX_OK; unsafe: if (*flags & NGX_HTTP_LOG_UNSAFE) { ngx_log_error(NGX_LOG_ERR, r->connection->log, 0, "unsafe URI "%V" was detected", uri); } return NGX_ERROR; } |
看到 这个 /* detect “/../” */ 注释 你就会明白为什么 不能执行这样的路径 ../../test/test.htm
nginx: 这样的路径存在安全隐患的。
安全的作法不修改nginx,调程序本身的路径,这里就不讨论了,目前的站点木有办法,要用就需要修改ssi模块,再重新编译nginx
修改如下:
代码如下 | 复制代码 |
src/http/modules/ngx_http_ssi_filter_module.c 这个文件函数 ngx_http_ssi_include里注释掉 if (ngx_http_parse_unsafe_uri(r, uri, &args, &flags) != NGX_OK) { |
荒野乱斗国际版 (BrawlStars)最新版本v56.274
下载一波超人内置修改器菜单版 安卓版v1.0.2
下载敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载继承了一座戏园子无限声望铜钱版 内置菜单最新版v1.7
继承了一座戏园子折相思版是游戏的破解版本,在该版本中为玩家提
山河半世橙光清软金手指版 无限鲜花v3.24
山河半世是一款超级好玩的橙光恋爱游戏,在游戏中玩家们需要扮演
蓬莱手游折相思版 安卓版v1.0.0
蓬莱免广告版是游戏的修改版本,在该版本中为玩家去除了广告,玩
当红影后橙光游戏破解版2025 最新版v1.0
当红影后橙光破解版是一款超级好玩的娱乐圈题材的橙光游戏,在这
忽然成了万人迷清软完结版 无限鲜花版v12.15
忽然成了万人迷破解版是一款非常好玩的男性向橙光游戏,在有一天