HTTP Content-Security-Policy缺失,快速解决

Content-Security-Policy内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。

注意:CSP开启可能会导致js、css出现报错,所以需要正确的配置开始CSP策略。

启用 CSP方法:一种是通过 HTTP 头信息的Content-Security-Policy的字段,另一种是通过网页的meta标签。

第一种:修改 nginx 配置文件

在nginx.conf 配置文件中,增加如下配置内容:

add_header Content-Security-Policy "default-src 'self' localhost:8080 'unsafe-inline' 'unsafe-eval' blob: data: ;";

第二种:通过网页的meta标签

<meta http-equiv="Content-Security-Policy" content="style-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval' https://webapi.amap.com https://restapi.amap.com https://vdata.amap.com https://appx/web-view.min.js;worker-src blob:">

该指令说明:允许自身css、js和高德地图api、地图数据。

CSP 指令说明:
default-src : 定义针对所有类型(js/image/css/font/ajax/iframe/多媒体等)资源的默认加载策略,如果某类型资源没有单独定义策略,就使用默认的。
script-src : 定义针对 JavaScript 的加载策略。
style-src : 定义针对样式的加载策略。

worker-src:worker脚本。
img-src : 定义针对图片的加载策略。
font-src : 定义针对字体的加载策略。
media-src : 定义针对多媒体的加载策略,例如:音频标签<audio>和视频标签<video>。
object-src : 定义针对插件的加载策略,例如:<object>、<embed>、<applet>。
child-src : 定义针对框架的加载策略,例如: <frame>,<iframe>。
connect-src : 定义针对 Ajax/WebSocket 等请求的加载策略。不允许的情况下,浏览器会模拟一个状态为400的响应。
sandbox : 定义针对 sandbox 的限制,相当于 <iframe>的sandbox属性。
report-uri : 告诉浏览器如果请求的资源不被策略允许时,往哪个地址提交日志信息。
form-action : 定义针对提交的 form 到特定来源的加载策略。
referrer : 定义针对 referrer 的加载策略。
reflected-xss : 定义针对 XSS 过滤器使用策略。

  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: ESP8266是一种低成本、低功耗的Wi-Fi芯片,可以实现物联网设备的无线连接。而阿里云是一种云计算服务,可用于存储和处理物联网设备的数据。将ESP8266与阿里云连接可以实现物联网设备与云平台之间的数据传输和通信。 要实现ESP8266连接阿里云,首先需要在阿里云平台上创建设备。然后,在ESP8266开发环境配置设备的身份验证信息,包括设备身份标识和密钥。在ESP8266代码将设备身份标识和密钥与阿里云进行通信,以便进行数据传输和命令控制。 为了连接ESP8266与阿里云,需要使用MQTT(消息队列遥测传输)协议。MQTT是一种轻量级发布/订阅协议,用于物联网设备和服务之间的实时通信。 在ESP8266上,需要使用MQTT库来实现与阿里云的连接。首先,配置ESP8266与Wi-Fi网络连接的信息,包括SSID和密码。然后,在ESP8266的代码设置阿里云的服务器地址和端口号,并根据阿里云的要求,设置设备连接阿里云的身份验证信息。 一旦连接建立,ESP8266就可以通过MQTT协议向阿里云发布数据或订阅主题。可以通过阿里云的云服务来管理和处理设备的数据,比如存储数据、分析数据和控制设备。 总之,通过将ESP8266与阿里云连接,可以实现物联网设备与云平台之间的实时数据传输和通信。这样,我们可以更好地管理和控制物联网设备,提高物联网系统的效率和智能化水平。 ### 回答2: ESP8266是一款低功耗的Wi-Fi模块,可以用于连接互联网。为了将ESP8266连接到阿里云平台,需要进行一些设置和配置。 首先,我们需要创建一个阿里云账户,并登录到阿里云物联网平台。在平台上创建一个设备,并获取设备的三元组信息,包括设备名称、设备密钥和设备ID。 接下来,在Arduino开发环境,需要安装ESP8266开发板库文件,并导入相应的库。然后,打开一个新的Arduino项目,将以下库文件包含在代码: - ESP8266WiFi.h // 用于连接Wi-Fi网络 - PubSubClient.h // 用于连接到MQTT服务器 在代码,需要通过Wi-Fi连接到网络,使用Wi-Fi的连接函数,并向其传递网络名称和密码。 然后,需要设置MQTT服务器的地址和端口号,在代码使用以下函数进行设置: - mqtt.setServer("mqtt.aliyun.com", 1883); 接下来,需要设置用户名和密钥信息: - mqtt.setCredentials("Device ID", "Device Name", "Device Secret"); 在代码,可以设置一个回调函数,用于处理接收到的消息。可以选择订阅并接收特定主题的消息,并在回调函数处理这些消息。 最后,在循环,需要使用mqtt.loop()函数以保持与阿里云服务器的连接,并应答服务器的PING请求。 通过这些步骤,ESP8266就可以成功连接到阿里云平台,并可以通过发布和订阅主题进行双向通信。请确保设备和阿里云平台之间的网络连接正常,并且设备的三元组信息正确设置。 ### 回答3: 要使用ESP8266连接阿里云,首先需要进行以下几个步骤: 1. 注册阿里云账号并创建一个IoT实例。登录阿里云控制台,选择IoT物联网平台,按照指引创建一个实例。 2. 在实例创建一个产品和设备。产品是设备的抽象描述,设备是具体的物理设备。设置产品的通信协议为MQTT协议。 3. 下载并安装Arduino IDE,并在IDE安装ESP8266开发板库和MQTT库。这些库可以通过“库管理器”进行安装。 4. 在IDE打开示例程序,连接ESP8266到WiFi网络。根据自己的网络配置,修改WiFi名称和密码,将示例代码烧录进ESP8266。 5. 在代码配置阿里云物联网平台的参数。包括设备的ProductKey、DeviceName、DeviceSecret等信息。这些可以在阿里云控制台的产品与设备页面找到。 6. 在代码配置MQTT服务器地址和端口。阿里云物联网平台的MQTT服务器地址和端口可以在实例的概览页面找到。 7. 编写程序实现与阿里云的通信。利用MQTT库提供的接口,可以实现设备的数据发送和接收。可以根据需求,编写具体的数据处理逻辑。 8. 将程序烧录进ESP8266,设备将与阿里云建立MQTT连接,并实现数据的传输。 总结以上步骤,我们就可以通过ESP8266连接阿里云,并实现设备与云端的数据交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

链诸葛

真爱了。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值