1

我最近尝试用它http_substitution_filter_module来过滤和替换我的 nginx 服务器中的一些内容。
添加subs_filter规则后,我不能再使用Rangeheader 来检索文件的一部分,而是检索全部内容。

示例:
flag.txt/var/www/html内容中:

The flag is FLAG{IAMFLAGYEEAH}.

我只能curl -r 13-16 <server-address>/flag.txt用来获取文件的一部分。输出:

LAG{

但是如果我启用了sub_filter规则,Range标题就不再起作用了。通过使用相同的命令,我得到以下结果:

The flag is FLAG{NOFLAGFORYOU}.

尽管过滤器可以完美运行,但仍会返回完整内容。

这是我的nginx/sites-enabled/default配置(其他设置与默认设置相同):

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/ =404;
    subs_filter_types text/plain;
    subs_filter "FLAG{\w*}" "FLAG{NOFLAGFORYOU}" ir;
}

我的 nginx 版本是1.14.0. 该模块是通过命令安装的apt install libnginx-mod-http-subs-filter

我应该如何保持Range标题工作并同时过滤内容?

4

0 回答 0