标签: http-headers

X-Powered-By、Server 和其他类似的 HTTP 标头有什么用?

有什么用的ServerX-Powered-By以及其他类似的标题?看起来共识是应该删除它们,以便自动漏洞扫描程序不会立即知道他们正在处理哪个软件的哪个版本,因此自动漏洞发现变得更加困难。

是否存在让全世界知道该站点在 IIS 7 上运行并且是X-Powered-ByASP.NET 版本 4确实有用的场景?

security http-headers

22
推荐指数
1
解决办法
1万
查看次数

Apache proxy_http 重定向到 ip 并设置主机名

希望你们能帮助我解决我遇到的代理问题。

我已经拥有的

我已经设置了一个 apache http 反向代理,将请求从 *.proxy.domain 代理到 *.intern.domain。apache 是从外部网络访问我的内部 web 应用程序的唯一方法。

例子:

app.proxy.domain -> app.intern.domain
mail.proxy.domain -> mail.intern.domain
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但我有以下问题。

问题
我想代理以下请求:

app.proxy.domain -> app.internal.domain
app-dev.proxy.domain -> app-dev.internal.domain
Run Code Online (Sandbox Code Playgroud)

这没问题,但不幸的是 app-dev 服务器运行 app 服务器 webapplication 的精确副本,并且这个 webapplication 只响应它的主机名(app.intern.domain)

所以我需要做的是代理以下内容

app.proxy.domain -> app.internal.domain (10.0.1.1)
app-dev.proxy.domain -> app.internal.domain (10.0.1.2)
Run Code Online (Sandbox Code Playgroud)

我可以通过在 /etc/hosts 中添加“10.0.1.2 app.internal.domain”来做第二件事,但这也意味着 app.proxy.domain 将登陆开发服务器。

我正在寻找一个选项,仅在 app-dev.proxy.domain 的 vhost 配置文件中设置 /etc/hosts 条目,以便所有其他 vhost 配置都将仅使用 app.intern.domain 的 DNS。

想法...

有没有办法告诉 apache 配置,

ProxyPass / http://10.0.1.2/
Run Code Online (Sandbox Code Playgroud)

但是发送 app.intern.domain 作为主机名?

编辑 dev-servers 网络应用程序以收听 app-dev 是没有选择的,因为它应该是一个精确的副本(不是我的决定......)

谢谢!

reverse-proxy hostname http-headers apache-2.2

20
推荐指数
1
解决办法
5万
查看次数

X-FORWARDED-FOR 可以包含多个 IP

可以X-FORWARDED-FOR包含多个IP地址吗?如果是这样,为什么?一个说明性的例子会很棒。

http http-headers

20
推荐指数
2
解决办法
2万
查看次数

位置中的 add_header 指令覆盖服务器中的 add_header 指令

使用nginx 1.2.1我可以使用add_header以下方法添加多个标头:

server {
    listen       80;
    server_name  localhost;
    root /var/www;
    add_header Name1 Value1;      <=== HERE
    add_header Name2 Value2;      <=== HERE

    location / {
        echo "Nginx localhost site";
    }
}
Run Code Online (Sandbox Code Playgroud)

结果

GET /
HTTP/1.1 200 OK
Name1: Value1
Name2: Value2
Run Code Online (Sandbox Code Playgroud)

但是,我一使用add_header里面的指令location,下面的其他add_header指令就会server被忽略

server {
    listen       80;
    server_name  localhost;
    root /var/www;
    add_header Name1 Value1;      <=== HERE
    add_header Name2 Value2;      <=== HERE

    location / {
        add_header Name3 Value3;  <=== HERE
        add_header Name4 …
Run Code Online (Sandbox Code Playgroud)

ubuntu nginx http-headers

19
推荐指数
1
解决办法
1万
查看次数

如何在 Apache 中使用 .htaccess 删除 HTTP 标头?

我有一个网站,它为 PHP 请求发送“缓存控制”和“pragma”HTTP 标头。
我没有在代码中这样做,所以我假设它是某种 Apache 配置,正如这个问题所建议的那样(对于这个问题的上下文,你真的不需要去那里)

我的 .htaccess 文件中没有任何内容,所以它必须在 Apache 的配置中,但我无法访问它,这是一个共享主机,我只能通过 FTP 访问我的网站目录。

有什么方法可以将指令添加到我的.htaccess 文件中,以删除全局配置添加的标头,或者以其他方式覆盖该指令,以便它们不会首先添加?

非常感谢
丹尼尔

.htaccess remove http-headers apache-2.2

18
推荐指数
1
解决办法
3万
查看次数

在某些情况下,Referer 从 HTTPS 传递到 HTTP...如何?

理论上,浏览器不会将引用信息从 HTTPS 传递到 HTTP 站点。根据我的经验,这一直是正确的。但我刚刚发现了一个例外,我想了解它为什么有效,以便我也可以使用它。

https://www.google.ca/上搜索“我的推荐人是什么”,
例如:https : //www.google.ca/search? q = what+is+my+referer

有几个站点会显示引用。他们似乎都在不应该“工作”的时候“工作”。例如,单击 www.whatismyreferer.com 之一。我得到:

 Your referer:
 https://www.google.ca/
Run Code Online (Sandbox Code Playgroud)

请注意,有时,我很少会得到“没有推荐人”的结果。返回并再次单击该链接,下次它就会“工作”。

这不应该发生。www.whatismyreferer.com 是一个非 HTTPS 站点。不应传递引用标头,但确实传递了。

这里发生了什么,我如何从我的 HTTPS 站点到我链接到的 HTTP 站点执行相同的操作?

http https http-headers

17
推荐指数
1
解决办法
3万
查看次数

nginx 传回自定义标头

我有以下例子

           location / {
                    proxy_read_timeout 2000;
                    proxy_next_upstream error;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header Host $http_host;
                    proxy_pass_header X_CUSTOM_HEADER;
                    proxy_redirect off;
                    proxy_max_temp_file_size 0;
                    proxy_pass https://prod;
                    break;
            }
Run Code Online (Sandbox Code Playgroud)

现在当我使用以下卷曲线

curl --head -H "X_CUSTOM_HEADER: foo" http://domain.com/api/test
Run Code Online (Sandbox Code Playgroud)

现在这不起作用.. 后端的 apache/php 看不到标题。如果我绕过 nginx,它就可以工作

curl --head -H "X_CUSTOM_HEADER: foo" http://web1.domain.com/api/test
Run Code Online (Sandbox Code Playgroud)

nginx http-headers

16
推荐指数
1
解决办法
2万
查看次数

如果它不存在,则在 apache 中设置标头

我有一个正在注入一些标头的代理,但我想修改它,以便它只设置标头(如果标头尚不存在):

<Location /api>    
    RequestHeader set MY_HEADER "value"

    ProxyPass http://127.0.0.1:8000/api
    ProxypassReverse http://127.0.0.1:8000/api
</Location>
Run Code Online (Sandbox Code Playgroud)

这可能吗?

reverse-proxy http-headers apache-2.2

16
推荐指数
3
解决办法
4万
查看次数

是否有任何理由在 Apache 中保留“服务器”响应标头

我的服务器响应Server: Apache/2.2.15 (CentOS)所有请求。我猜这放弃了我的服务器架构,使黑客尝试变得更容易。

这对网络浏览器有用吗?我应该坚持下去吗?

http-headers apache-2.2

16
推荐指数
2
解决办法
1709
查看次数

带有 Apache 环境变量的 RequestHeader

我已将 Apache 设置为负载平衡器。我想让 apache 设置 X-Forwarded-Proto 标头,但这不起作用:

RequestHeader set X-Forwarded-Proto "%{SERVER_PROTOCOL}e"
Run Code Online (Sandbox Code Playgroud)

标头设置为空。知道为什么吗?

load-balancing http-headers apache-2.2

14
推荐指数
4
解决办法
3万
查看次数