首页
学习
活动
专区
圈层
工具
发布

CVE-2018-10731:工业交换机漏洞分析

在本文的案例中,CGI应用程序使用cgic 库,这使得处理 HTTP请求更加容易,并且该库的功能内置在设备文件系统中的libipinfusionweb.so共享库中。...在处理HTTP请求时,web 服务器将用户请求数据作为一组环境变量传递给 CGI 应用程序。它们的初始处理由libipinfusionweb库中的main 函数执行。...注意:当一个函数调用另一个函数时,返回地址存储在栈中。当被调用函数完成时,控制权将转移到该返回地址。因此,如果重写此地址,则可以控制程序执行流程。.../bin/sheval $HTTP_CMD 2>&1 由于根据 CGI协议,HTTP标头的内容以名称为HTTP_的环境变量的形式传输到CGI 应用程序,因此该shell 将使用eval 命令执行HTTP...标头CMD的内容。

91020

在 REST 服务中支持 CORS

在某些环境中,将带有脚本的网页与提供 REST 服务的服务器放在不同的域中是很有用的。 CORS 支持这种安排。...用户的浏览器向 IRIS REST 服务发送一个特殊请求,该请求指示 XMLHttpRequest 的 HTTP 请求方法和原始网页的域,在本示例中为 DomOne。...在 REST 服务中启用对 CORS 的支持有两个部分:启用 REST 服务以接受部分或所有 HTTP 请求的 CORS 标头。。编写代码,使 REST 服务检查 CORS 请求并决定是否继续。...定义 OnHandleCorsRequest()在 %CSP.REST 的子类中,定义 OnHandleCorsRequest() 方法,该方法需要检查 CORS 请求并适当地设置响应标头。...代码应测试是否允许标头和请求方法。如果允许,请使用它们来设置响应标头。如果不是,请将响应标头设置为空字符串。

3.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【微服务架构】为故障设计微服务架构

    您不应该将损坏的代码留在生产环境中,然后再考虑问题出在哪里。如有必要,请始终还原您的更改。越早越好。 健康检查和负载均衡 由于故障、部署或自动缩放,实例不断启动、重启和停止。...您可以通过重复调用 GET /health 端点或通过自我报告来做到这一点。现代服务发现解决方案不断从实例收集健康信息,并将负载均衡器配置为仅将流量路由到健康组件。...故障转移缓存 值得一提的是,您只能在故障转移缓存为过时数据提供服务时使用总比没有好。 要设置缓存和故障转移缓存,您可以使用 HTTP 中的标准响应标头。...例如,使用 max-age 标头,您可以指定资源被视为新鲜的最长时间。使用 stale-if-error 标头,您可以确定在发生故障时应该从缓存中提供资源多长时间。...然而,在微服务通信中使用静态的、微调的超时是一种反模式,因为我们处于一个高度动态的环境中,几乎不可能提出在每种情况下都能正常工作的正确时间限制。

    75640

    【译】.NET 7 预览版 1 中的 ASP.NET Core 更新

    MVC 视图和 Razor 页面中的可为空模型 在验证错误中使用 JSON 属性名称 改进了 dotnet watch 的控制台输出 将 dotnet watch 配置为始终重新启动以进行粗鲁的编辑...在 ValidationAttribute 中使用依赖注入 更快的标头解析和写入 gRPC JSON 转码 开始使用 要开始使用 .NET 7 Preview 1 中的 ASP.NET Core,请安装...当请求包含 Authorization 标头、客户端证书或 cookie 标头时,绑定到 IFormFile 或 IFormFileCollection 当前被禁用。...将 dotnet watch 配置为始终重新启动以进行粗鲁的编辑 通过将 DOTNET_WATCH_RESTART_ON_RUDE_EDIT 环境变量设置为 true,将 dotnet watch 配置为始终在不提示粗鲁编辑...有关详细信息,请参阅以下拉取请求: HTTP/2:提高传入标头性能 HTTP/3:优化验证和设置传入的标头 HTTP 标头枚举器直接移至下一个 gRPC JSON 转码 gRPC JSON 转码允许 gRPC

    5.1K10

    在Spring Boot中实现HTTP缓存

    通过将标头的值设置为max-age = ,可以通知客户端多长时间不再需要再次获取资源。缓存值的有效性与请求的时间有关。...为了设置在Spring的控制器中的HTTP标头,就要在RESTContoller用ResponseEntity包装类。...如果If-Modified-Since标头的值与所请求资源的修改日期匹配,则可以节省一些带宽并使用空主体响应客户端。 Spring再次提供了一个辅助方法,简化了上述日期的比较。...然后,我们将日期与If-Modified-Since标头的值进行比较,并在正匹配上返回一个空。否则,服务器发送具有Last-Modified标头的适当值的完整响应主体。...在适用时,您应该始终支持客户端缓存验证。 我们还讨论了服务器端验证并比较了Last-Modified和ETag标头。最后,您了解了如何在Spring应用程序中设置全局ETag过滤器。

    6.7K50

    Go 语言 Web 编程系列(十二)—— 通过 Request 读取 HTTP 请求报文

    HTTP 请求报文结构 包含请求行、请求头(首部字段)和请求实体(请求主体)三部分,请求行中包含了请求方法、URL 和 HTTP 协议版本,请求头中包含了 HTTP 请求首部字段,对于 GET 请求来说...,没有提交表单数据,所以请求实体为空,对于 POST 请求来说,会包含包括表单数据的请求实体,对这块不够了解的同学可以网上看下 HTTP 协议或者阅读程序员内功修炼部分的 HTTP 报文简介及组成结构深入探索...Fragment 为空的原因上面已经提到,Scheme 需要根据是否启用 HTTPS 进行设置,Host 为空的原因是没有通过代理访问 HTTP 服务器,并且在本地开发环境中,Host 始终为空。...读取/打印请求头 要获取某个请求头的值很简单,通过 Header 对象提供的 Get 方法,传入对应的字段名即可,比如要获取请求头中 User-Agent 字段,可以这么做: r.Header.Get(...HTTP 响应报文与响应头通过空行进行分隔,可以看到,在响应实体中打印的正是传递的请求实体信息。

    4.5K30

    curl用法指南

    preface 最近发现 curl 真的是好用,在命令行里就能对网页进行请求,并且 Linux 和 Windows 都有这个工具,之前也用过其他的命令行 HTTP 工具,不过还是觉得用原生的更好,不需要每次都装一遍环境...上面命令向 www.example.com 发出 GET 请求,服务器返回的内容会在命令行输出 -A -A 参数指定客户端的用户代理标头,即 User-Agent ,curl 的默认用户代理字符串是...Cookie $ curl -b 'foo=bar' https://google.com 上面命令会生成一个标头 Cookie: foo=bar,向服务器发送一个名为 foo 、值为 bar 的 Cookie...请求,实际请求的 URL 为 https://google.com/search?...d 参数发送 JSON 数据 -i -i 参数打印出服务器回应的 HTTP 标头 $ curl -i https://www.example.com 上面命令收到服务器回应后,先输出服务器回应的标头,然后空一行

    1.8K30

    【Nginx28】Nginx学习:代理模块(二)缓存与错误处理

    nocache 字段和 comment 字段,并且这些字段都不为空;或者请求头有 pragma 或 authorization 字段,那么这个请求就不会走缓存。...“X-Accel-Expires”标头字段设置响应的缓存时间(以秒为单位)。零值禁用响应缓存。如果该值以 @ 前缀开头,则它设置自 Epoch 以来的绝对时间(以秒为单位),直到可以缓存响应。...如果头部不包含“X-Accel-Expires”字段,可以在头部字段“Expires”或“Cache-Control”中设置缓存参数。 如果标头包含“Set-Cookie”字段,则不会缓存此类响应。...如果标头包含具有特殊值“*”的“Vary”字段,则不会缓存此类响应(1.7.7)。如果标头包含具有另一个值的“Vary”字段,则将考虑相应的请求标头字段(1.7.7)缓存此类响应。....; Default: 默认值 error timeout ,参数的意义是: error 与服务器建立连接、向其传递请求或读取响应标头时发生错误 timeout 在与服务器建立连接、向其传递请求或读取响应标头时发生超时

    1.8K50

    HTTP2请求走私(下)

    ,而不是基于文本的,所以每个报头的边界是基于显式的、预先确定的偏移量而不是定界符字符,这意味着\r\n在标头值中不再有任何特殊意义,因此可以包含在值本身中,而不会导致标头被拆分,这本身似乎相对无害,但是当它被重写为...HTTP/1报头时考虑这一点,否则其中一个请求可能缺少强制标头,例如:您需要确保后端收到的两个请求都包含host头,在降级过程中前端服务器通常会去除:authority伪标头并将其替换为新的HTTP/1...,其实HTTP/1和HTTP/2都可以实现请求隧道,但是在只有HTTP/1的环境中检测起来要困难得多,由于HTTP/1中持久(保持活动)连接的工作方式,即使您确实收到了两个响应,这也不一定能确认请求被成功走私...abc的链接,说明我的CRLF注入成功 Step 3:在浏览器中可以看到搜索功能,随后进行一个简单的检索 Step 4:在burpsuite中将协议升级为HTTP/2,同时更改请求方法为POST,添加一个任意头并使用其名称字段注入一个大的...,因为前端服务器会降低HTTP/2请求的级别并且不会始终如一地清除传入的标头,为了解决实验室问题你需要在缓存中投毒,当受害者访问主页时,他们的浏览器会执行alert(1),受害者用户将每15秒访问一次主页

    1K10

    你知道什么是 HTTP 长轮询么?什么场景下需要使用?我来告诉你!

    Web 应用程序最初是围绕客户端/服务器模型开发的,其中 Web 客户端始终是事务的发起者,向服务器请求数据。...请注意,请求和响应之间有很长的时间,因为服务器会等待直到有数据要发送。 这比常规轮询更有效率。 浏览器将始终在可用时接收最新更新 服务器不会被永远无法满足的请求所搞垮。 长轮询有多长时间?...在现实世界中,任何与服务器的客户端连接最终都会超时。...服务器在响应之前保持连接打开的时间取决于几个因素:服务器协议实现、服务器体系结构、客户端标头和实现(特别是 HTTP Keep-Alive 标头)以及用于启动的任何库并保持连接。...众所周知,WebSocket 实现,尤其是早期实现,在双重 NAT 和某些 HTTP 长轮询运行良好的代理环境中挣扎。

    2.3K40

    跟我一起探索 HTTP-HTTP缓存

    在这样的受控环境中,无需担心代理缓存“已过时且未更新”。 托管缓存 托管缓存由服务开发人员明确部署,以降低源服务器负载并有效地交付内容。...Expires 或 max-age 在 HTTP/1.0 中,新鲜度过去由 Expires 标头指定。 Expires 标头使用明确的时间而不是通过指定经过的时间来指定缓存的生命周期。...在这种情况下,你可以通过在 Vary 标头的值中添加“Accept-Language”,根据语言单独缓存响应。...doctype html> … 如果该响应是陈旧的,则客户端获取缓存响应的 ETag 响应标头的值,并将其放入 If-None-Match 请求标头中,以询问服务器资源是否已被修改: GET /index.html...HTTP/1.1 Host: example.com Accept: text/html If-None-Match: "deadbeef" 如果服务器为请求的资源确定的 ETag 标头的值与请求中的

    1.1K51

    API 安全清单

    不要在 JWT 有效载荷中存储敏感数据,它可以很容易地被解码。 身份验证 始终验证redirect_uri服务器端以仅允许列入白名单的 URL。...始终尝试交换代码而不是令牌(不允许response_type=token)。 使用state带有随机哈希的参数来防止 OAuth 身份验证过程中的 CSRF。...使用权 限制请求(限制)以避免 DDoS / 暴力攻击。 在服务器端使用 HTTPS 来避免 MITM(中间人攻击)。 使用HSTS带有 SSL 的标头来避免 SSL Strip 攻击。...输入 根据操作使用正确的 HTTP 方法:GET (read)、POST (create)、PUT/PATCH (replace/update)和,如果请求的方法不适合请求的资源,则使用DELETE (...确保在推送到生产之前,您的服务的所有组件都由 AV 软件静态扫描,包括供应商库和其他依赖项。 为部署设计回滚解决方案。

    2.1K20

    Postman----API接口测试神器

    可以从给定的下拉列表中选择API调用方法,根据API调用设置授权、标头、正文等信息。 可在Postman中使用的API调用方法: ? 根据API调用的标头: ?...DELETE请求:用于删除数据 请求URL: 发出Http请求的位置 请求标头 - 在请求标头中它包含应用程序的键值。...Postman的测试:在Postman中,可以使用JavaScript语言为每个请求编写和运行测试。以下是示例: 测试描述示例: ? 测试结果示例: ?...2.HTTP响应——在发送请求时,API发送响应,包括正文,Cookie,标头,测试,状态代码和API响应时间。 Postman在不同的选项卡中组织正文和标题。...完成API调用所花费的时间的状态代码显示在另一个选项卡中。 有许多状态代码,我们可以从这些代码验证响应。 200  - 成功请求。 201  - 成功请求并创建了数据。 204  - 空响应。

    5.1K30

    Microsoft REST API指南

    7.5 标准的请求标头 下面的请求标头表 应该遵循 Microsoft REST API指南服务使用。使用这些标题不是强制性的,但如果使用它们则必须始终一致地使用。...所有标头值都必须遵循规范中规定的标头字段所规定的语法规则。许多HTTP标头在RFC7231中定义,但是在IANA标头注册表中可以找到完整的已批准头列表。...以查询参数方式提交自定义请求头 有些标头对某些场景(如AJAX客户端)不兼容,特别是在不支持添加标头的跨域调用时。...接受PII参数(无论是在URL中还是作为标头)的服务 应该符合其组织的隐私保护原则。...服务指南 服务必须至少: 了解浏览器在跨域请求上发送的Origin请求标头,以及他们在检查访问权限的预检OPTIONS 请求上发送的 Access-Control-Request-Method请求标头。

    6.2K11

    如何在CentOS 7上将日志模块添加到Nginx

    首先,从Nginx请求我们在步骤1中创建的空文件,这样日志文件就不会为空。...curl -i http://localhost/empty.test 作为响应,您应该看到几个HTTP响应标头: Nginx响应头: HTTP/1.1 200 OK Server: nginx/1.6.3...这将始终是一个连字符,因为Nginx不支持此信息。 根据HTTP基本身份验证登录用户的用户名。对于所有匿名请求,这将为空。 该请求日期。您可以看到这与我们的响应标头中的日期相匹配。...传输文件的长度,因为文件为空所以这里是0。 该HTTP引用头,它包含其中该请求来源文档的地址。在此示例中,它是空的,但如果这是一个图像文件,则引用者将指向使用该图像的页面。...拓展头部X-Forwarded-For ,这里为空,其中包含有关源IP地址的信息,如果原始请求已经通过代理转发。 即使访问日志中的单个日志条目也包含大量有关请求的有价值信息。但是,缺少一个重要的信息。

    1.1K30

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

    下面是使用共享缓存代理的过程 这个图应该比较好理解,只说一下 Age 的作用,Age 是 HTTP 响应标头告诉客户端源服务器在多久之前创建了响应,它的单位为秒,Age 标头通常接近于0,如果是0则可能是从源服务器获取的...简单请求是满足一下所有条件的请求 允许以下的方法:GET、HEAD和 POST 除了由用户代理自动设置的标头(例如 Connection、User-Agent 或者在 Fetch 规范中定义为禁止标头名称的其他标头...由于这是一个简单的 GET 请求,因此不会进行预检,但是浏览器将拒绝任何没有 Access-Control-Allow-Credentials 的响应:标头为true,指的是响应不会返回 web 页面的内容...此标头是必需的,因为预检请求始终是 OPTIONS,并且使用的方法与实际请求不同。...客户端第一次发送请求没有,缓存为空并且没有条件请求,服务器在收到客户端请求后,设置验证器 Last-Modified 和 Etag 标签,并把这两个标签随着响应一起发送回客户端。

    7.8K21

    【Java技术指南】「Unirest编程专题」一起认识一下一个“灰常”优秀的Http工具,让Http开发变得如此简单

    在Maven中,只需要在pom.xml文件中添加以下依赖项:请求处理操作所以你可能想知道使用 Unirest 如何使在 Java 中创建请求更容易,这里有一个基本的 POST 请求,它将解释一切:HttpResponse response =...路由参数(Route Parameters)有时您想在URL中添加动态参数,您可以通过在 URL 中添加占位符,然后使用 routeParam 函数设置路由参数来轻松完成,例如:Unirest.get(...fruit=apple&fruit=orange&droid=R2D2&beatle=Ringo"请求头(Headers)可以使用标头方法添加请求标头。...响应返回为HttpResponse,其中HttpResponse对象具有所有常见的响应数据,如状态和标头。可以使用.getBody()方法通过所需类型访问Body(如果存在)。

    3K11
    领券