标签: http-headers

设置除指定 URL 之外的 Apache HTTP 标头

我正在使用Apache 2.2并希望在大多数站点中将X-Frame-Options标头设置为“拒绝”。我可以使用mod_headers无条件地打开它。但是,有一个 CGI 脚本会返回必须装帧的内容,因此我需要为该脚本关闭它。有没有办法做到这一点?

我正在使用 Debian 的 Apache 2.2.9。

http cgi http-headers apache-2.2

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

使用 HTTP 标头的 Haproxy 负载平衡

我们正在使用 HAProxy 来平衡我们的 websocket 和 Comet 应用程序。后面有一个 HAProxy 和 3 个应用程序在运行。我们使用 HTTP 基本身份验证(将来我们将使用其他类型的身份验证,如 OAuth)来识别连接的用户。

我们不能使用常规循环,因为给定用户的连接最终在同一台服务器上很重要。在哪里并不重要,但重要的是他们使用相同的服务器。

我知道 HAProxy 是一种基于智能 cookie 的方法,但不幸的是,在我们的例子中,有时,同一用户会从不同的机器连接,所以 cookie 不起作用)。

是否可以使用 HTTP Authorization 标头的散列来进行负载平衡?另外,这更复杂,是否可以定义我们自己的散列方法?

后续问题[在威利的回应之后]:

既然可以做balance hdr(Authorization),是否可以在登录字段上做(解析后)?

另外,确切的算法是什么?我相信它的形式是hash(Authorization) % number_of_backend_server,但是,散列函数是什么,更重要的是,它是否可以调整?(或者我可以添加一个偏移量)。

我问是因为这个应用程序实际上是保持 XMPP 组件连接打开,我需要使用相同的算法对 XMPP 组件进行负载平衡toXMPP 节中的jid 由 HTTP 标头授权确定。

load-balancing http-headers haproxy socket

8
推荐指数
1
解决办法
5163
查看次数

在apache下获取认证用户

在 Windows 上使用带有 mod_auth_sspi 和 mod_headers 的 Apache 2.2。我正在尝试将当前经过身份验证的用户传递到 X-Remote-User 标头中的代理目标。

我希望这很简单,但是我已经与 Apache 争论了一个小时,在文档或谷歌中找不到秘诀。

我的配置如下。它使用 Active Directory 正确验证用户,然后将请求代理到位于后面的服务器。但是,不会添加 X-Remote-User 标头。似乎 REMOTE_USER 环境变量不存在。AUTH_USER 也不行。

我知道经过身份验证的用户名在某处可用,但我如何获得它?

ProxyRequests off
ProxyPass /clsoap/ http://127.0.0.1:12001/clsoap/

<Location /clsoap/>
    ProxyPassReverse /clsoap/

    AuthName "ADTest"
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    SSPIDomain primary.example.com
    SSPIUsernameCase lower
    SSPIOfferBasic Off
    Require valid-user

    RequestHeader set X-Remote-User "%{REMOTE_USER}e" env=REMOTE_USER
    RequestHeader set X-Auth-User "%{AUTH_USER}e" env=AUTH_USER
</Location>
Run Code Online (Sandbox Code Playgroud)

authentication http-headers apache-2.2

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

在 nginx 上禁用 206 部分内容响应

我有一个使用视频标签的 HTML5 网络应用程序。根据用户的操作,视频的不同部分将作为响应播放。此视频不超过 5MB。

我需要在客户端上完全下载此视频,否则如果要播放的部分在视频末尾,用户将不得不等待缓冲。实际上,浏览器的行为是询问是否支持范围请求并从我的服务器 nginx 获取 HTTP 206 部分内容响应。

我找到了一种方法来做我想做的事情,使用 xhr2 将整个视频下载为 BLOB。但是,我想知道对于不支持 xhr2 的浏览器,是否有可能让 nginx 拒绝范围请求并发送经典的 HTTP 200 响应,以便浏览器获取整个视频。

那可能吗?非常感谢您的帮助!

nginx http-headers html5

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

Haproxy:拒绝来自文件的用户代理流量

我正在尝试使用带有 -f 选项的 haproxy ACL 从文件中读取来拒绝来自特定用户代理的连接(通过匹配用户代理标头的子字符串)。但是它不起作用,它运行时好像忽略了配置。

有更多haproxy经验的人可以指出我缺少什么吗?或者关于如何调试这个 haproxy 配置的一些提示?

我正在运行 haproxy 1.4.18。

这是 haproxy.cfg 的摘录:

listen http 0.0.0.0:80
    acl abuser hdr_sub(user-agent) -f /etc/haproxy/abuser.lst
    tcp-request content reject if abuser
    mode http
    server www1 127.0.0.1:8080 maxconn 10000
Run Code Online (Sandbox Code Playgroud)

这是abuser.lst 文件的内容:

# annoying bots
annoyingbot1
annoyingbot2
Run Code Online (Sandbox Code Playgroud)

access-control-list blocking http-headers haproxy useragent

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

是否可以根据 IP 地址提供特定页面?

我一直是对我拥有的两个 WordPress 网站进行暴力攻击的目标。攻击者正在使用旧的 XML-RPC 来放大暴力密码攻击。幸运的是,我们的密码生成得非常好,所以我非常怀疑他永远不会去任何地方。

我一直在使用 iptables 来阻止他再次弹出的请求(总是来自同一个虚拟云提供商),但我更愿意修改服务器,以便每当他的 IP 地址请求任何页面时,他都会收到一个响应告诉他获得生命。大多数请求都是 POST,所以理想情况下,我只想修改响应标头以包含诸如“下次祝你好运!”之类的内容。或同样令人满意的东西。

这可能吗?我远不是 Apache 的专家,所以我不确定实现这会有多困难。但即使需要我花费数小时,满足感也将是无价的。

作为参考,我正在运行 Ubuntu 16.04.2 LTS,Apache 2.4.18 托管 Wordpress 4.7.3。

http-headers apache-2.4

8
推荐指数
2
解决办法
1963
查看次数

声明 nginx add_header 与所有位置全局相关?

我有一个 nginx 配置,它由多个位置组成。我想add_header为每个位置添加一个指令,并且我正在检查如何在全球范围内完成此操作。无需修改任何位置,但每个位置都会继承此标头。我对此进行了研究,发现我可以使用包含并add_header在另一个文件中从外部声明。通过实现这种方法,我仍然必须在每个位置写入

nginx web-server http-headers

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

如果我发送 HTTP GET 请求,我会在 GET 中收到响应吗?

这可能是一个非常基本的问题,所以请原谅我的无知

服务器使用哪种方法来响应它收到的请求?

我正在制作一个网络应用程序,并且有一个特定的路线返回一个大的(比如 .iso 图像)文件。因此,当用户单击下载按钮时,我让 JavaScript 请求带有{method: "GET"}.

当下载在用户机器上开始时,服务器使用哪种 HTTP 方法发送文件?

我真的很困惑:

  • 服务器上传用户下载是如何处理的?
  • 对于大文件,它是否默认为 POST?
  • 作为程序员,我如何确保最终用户可以轻松下载(可恢复)?

http http-headers http-method

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

带有环境变量的 Apache 自定义标头

我尝试使用 Apache 服务器 2.4.6 和 headers_module 设置带有环境变量**的自定义 HTTP 标头。

我在端口 80 上的 HTTP VHost 中工作。

一切都按预期进行,基本示例如下:

Header set MyHeader "%D %t"

我已阅读 mod_headers 的 Apache 文档:https://httpd.apache.org/docs/2.4/en/mod/mod_headers.html#header

据说可以使用以下方式访问环境变量 %{ENVVARNAME}e

(ENVVARNAME 是 ENV 变量的名称)

我还阅读了其他帖子,但没有真正有效的答案: Apache set custom header with an environment variable

但我的问题是添加一个标头而不是像 HOSTNAME 环境值那样标识我的 Apache 服务器

  1. 我试过这个

Header Set X-Serv %{HOSTNAME}e

不成功:始终显示 X-Serv:{null} 而不是值

  1. 我也尝试过:

SetEnv myvar ${HOSTNAME} Header set X-Serv %{myvar}e

没有成功:它显示在我的 HTTP 标头中:X-Serv: %{myvar}e

我还尝试了其他一些不同的组合:

请注意:我的 HOSTNAME 环境变量存在,并且它显示在“env”命令中,其中 apache 用户拥有 httpd 进程

任何想法?

environment-variables http-headers apache-2.4

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

如何添加 Apache 功能策略标题?

我有一个多媒体网站,它让用户可以上传自己的媒体(视频、音乐)或嵌入来自 YouTube、Vimeo 等网站的媒体。

最近,正在宣布新的标题。我试图添加这个标题,但我相信我在某个地方犯了一个错误。

这就是我尝试添加此标题的方式;

Header always set Feature-Policy "vibrate 'self'; usermedia '*'; microphone 'none'; payment 'none'; sync-xhr 'self' mysiteURL.com"
Run Code Online (Sandbox Code Playgroud)

在下面得到这些错误;

Error with Feature-Policy header: Unrecognized feature: 'vibrate'.
(index):1 Error with Feature-Policy header: Unrecognized feature: 'usermedia'.
(index):1 Error with Feature-Policy header: Unrecognized origin: 'mysiteURL.com'.
(index):1 Error with Feature-Policy header: Unrecognized feature: 'vibrate'.
(index):1 Error with Feature-Policy header: Unrecognized feature: 'usermedia'.
(index):1 Error with Feature-Policy header: Unrecognized origin: 'mysiteURL.com'.
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

security http-headers apache-2.4

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