node/angular 应用程序的内容安全违规
Content security violation with node/angular application
基本上,我有一个用 node/express/angular/javascript 编写的功能完备的网站。几个月后我回到了这个项目,当我在本地节点 js 上 运行 时,我什至无法显示应用程序的任何页面。我一直收到无法获取“{webpage}”的消息,当我进入控制台时,它会出现大量我以前从未见过的不同内容安全违规行为。
我尝试重新安装所有依赖项,但没有成功。我决定创建一个新项目,并只使用我的大型项目代码的基本要素,看看我是否可以让它工作,但仍然没有运气。
我用于基本问题的代码如下:
Index.js(服务器)
var express = require("express");
var bodyParser = require('body-parser');
var app = express();
var http = require('http');
// app is currently a empty file where my angular code will go
app.use(express.static("public"));
// app = Angular
app.use(function(err,req,res,next){
console.log(err);
res.send({error: err});
})
// *** Server Connection *** //
var server = http.createServer(app).listen(4000, function(){
console.log("Connected to DB");
});
HTML 页数:
<!DOCTYPE html>
<html lang="en" ng-app="holidayManagementSystem" >
<head>
<meta charset="UTF-8">
<title>Homepage</title>
<script src="/angular.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.js"></script>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<body>
</body>
</html>
有人在您的应用程序的网页上放置了 Content-Security-Policy HTTP headers。
读这个:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
查看浏览器开发工具的“网络”选项卡,您可以在其中看到 html 页面上的 HTTP headers。您的应用程序是否使用 nginx 反向代理服务器?如果是这样,那可能就是插入那些 headers 的地方。
如果这些 headers 不是你自己放的,可能是需要提高沟通技巧的热心信息安全人员添加的。
所有浏览器在获取网页时都会尝试获取 /favicon.ico
。他们在浏览器选项卡和快捷方式中使用它。如果它丢失了,也不会造成任何伤害。如果你想把它放在你的服务器上,URL https://app.example.com/favicon.ico
会检索它。
您也可以使用serve-favicon express middleware发送。
如果您不确定如何制作 .ico
文件,您应该查找它。
基本上,我有一个用 node/express/angular/javascript 编写的功能完备的网站。几个月后我回到了这个项目,当我在本地节点 js 上 运行 时,我什至无法显示应用程序的任何页面。我一直收到无法获取“{webpage}”的消息,当我进入控制台时,它会出现大量我以前从未见过的不同内容安全违规行为。
我尝试重新安装所有依赖项,但没有成功。我决定创建一个新项目,并只使用我的大型项目代码的基本要素,看看我是否可以让它工作,但仍然没有运气。
我用于基本问题的代码如下:
Index.js(服务器)
var express = require("express");
var bodyParser = require('body-parser');
var app = express();
var http = require('http');
// app is currently a empty file where my angular code will go
app.use(express.static("public"));
// app = Angular
app.use(function(err,req,res,next){
console.log(err);
res.send({error: err});
})
// *** Server Connection *** //
var server = http.createServer(app).listen(4000, function(){
console.log("Connected to DB");
});
HTML 页数:
<!DOCTYPE html>
<html lang="en" ng-app="holidayManagementSystem" >
<head>
<meta charset="UTF-8">
<title>Homepage</title>
<script src="/angular.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.js"></script>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<body>
</body>
</html>
有人在您的应用程序的网页上放置了 Content-Security-Policy HTTP headers。
读这个:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
查看浏览器开发工具的“网络”选项卡,您可以在其中看到 html 页面上的 HTTP headers。您的应用程序是否使用 nginx 反向代理服务器?如果是这样,那可能就是插入那些 headers 的地方。
如果这些 headers 不是你自己放的,可能是需要提高沟通技巧的热心信息安全人员添加的。
所有浏览器在获取网页时都会尝试获取 /favicon.ico
。他们在浏览器选项卡和快捷方式中使用它。如果它丢失了,也不会造成任何伤害。如果你想把它放在你的服务器上,URL https://app.example.com/favicon.ico
会检索它。
您也可以使用serve-favicon express middleware发送。
如果您不确定如何制作 .ico
文件,您应该查找它。