小编Vic*_*par的帖子

JQuery 3.1.1违反了CSP指令

我正在使用JQuery 3.1.1版,我正在尝试在我的网页上实现内容安全策略指令.

我收到以下错误:

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"script-src'self''nonce-c20t41c7-73c6-4bf9-fde8-24a7b35t5f71'".要么是'unsafe-inline'关键字,哈希('sha256-KAcpKskREkEQf5B3mhDTonpPg34XnzaUC5IoBrOUrwY ='),要么是nonce('nonce -...')来启用内联执行.

该错误发生在主jquery.js脚本文件的第82行.这一行的内容是:

doc.head.appendChild( script ).parentNode.removeChild( script );
Run Code Online (Sandbox Code Playgroud)

基本上,它会向DOM添加内联脚本标记,这违反了CSP.

我不想用'unsafe-inline'.有没有其他方法来规避这个错误?

正如您在CSP违规中看到的那样,我正在使用CSP级别2(nonce),但它会被忽略.在附加脚本标记时,是否有可能(某些方式)通知jQuery使用此nonce?


更新:这是HTML的样子(使用Express模板作为nonce)

<script nonce="<%=nonce%>" type="text/javascript" src="jquery.js"></script>
Run Code Online (Sandbox Code Playgroud)

呈现HTML后,脚本标记上的nonce属性与服务器发送的CSP nonce指令匹配.


更新:它确实适用于普通的JavaScript

<script nonce="<%=nonce%>" type="text/javascript">
        var userEmail = "<%=user.user.email%>";
</script>
Run Code Online (Sandbox Code Playgroud)

如果没有nonce属性,此脚本标记将违反CSP指令.

jquery content-security-policy

9
推荐指数
1
解决办法
4244
查看次数

c中的查找表

我在C中创建一个查找表当我定义它时:

typedef struct {
 char* action;
 char* message;
} lookuptab;

lookuptab tab[] = {
  {"aa","bb"},
  {"cc","dd"}
};
Run Code Online (Sandbox Code Playgroud)

它编译没有错误,但当我做这样的事情:

typedef struct {
 char* action;
 char* message[];
} lookuptab;

lookuptab tab[] = {
  {"aaa", {"bbbb", "ccc"}},
  {"cc", {"dd", "eeeee"}}
};
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误:在嵌套上下文中初始化灵活数组成员

错误:(接近初始化'tab [0] .message')

如何在第二个示例中初始化制表符数组?注意:我知道选项卡数组中的所有值.

更新:消息可以是不同的大小,例如

typedef struct {
 char* action;
 char* message[];
} lookuptab;

lookuptab tab[] = {
  {"aaa", {"bbbb", "ccc", "dd"}},
  {"cc", {"dd", "eeeee"}}
};
Run Code Online (Sandbox Code Playgroud)

非常感谢你.

最好的问候,维克多

c arrays struct char

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

opencv矩阵存入共享内存

我想在两个 Linux 进程之间共享一个 CvMat 对象(OpenCV 库中的矩阵),为此我使用共享内存。一个进程(服务器)将从网络摄像头捕获一帧(矩阵),将其转换为灰度,使用共享内存共享它并在屏幕上显示该帧。另一个进程(客户端)将读取共享帧并执行一些操作。请参阅下面的代码。

问题似乎是客户端没有读取信息,因为“行”和“列”为零(或者服务器没有写入共享内存)。无论如何,我没有收到任何错误消息,我不知道我做错了什么。任何想法?

非常感谢!


这是服务器的代码:

#include <iostream>
#include <cv.h>
#include <highgui.h>
using namespace std;

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>

#include "2cam.h"

int sizeofmat(CvMat *mat) {
    return mat->rows * mat->cols * CV_ELEM_SIZE(mat->type);
}

int main() {
    int shmid;
    key_t key = 5678;

    CvMat *vdisp = cvCreateMat(240, 320, CV_8U);
    const size_t vdispsize = sizeofmat(vdisp);
    CvMat *s = cvCreateMat(240, 320, CV_8U);
    CvMat stub;
    CvSize imageSize = cvSize(320, 240);

    IplImage *color = cvCreateImage(imageSize, 8, 3);
    IplImage *gray …
Run Code Online (Sandbox Code Playgroud)

c opencv shared-memory

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