标签: http-headers

UrlFetchApp.fetch() 似乎没有更改用户代理

尝试使用 Google Apps 脚本从网站获取数据,并将其直接放入电子表格中。fetch 似乎不起作用,而 Python requests 的等效项工作得很好。

Python代码:

page = requests.get("someurl?as_data_structure", headers={'user-agent':'testagent'})
Run Code Online (Sandbox Code Playgroud)

气体代码:

var page = UrlFetchApp.fetch("someurl?as_data_structure", headers={'user-agent':'testagent'});
Run Code Online (Sandbox Code Playgroud)

唯一需要的标头是用户代理,如果我没有包含标头,我从 GAS 代码中得到的错误就是我通常从 Python 代码中得到的错误。我是 js 新手,但据我所知这是正确的方法..?

编辑:现在标题位于正确的位置,但问题仍然存在,与以前的错误完全相同。

var options = {"headers": {"User-Agent": "testagent"}};
var page = UrlFetchApp.fetch("someurl?as_data_structure", options);
Run Code Online (Sandbox Code Playgroud)

user-agent http-headers urlfetch http-status-code-403 google-apps-script

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

当 HTTP 标头和元标记中同时存在 Content-Security-Policy 时出现问题

我们正在开发一个 Web 项目,其中内容安全策略是通过 HTTP 标头和元标记强制执行的。有一组默认属性,它们是 HTTP 标头的一部分,每个页面通过文档标头中的元标记指定附加策略。

项目中的页面之一加载 iframe 内的内容。该页面的 HTTP 标头中的 Content-Security-Policy 是

Content-Security-Policy: frame-src *;

该页面的文档标题中有以下元标记

<meta http-equiv="Content-Security-Policy" content="default-src none;"/>

MDN Web 文档中提到后备顺序是frame-src-> child-src-> default-src。尽管frame-src在 HTTP 标头中进行了设置,但我在浏览器控制台中收到以下错误消息(在 Google Chrome 和 Microsoft Edge 上尝试过):

Refused to frame '<url here>' because it violates the following Content Security Policy directive: "default-src none". Note that 'frame-src' was not explicitly set, so 'default-src' is used as a fallback.
Run Code Online (Sandbox Code Playgroud)

还,

将这两个策略移动到 HTTP 标头或元标记可以按预期工作

browser http cross-domain http-headers content-security-policy

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

Web 请求中“Host”标头的使用

我正在查看 BurpSuite 中的 http 请求。我看到一个名为“主机”的字段。这个领域的重要性是什么?如果我更改此字段然后发送请求会发生什么情况?如果我将主机标头字段更改为其他 IP,那么服务器会响应这个新修改的 IP吗?

proxy host http http-headers zap

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

如何正确设置 CSP 以允许在我自己的域上使用 Iframe?

我试图在我的一个页面上放置一个 iframe,并以我自己域中的另一个网页作为源,并收到访问已被拒绝的错误。查了一下问题后,看来是CSP的问题。我从未设置过它,我猜它是默认打开的或由我的托管提供商设置的。不管怎样,我已经尝试了网上找到的许多解决方案,但没有一个有效。

我已阅读https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-src

我尝试使用各种语法在 iframe 中放置的页面的 html 中设置 CSP。

而且,我尝试使用各种语法将其设置在我的 htaccess 文件中。

但是,我的所有尝试都没有改变这种情况并允许加载 iframe...我该如何解决这个问题?

理想情况下,我希望允许我的域和子域通过 htaccess 执行此操作,以便它在站点范围内工作。

编辑:我发现将此行添加到我的 htaccess 似乎在某种程度上有效,但现在我收到了不同的错误,“对服务器的请求已被扩展阻止。”

Header set Content-Security-Policy "frame-src *.dustynaltimus.com;"
Run Code Online (Sandbox Code Playgroud)

html .htaccess iframe http-headers content-security-policy

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

Flask 可以在响应中发送重复的标头吗?

我希望我的 Flask 应用程序设置具有相同键和不同值的多个标头,如下所示:

Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Run Code Online (Sandbox Code Playgroud)

我已经知道这相当于一个值是逗号分隔列表的单个标头(当然,仅适用于支持列表值的标头),但我宁愿按照上面的方式进行操作。但标头存储在字典中,所以我不能只添加重复的键。

我也知道这个问题和答案,它说requests模块不能使用相同的密钥发送多个标头。但这个问题是关于 的requestsflask有时还有额外的好处;这个问题也已经七年多了,事情就发生了。

该答案是最新的吗?它也适用于烧瓶吗?

python http-headers flask python-requests

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

Google Cloud Run 中删除了 HTTP 请求标头

当我尝试从 UI 向 Google 云运行托管后端发送 HTTP POST 请求时,名为的标头x-google-token会自动删除。也尝试过使用 CURL。另一个名为的标头x-fb-token工作正常。有人可以解释一下发生了什么事吗?

http-headers google-cloud-platform google-cloud-run

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

使用Cloudinary和Active Storage时如何设置文件上传到特定文件夹?

我明白当使用以下语法直接上传到 Cloudinary 并将文件夹名称作为参数传递时,这是如何下降的。

Cloudinary::Uploader.upload("sample.jpg", :use_filename => true, :folder => "folder1/folder2")
Run Code Online (Sandbox Code Playgroud)

但是,我正在使用 ActiveStorage,当我以上述方式上传照片时,它不会附加到我的Post模型或以任何方式与我的应用程序关联。

我正在使用以下代码附加图像

post.send(:images).attach io: StringIO.new(new_data), filename: blob.filename.to_s, 
          content_type: 'image'
Run Code Online (Sandbox Code Playgroud)

它不接受指定文件夹的参数。我已尽力阅读 ActiveStorage 和 Cloudinary 文档,试图找到一种方法来完成这项工作,但是,我似乎无法弄清楚。

我已经看到设置自定义文件夹标头可能是使其工作的一种方法,但再次无法弄清楚如何为下面发生的上述代码设置自定义标头job

require 'tmpdir'
require 'fileutils'
require 'open-uri'
class ResizeImagesJob < ApplicationJob
  queue_as :default

  def perform(post)
    post.images.each do |image|
      blob = image.blob
      blob.open do |temp_file|
        path = temp_file.path
        pipeline = ImageProcessing::MiniMagick.source(path)
        .resize_to_limit(1200, 1200)
        .call(destination: path)
        new_data = File.binread(path)
        post.send(:images).attach io: StringIO.new(new_data), filename: blob.filename.to_s, 
                           content_type: 'image'
      end
      image.purge_later
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

上述工作正在做的是等到帖子创建后,然后调整照片大小并将照片重新附加到帖子以及删除原始照片。我采用这种方法是为了避免上传后直接在 Cloudinary …

jobs ruby-on-rails http-headers cloudinary rails-activestorage

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

如何使用 Jest 测试标头 axios.defaults.headers?

在我的应用程序中,我有一个中间件来检查 a 中的令牌req,以便访问私有路由:

const config = require('../utils/config');
const jwt = require('jsonwebtoken');

module.exports = function (req, res, next) {
  let token = req.header('x-auth-token');

  if (!token) {
    return res.status(401).json({ msg: 'No token. Authorization DENIED.' });
  }

  try {
    let decoded = jwt.verify(token, config.JWTSECRET);
    req.user = decoded.user;
    next();
  } catch (err) {
    return res.status(401).json({ msg: 'Token is invalid.' });
  }
};
Run Code Online (Sandbox Code Playgroud)

为了req在程序的 Redux 操作中发送正确的令牌,我调用以下函数 setAuthToken() 来设置身份验证令牌:

import axios from 'axios';

const setAuthToken = token => {
  if (token) { …
Run Code Online (Sandbox Code Playgroud)

javascript http-headers reactjs jestjs axios

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

Google API Gateway + Firebase:X-Apigateway-Api-Userinfo 与 X-Forwarded-Authorization 标头

我在我的 Firebase 应用程序中使用 Google API Gateway 来验证用户是否已登录。在 API Gateway 的文档中建议使用转发的X-Apigateway-Api-Userinfo标头来检索用户信息:

API Gateway会将X-Apigateway-Api-Userinfo中的认证结果发送给后端API。建议使用此标头代替原始的 Authorization 标头。此标头采用 base64url 编码并包含 JWT 有效负载。

因为它是 base64url 编码的,所以我需要额外的服务器端逻辑来解码它,只是为了获取登录用户的信息(我假设解码的对象对应于 Firebase Auth Admin SDK 的DecodedIdToken)。

另一方面,我发现API Gateway虽然修改了原始Authorization标头,但它首先将其复制到另一个名为X-Forwarded-Authorization. 这意味着我可以做类似的事情:

// authHeaders = 'Bearer ...'
const authHeaders = headers['X-Forwarded-Authorization'];

const token = authHeaders.split(' ')[1]

const decodedToken = await admin.auth().verifyIdToken(token)
Run Code Online (Sandbox Code Playgroud)

我发现这是获取相同信息的更简单(并且有更好记录)的方法。这是一个坏主意吗?我不确定是否还有其他原因X-Apigateway-Api-Userinfo推荐使用标题。

http-headers node.js firebase firebase-authentication google-api-gateway

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

Spring Boot 不接收从 Angular 客户端添加的请求标头

在我的演示应用程序中,我遇到一个问题,即我没有收到从 Angular 客户端添加到 Spring boot 服务器的请求标头。作为安全措施,我有 SSL(安全套接字层)和 CORS(跨源资源共享)配置。在我的应用程序中,CSRF(跨站点请求伪造)被禁用。我使用 JWT(JSON Wen Token)作为每个请求的用户身份验证机制。这就是我需要从标头中提取 JWT 密钥的地方。我将从我的应用程序中添加代码示例,请帮助我找出问题。

\n

角拦截器

\n
import { Injectable } from \'@angular/core\';\nimport { HttpEvent, HttpInterceptor, HttpResponse, HttpHandler, HttpRequest, HttpHeaders } from \'@angular/common/http\'; \nimport { UserService } from \'./user.service\';\nimport { Observable } from \'rxjs\';\n\n/*Interceptor\n  Often you\xe2\x80\x99ll want to intercept HTTP requests or responses before they\xe2\x80\x99re handled else where in the application*/ \n\n@Injectable({\n  providedIn: \'root\'\n})\nexport class InterceptorService implements HttpInterceptor {\n\n  /**\n   * Constructor of InterceptorService. \n   * @param userService UserService\n   */\n  constructor(private …
Run Code Online (Sandbox Code Playgroud)

java interceptor http-headers spring-boot angular

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