首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Web Security 之 HTTP Host header attacks

简而言之,你需要能够修改 Host ,并且你的请求能够到达目标应用程序。如果是这样,则可以使用此来探测应用程序,并观察其对响应的影响。...提供一个任意的 Host 探测 Host 注入漏洞时,第一步测试是给 Host 设置任意的、无法识别的域名,然后看看会发生什么。...有时,即使你提供了一个意外的 Host ,你仍然可以访问目标网站。这可能有很多原因。例如,服务器有时设置了默认或回退选项,以处理无法识别的域名请求。如果你的目标网站碰巧是默认的,那你就走运了。...例如,你可能会发现 Host 没有 HTML 编码的情况下反映在响应标记中,甚至直接用于脚本导入。反射的客户端漏洞(例如 XSS )由 Host 引起时通常无法利用。...通过格式错误的请求行进行 SSRF 自定义代理有时无法正确地验证请求行,这可能会使你提供异常的、格式错误的输入,从而带来不幸的结果。

5K20

跨域资源共享(CORS)

此外,设置了非标准的HTTP Ping-Other请求。此类不是HTTP / 1.1的一部分,但通常对Web应用程序有用。...预检请求和重定向 并非所有浏览器目前都支持预检请求后进行以下重定向。如果在预检请求发生重定向,则当前某些浏览器将报告诸如以下的错误消息。...但是,如果请求是由于请求中存在Authorization而触发预检的请求,则无法使用上述步骤解决限制。除非您可以控制请求的服务器,否则您将根本无法解决它。...Access-Control-Allow-Methods: [, ]* 上面给出了预检请求的示例,其中包括将该头发送到浏览器的示例。...请注意,调用服务器时会为您设置这些。使用跨站点XMLHttpRequest功能的开发人员不必以编程方式设置任何跨域共享请求

3.5K50
您找到你想要的搜索结果了吗?
是的
没有找到

Spring Boot中实现HTTP缓存

2.客户端缓存验证 当您知道请求的资源在给定的时间内不会更改时,服务器可以将此类信息作为响应头发送到客户端。基于该信息,客户端决定是否应该再次获取资源或重用先前下载的资源。...通过将的值设置为max-age = ,可以通知客户端多长时间不再需要再次获取资源。缓存值的有效性与请求的时间有关。...为了设置Spring的控制器中的HTTP,就要在RESTContoller用ResponseEntity包装类。...客户端根据Last-Modified的值设置其值,该是与此特定资源的先前响应一起发送的。...您了解到客户端缓存验证是最有效的方法,因为不涉及数据传输。适用时,您应该始终支持客户端缓存验证。 我们还讨论了服务器端验证并比较了Last-Modified和ETag

5.1K50

什么是会话固定

如果我们发送一个包含有效会话的请求(该会话存在于我们的会话存储中 - 我们的例子中是内存),我们不会在响应中返回 Set-Cookie : 当用户登录时,我们可以将用户信息存储序列化的 cookie...是否传递会话 cookie 不再重要,它将生成一个新的会话 ID 并将其发送到 Set-Cookie 头中的客户端。...仅使用 HTTP Only 的 Cookie 当你使用 HTTP Only 时,这意味着只有服务器可以通过 Set-Cookie 设置 cookie,而客户端(浏览器 JavaScript)无法更改它...否则,这些会话可以注销使用。(从客户端浏览器中删除cookie是不够的! Passportjs 是否容易受到会话固定的影响?...是的, 0.6.0 之前的版本中,问题就在那里,Passport 维护者认为会话重新生成应该在应用程序端完成,但一段时间他们意识到问题的重要性,并在 0.6.0 版本中修复了它。

15210

18 个运维必知的 Nginx 代理缓存配置技巧,你都掌握了哪些呢?

如果客户端请求缓存但是由缓存控制定义的过期的内容,则 Nginx将 If-Modified-Since 字段包含在 GET 请求的头中将它发送到源服务器。...; 此示例 X-Cache-Status 响应客户端时添加 HTTP 。...Nginx 使用 ETag Nginx 1.7.3 及更高版本中,ETag 完全支持 If-None-Match。...如果请求是针对单个字节范围的,则 Nginx 会在下载流中遇到该范围立即将该范围发送到客户端。如果请求同一文件中指定了多个字节范围,则 Nginx 会在下载完成时将整个文件传送到客户端。...HTTP 的 stale-if-error 扩展 Cache-Control 允许发生错误时使用陈旧的缓存响应。

2.4K20

HTTP headers

逐跳标题 这些仅对单个传输级连接有意义,并且不得由代理重新传输或缓存。请注意,只能使用Connection常规设置逐跳。...User-Agent 包含一个特征字符串,该特征字符串使网络协议对等方可以识别请求软件用户代理的应用程序类型,操作系统,软件供应商或软件版本。另请参阅Firefox用户代理字符串参考。...Public-Key-Pins-Report-Only 将报告发送到头中指定的report-uri,即使违反固定,仍允许客户端连接到服务器。...X-Powered-By 可以由托管环境或其他框架来设置,并包含有关它们的信息,而不会为应用程序或其访问者提供任何有用的信息。取消设置,以避免暴露潜在的漏洞。...例如,假设服务器决定确认并实现“升级”字段,则此头标准允许客户端从HTTP 1.1更改为HTTP 2.0。双方均不需要接受“升级标题”字段中指定的条款。可以客户端和服务器头中使用它。

7.7K70

对不起,看完这篇HTTP,真的可以吊打面试官

如果 Etag 是资源响应的一部分,则客户端可以未来请求的头中发出 If-None-Match,以验证缓存的资源。...简单请求是满足一下所有条件的请求 允许以下的方法:GET、HEAD和 POST 除了由用户代理自动设置(例如 Connection、User-Agent 或者 Fetch 规范中定义为禁止头名称的其他...浏览器发出预检请求时使用 Access-Control-Request-Headers 请求,使服务器知道发出实际请求时客户端可能发送的 HTTP 。...客户端第一次发送请求没有,缓存为空并且没有条件请求,服务器收到客户端请求设置验证器 Last-Modified 和 Etag 标签,并把这两个标签随着响应一起发送回客户端。...Set-Cookie 和 Cookie Set-Cookie HTTP 响应将 cookie 从服务器发送到用户代理。

6.3K21

Apache Tika命令注入漏洞挖掘

原始描述: Tika 1.18之前,客户端可以将精心设计的头发送到tika-server,该可用于将命令注入运行tika-server的服务器的命令行。...由于目标是字段中找到命令注入,所以第一个结果是一个代码块,这个代码块已经添加到补丁版本“ALLOWABLEHEADERCHARS”中。...在上传图像时,通过PUT请求中将一个命令用双引号括起来作为“X-Tika-OCRTesseractPath”HTTP的值来标识命令注入。...但是调用`“doOCR”`之前,还有另一个函数`“config.getTesseractPath()”`字符串上调用,该字符串只执行该命令(目的是检查是否被调用的应用程序是有效的应用程序)。...Apache不建议不受信任的环境中运行Tika服务器或将其暴露给不受信任的用户。此错误也已修补,当前版本为1.20,因此如果您使用此服务,请确保更新。

1.5K20

AWS alb 了解

要禁止多路复用连接,请在您的 HTTP 响应中设置 keep-alives 来禁用 HTTP Connection: close。...如果 HTTP/1.0 请求来自没有主机客户端,负载均衡器会对后端连接发送的 HTTP/1.1 请求生成一个主机。主机包含负载均衡器的 DNS 名称。...所有其他头名称是小写的。 Application Load Balancer 和 Classic Load Balancer 将响应代理返回客户端,遵守来自传入客户端请求的连接。...HTTP 限制 Application Load Balancer 的以下大小限制是无法更改的硬限制。...HTTP/1.x 请求行:16K 单个:16K 整个:64K HTTP/2 请求行:16K 单个:16K 整个:64K 负载均衡器模式 创建负载均衡器时,您必须选择使其成为内部负载均衡器还是面向

2.1K00

跟我一起探索 HTTP-内容协商

客户端和服务器端之间存在多种协商方式。 最佳表示形式的选取可以通过两种机制实现: 客户端设置特定的HTTP (又称为服务端驱动型内容协商或者主动内容协商),这是进行内容协商的标准方式。...客户端提供的信息相当冗长(HTTP/2 协议的压缩机制缓解了这个问题),并且存在隐私风险(HTTP 指纹识别技术)。...由于基于配置信息的信息熵的增加,修改的值可以用作识别用户的指纹,所以不建议对其进行修改,不过这样的话 Web 站点也就不能依赖该值来揭示用户的真实期望。...Vary 响应 与前面列举的 Accept-* 形式的由客户端发送的相反,Vary 是由服务器响应中发送的。它指示了服务器服务端驱动型内容协商阶段所使用的清单。...很少的时候,这并不是问题,但是随着数量的增多,消息的体积会导致性能的下降。带有精确信息的头发送的越多,信息熵就会越大,也就准许了更多 HTTP 指纹识别行为,以及与此相关的隐私问题的发生。

13430

震惊 | HTTP 疫情期间把我吓得不敢出门了

如果 Etag 是资源响应的一部分,则客户端可以未来请求的头中发出 If-None-Match,以验证缓存的资源。...简单请求是满足一下所有条件的请求 允许以下的方法:GET、HEAD和 POST 除了由用户代理自动设置(例如 Connection、User-Agent 或者 Fetch 规范中定义为禁止头名称的其他...浏览器发出预检请求时使用 Access-Control-Request-Headers 请求,使服务器知道发出实际请求时客户端可能发送的 HTTP 。...如下图所示 客户端第一次发送请求没有,缓存为空并且没有条件请求,服务器收到客户端请求设置验证器 Last-Modified 和 Etag 标签,并把这两个标签随着响应一起发送回客户端。...Set-Cookie 和 Cookie Set-Cookie HTTP 响应将 cookie 从服务器发送到用户代理。

5.3K20

C# HTTP系列1 HttpWebRequest类

为保持活动状态或通过管道传递的连接,我们强烈建议应用程序直到 EOF 读取流。 这可确保将生成更好的性能和更低的使用的资源的后续请求重复使用套接字。...Internet资源的公共HTTP值作为属性,由方法设置或由系统设置; 下表包含完整列表。...您可以Headers属性中将其他设置为名称/值对。请注意,服务器和缓存可能会在请求期间更改或添加。 下表列出了由属性或方法或系统设置的HTTP。...ContentLength 获取或设置 Content-length HTTP 。 ContentType 获取或设置 Content-type HTTP 的值。...Headers 指定构成 HTTP 的名称/值对的集合。 Host 获取或设置要在 HTTP 请求中独立于请求 URI 使用的 Host 值。

6.4K20

Spring Websocket 中文文档 (spring5)

3.2中,Spring Security XML命名空间默认情况下不设置,但可以配置为执行此操作,并且将来可以默认设置它。 见7.1节。...如果您的应用程序添加X-Frame-Options响应(应该!)并依赖于基于iframe的传输,则需要将设置为 SAMEORIGIN或ALLOW-FROM 。...guestguest STOMP代理中继始终 代表客户端转发给代理的每个帧上设置login和passcodeCONNECT。因此,WebSocket客户端无需设置这些; 他们会被忽略。...因此,希望避免使用cookie的应用程序可能无法HTTP协议级别进行身份验证。他们可能更喜欢STOMP消息传递协议级别使用进行身份验证,而不是使用Cookie。...运输错误 传输错误(例如无法读取或写入WebSocket连接或HTTP请求/响应)之后会话关闭。

11.7K76

面试 HTTP ,99% 的面试官都爱问这些问题

Set-Cookie:JSESSIONID=XXXXXXX 命令,向客户端发送要求设置 Cookie 的响应;客户端收到响应本机客户端设置了一个 JSESSIONID=XXXXXXX 的 Cookie...SYN-ACK:服务器收到 SYN ,打开客户端连接,发送一个 SYN-ACK 作为答复。确认号设置为比接收到的序列号多一个,即 X + 1,服务器为数据包选择的序列号是另一个随机数 Y。...首先,客户端应用程序决定要终止连接(这里服务端也可以选择断开连接)。这会使客户端将 FIN 发送到服务器,并进入 FIN_WAIT_1 状态。...客户端 TIME_WAIT 状态下花费的时间取决于它的实现,等待一段时间,连接关闭,客户端上所有的资源(包括端口号和缓冲区数据)都被释放。...实体 实体是描述消息正文内容的 HTTP 。实体用于 HTTP 请求和响应中。

1.4K10

使用浏览器的 Reporting API 上报站点错误

进行设置可让你对你的网站更放心,当真实用户访问你的网站时,没有发生任何可怕的事情。如果当他们确实遇到无法预料的错误时,你会知道的。..."url": "https://example.com/browser-errors" }] } 发送 Report-To ...浏览器捕获,排队和批处理,然后最合适的时间自动发送报告。报告是由浏览器在内部发送的,因此使用 Reporting API 时几乎没有性能问题(例如与应用程序发生网络争用)。...上报网络错误 网络错误日志(NEL)规范定义了一种从源头收集客户端网络错误的机制。...它使用新的 NEL HTTP 响应设置,告诉浏览器收集网络错误,然后与 Reporting API 集成,将错误报告给服务器。

2.3K30

关于Web验证的几种方法

流程 未经身份验证的客户端请求受限制的资源 返回的 HTTP401Unauthorized 带有WWW-Authenticate,其值为 Basic。...WWW-Authenticate:Basic使浏览器显示用户名和密码输入框 输入你的凭据,它们随每个请求一起发送到头中:Authorization: Basic dcdvcmQ= 1.png...流程 实现 OTP 的传统方式: 客户端发送用户名和密码 经过凭据验证,服务器会生成一个随机代码,将其存储服务端,然后将代码发送到受信任的系统 用户受信任的系统上获取代码,然后 Web 应用上重新输入它...服务器对照存储的代码验证输入的代码,并相应地授予访问权限 TOTP 如何工作: 客户端发送用户名和密码 经过凭据验证,服务器会使用随机生成的种子生成随机代码,并将种子存储服务端,然后将代码发送到受信任的系统...像谷歌验证器这样的 OTP 代理中,如果你丢失了恢复代码,则很难再次设置 OTP 代理 当受信任的设备不可用时(电池耗尽,网络错误等)会出现问题。

3.8K30

从0开始构建一个Oauth2Server服务 发起认证请求

Authorization访问令牌以文本为前缀的HTTP 头中发送到服务Bearer。...从历史上看,某些服务允许 post 正文参数甚至 GET 查询字符串中发送令牌,但这些方法也有缺点,大多数现代实现将仅使用 HTTP 方法。...在任何情况下,WWW-Authenticate也会有invalid_token错误代码。...application/json { "error": "invalid_token", "error_description": "The access token expired" } 当您的应用程序识别出此特定错误时...刷新令牌的到期时间有意从不传达给客户端。这是因为即使客户端能够知道刷新令牌何时过期,也无法采取任何可操作的步骤。刷新令牌也可能在其任何预期生命周期之前过期的原因有很多。

15330

初识 MQTT

顾名思义,它是一种支持各方之间异步通信的消息协议。异步消息协议空间和时间上将消息发送者与接收者分离,因此可以不可靠的网络环境中进行扩展。...异步消息协议更适合 IoT 应用程序。传感器发送读数,让网络确定将其传送到目标设备和服务的最佳路线和时间。 HTTP 是单向的。客户端必须发起连接。... IoT 应用程序中,设备或传感器通常是客户端,这意味着它们无法被动地接收来自网络的命令。 HTTP 是一种 1-1 协议。客户端发出请求,服务器进行响应。...将消息传送到网络上的所有设备上,不但很困难,而且成本很高,而这是 IoT 应用程序中的一种常见使用情况。 HTTP 是一种有许多和规则的重量级协议。...它有一个用来指定消息类型的简单,有一个基于文本的主题,还有一个任意的二进制有效负载。

2.9K31

收发电子邮件

通常,多部分MIME邮件由以下部分组成: 一组邮件,每个都包含邮件发送到的地址等信息。这还包括整个消息的Mime-Type和Content-Type。...如果这是二进制消息,请将IsBinary属性设置为1。 若要指定消息及其的字符集,请根据需要设置CharSet属性。 重要提示:添加消息内容之前指定字符集非常重要。...指定基本电子邮件标题 设置以下属性(仅在%Net.MailMessage中)以设置邮件本身最常用的: To-(必填)此邮件将发送到的电子邮件地址列表。...msg.Headers.SetAt("High","X-MSMail-Priority") do msg.Headers.SetAt("High","Importance") 不同的电子邮件服务器和客户端可以识别不同的...,因此设置多个相似的以确保服务器或客户端接收到的邮件具有它可以识别是很有用的。

3.1K20
领券