小编Mar*_*vin的帖子

为什么通过标头传递内容安全策略是“首选”?

3.CSP 策略交付中,它说

Content-Security-Policy HTTP 响应标头字段是传递策略的首选机制

但有两种有效的机制,通过 HTTP 标头传递和通过 HTMLmeta元素传递:

<meta http-equiv="Content-Security-Policy" content="..."/>
Run Code Online (Sandbox Code Playgroud)

为什么通过标头传递是“首选”,或者也许更重要的是,通过 HTML 标签传递有哪些缺点meta

由于各种原因,在我们的部署中,将 CSP 添加到 HTML 头部更易于管理。

html http-headers content-security-policy http-equiv websecurity

13
推荐指数
2
解决办法
5993
查看次数

为什么我的 venv 使用的 pip 版本与我安装的版本不同

我正在设置虚拟环境。我得到大约一个过时的PIP(19.2),所以我我(MacOS的)系统上更新的全球PIP警告sudo -H python3 -m pip install --upgrade pip。它似乎有效,但是当我创建一个新的 venv 时,我仍然得到旧的 pip 版本。

% pip --version           
pip 20.1 from /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip (python 3.8)
% python3 -m pip --version
pip 20.1 from /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pip (python 3.8)
% rm -rf .venv # make sure
% python3 -m venv .venv   
% . .venv/bin/activate    
(.venv)     % python3 -m pip --version
pip 19.2.3 from /Users/marvin/.venv/lib/python3.8/site-packages/pip (python 3.8)
(.venv)     % pip --version           
pip 19.2.3 from /Users/marvin/.venv/lib/python3.8/site-packages/pip (python 3.8)
Run Code Online (Sandbox Code Playgroud)

旧版本从哪里来?

python pip

10
推荐指数
1
解决办法
2272
查看次数

如何在 VS Code 中配置 python 大纲模式以仅显示类和方法

python的大纲模式有点无用,因为除了显示类及其“成员属性”(方法)之外,它还显示了方法(和函数)的属性,即方法或函数中分配的每个变量. 显示这些会使大纲视图变得非常冗长,而且根本没有太多的大纲。它还显示了模块中的所有导入,这也不是大纲的重点。

有没有什么办法可以在VSCode中配置Python模式,让outline只显示类、函数和方法?

python visual-studio-code

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

是否可以使用委托函数从非托管代码中引发.Net异常?

我在SO周围搜索并发现了各种相关的问题,其中一些基本上回答"不要这样做".

我想调用一些访问各种现有C++代码的非托管C++代码.现有代码可能有各种错误条件,我想映射到C#异常.通过在Java和JNI中执行类似操作,似乎可能有一个委托函数来引发已定义的异常,然后可以直接从非托管代码调用它们.然后调用看起来像(csharp) - >(非托管) - >(csharp委托,抛出/设置挂起异常)然后返回.

下面的代码似乎工作正常(vs2010,单声道).我的问题是这种方法有什么问题 - 例如规范说在调用非托管代码或线程问题等之后,异常并不能保证仍然是"待定"的......

// unmanaged.cpp 
#include <cstdio>
#define EXPORT __declspec(dllexport)
#define STDCALL __stdcall

typedef void (STDCALL* raiseExcpFn_t)(const char *);
extern "C" {
  // STRUCT ADDED TO TEST CLEANUP
  struct Allocated {
     int x;
     Allocated(int a): x(a) {}
     ~Allocated() {
    printf("--- Deleted allocated stack '%d' ---\n", x);
    fflush(stdout);
    }
  };

  static raiseExcpFn_t exceptionRaiser = 0;
  EXPORT void STDCALL registerRaiseExcpFn(raiseExcpFn_t fun) {
      exceptionRaiser = fun;
  }
  EXPORT void STDCALL hello(const char * x) {
    Allocated a0(0); …
Run Code Online (Sandbox Code Playgroud)

.net c# mono unmanaged exception

7
推荐指数
1
解决办法
1048
查看次数

如何在Chrome DevTools中查看提交的POST请求数据以获取多部分/表单数据

我正在调试一个Web应用程序,并且看到了我感兴趣的POST操作。这是一则内容类型为multipart / form-data的帖子,根据标题,其内容长度为Content-Length875。这是(Chrome 71.0。 3578.98)

但是Chrome不会显示任何Request-Payload。请参阅下面的图像。

其他具有不同Content-Type的帖子(例如text / xml)会将Request-Payload显示为一部分。

(1)是否未显示Request-Payload,因为这是多部分/表单数据,有时会是大文件(不是,只有875个字节)。

(2)在这种情况下,有什么方法可以查看请求有效载荷吗?

Request Headers 
Run Code Online (Sandbox Code Playgroud)

POST请求标头

Collapsed headers, showing no Request Payload
Run Code Online (Sandbox Code Playgroud)

订单请求

http-headers google-chrome-devtools

7
推荐指数
0
解决办法
314
查看次数

Typescript tsconfig 中 rootDir 之外的路径别名

我看到这个问题,但略有不同并且没有答案

我有几个 git 子模块。它们是大型现有项目,我想我可以直接重用各个部分,例如:

myproject/
   src/
   submod1/src
   submod2/src
Run Code Online (Sandbox Code Playgroud)

与 tsconfig.json 一样

        <snip...>
        "rootDir": "src/",
        "outDir": "./dist",
        "paths": {
            "@submod1/*": [ "submod1/src/*" ],
            "@submod1/*": [ "submod2/src/*" ],
            "@app/*": [ "src/*" ]
        },
Run Code Online (Sandbox Code Playgroud)

在我的代码中,比如

import { SomeVar } from '@submod1/constants';
Run Code Online (Sandbox Code Playgroud)

但 vscode (大概还有 tsc)正在报告 File '<path>/submod1/src/index.ts' is not under 'rootDir' '<path>/src'. 'rootDir' is expected to contain all source files.

我只是想做一些简单而务实的事情。有办法实现这一点吗?我想我可以用符号链接做一些事情,但这似乎是一个很大的错误。我可以将子模块放在 src/ 下,但这似乎也是错误的。

typescript

6
推荐指数
1
解决办法
5012
查看次数

docker run "--publish" 和 "--publish-all" 之间的交互是什么?

我找不到这个记录。假设我想将一个端口发布到已知位置,但有时会发布所有其他“公开”端口以进行调试或测试。

\n\n

一个简单的 Dockerfile

\n\n
FROM alpine\nCMD /bin/sleep 600\n
Run Code Online (Sandbox Code Playgroud)\n\n

--publish/-p 允许我将特定主机端口绑定到容器端口。--publish-all/-P 将所有容器端口绑定到随机端口,例如可以使用docker ps.

\n\n
$ docker build -t foo .\n<build prints>\n$ docker run -d -p 8000:8000 -P -p 9000:9000 foo\n<some id prints>\n$ docker ps --format \'{{.Command}} {{.Ports}}\'\n"/bin/sh -c \'/bin/sl\xe2\x80\xa6" 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是假设我有一个像这样的 Dockerfile,并将一个端口发布到已知端口,而其余端口发布到随机分配的端口。

\n\n
FROM alpine\nEXPOSE 8000\n# Various management ports or something\nEXPOSE 8005\nEXPOSE 8443\nEXPOSE 8009\nCMD /bin/sleep 600\n
Run Code Online (Sandbox Code Playgroud)\n\n

定义的行为是什么

\n\n
$ docker run -d -P -p 8000:8000 foo\n
Run Code Online (Sandbox Code Playgroud)\n

docker

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

如何配置在 jest 中运行的 axios 在 POST 之前不发送 OPTIONS?

从 node.js 中,这按预期工作,发送了 POST 响应(正如我使用 httpToolkit 验证的那样)

% node
> const axios = require('axios')
> var r = (async () => { const x = await axios.post('http://example.com/v1/secret/data/foo/bar/baz',{data: {foo: 42}},{headers: {'X-Special-Token': 'DATA'}}); return true;})().then(console.log)
undefined
> true
Run Code Online (Sandbox Code Playgroud)

但是,然后在测试中执行相同的操作jestaxios首先发送 OPTIONS 请求。我正在运行的服务无法处理该问题(不是 example.com)

const axios = require('axios');

describe('Simple Post', () => {
  test('POST', async () => {
    // Axios HERE seems to send an OPTIONS request first...
    const x = await axios.post('http://example.com',
      {data: {foo: 42}},
      {headers: {'X-Special-Token': 'DATA'}});
    expect(x.status).toBe(200); …
Run Code Online (Sandbox Code Playgroud)

jestjs axios http-toolkit

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