jekyll Web服务器列目录漏洞

发布时间: 更新时间: 总字数:315 阅读时间:1m 作者: IP上海 分享 网址
专栏文章
  1. 使用Jekyll在Github上搭建博客 -- 环境安装
  2. 使用Jekyll在Github上搭建博客 -- 如何将博客上传至github
  3. 使用Jekyll在Github上搭建博客 -- 分页实现
  4. 使用Jekyll在Github上搭建博客 -- 子菜单的实现
  5. Jekyll 页面 liquid 语法介绍
  6. 采用Docker和解决Github Pages禁止百度爬虫的问题
  7. jekyll Web服务器列目录漏洞(当前)
  8. Jekyll发布文章时字符乱码解决办法 -- invalid byte sequence in GBK

将网站迁移到云中,采用nginx代理端口,发现Web服务器列目录漏洞,解决方式如下。

问题描述

将网站迁移到云中,采用nginx代理端口,发现Web服务器列目录漏洞。

解决方案

配置nginx服务器:

[root@xiexianbin_cn conf.d]# cat xiexianbin_cn.conf
upstream www.xiexianbin.cn {
    server 127.0.0.1:8080;
    #server xiexianbin.github.io;
}

server {
    listen 80;
    server_name www.xiexianbin.cn;
    rewrite ^(.*) https://$server_name$1 permanent;
    try_files $uri $uri.html $uri/ =404;
}

server {
    listen 80;
    server_name xiexianbin.cn;
    rewrite ^(.*) https://www.xiexianbin.cn permanent;
    try_files $uri $uri.html $uri/ =404;
}

server {
    listen       443;
    server_name  www.xiexianbin.cn;
    ssl          on;
    #charset koi8-r;
    access_log /var/log/nginx/www.xiexianbin.cn.access.log main;

    try_files $uri.html $uri/ =404;

    ### SSL cert files ###
    ssl_certificate      /var/local/ssl/xiexianbin_cn/1_www.xiexianbin.cn_bundle.crt;
    ssl_certificate_key  /var/local/ssl/xiexianbin_cn/2_www.xiexianbin.cn.key;
    ### Add SSL specific settings here ###
    keepalive_timeout    60;


    location / {
        #root   html;
        #index index.html index.htm;
        proxy_pass http://www.xiexianbin.cn;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
        include /etc/nginx/conf.d/proxy.conf;
        proxy_set_header X-Forwarded-Proto https;
        try_files $uri $uri.html $uri/ =404;
    }
}
[root@xiexianbin_cn conf.d]#

添加try_files即可解决该问题,代码如下:

try_files $uri $uri.html $uri/ =404;

Apache

The Apache web server has very extensive support for content negotiation and can handle extensionless URLs by setting the multiviews option in your httpd.conf or .htaccess file:

Options +MultiViews

Nginx

The try_files directive allows you to specify a list of files to search for to process a request. The following configuration will instruct nginx to search for a file with an .html extension if an exact match for the requested URI is not found.

try_files $uri $uri.html $uri/ =404;

参考

  1. http://jekyllrb.com/docs/permalinks/
  2. http://jekyllrb.com/docs/configuration/
  3. http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数