csp

Web 安全之内容安全策略 (CSP)

对着背影说爱祢 提交于 2020-03-05 17:11:22
内容安全策略 (CSP, Content Security Policy) 是一个附加的安全层,用于帮助检测和缓解某些类型的攻击,包括 跨站脚本攻击 (XSS) 和数据注入等攻击。 这些攻击可用于实现从数据窃取到网站破坏或作为恶意软件分发版本等用途。内容安全策略在现代浏览器中已经包含,使用的是 W3C CSP 1.0 标准中描述的 Content-Security-Policy 头部和指令。 #####那么如何应用? CSP 可以由两种方式指定:HTTP Header 和 HTML。HTTP 是在 HTTP 由增加 Header 来指定,而 HTML 级别则由 Meta 标签指定。 CSP 有两类:Content-Security-Policy 和 Content-Security-Policy-Report-Only。(大小写无关) HTTP header : "Content-Security-Policy:" 策略 "Content-Security-Policy-Report-Only:" 策略 HTTP Content-Security-Policy 头可以指定一个或多个资源是安全的,而Content-Security-Policy-Report-Only则是允许服务器检查(非强制)一个策略。多个头的策略定义由优先采用最先定义的。 HTML Meta : <meta

web—浏览器安全

∥☆過路亽.° 提交于 2020-02-29 21:36:01
一,同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 设置目的: 二,内容安全策略 1,CSP指的是内容安全策略,为了缓解很大一部分潜在的跨站脚本问题,浏览器的扩展程序系统引入了内容安全策略(CSP)的一般概念。这将引入一些相当严格的策略,会使扩展程序在默认情况下更加安全,开发者可以创建并强制应用一些规则,管理网站允许加载的内容。 CSP以 白名单 的机制对网站加载或执行的资源起作用。在网页中, 这样的策略通过 HTTP 头信息或者 meta 元素定义 。CSP虽然提供了强大的安全保护,但是他也造成了如下问题:Eval及相关函数被禁用、内嵌的JavaScript代码将不会执行、只能通过白名单来加载远程脚本。这些问题阻碍CSP的普及,如果要使用CSP技术保护自己的网站,开发者就不得不花费大量时间分离内嵌的JavaScript代码和做一些调整,参考文献汇总的Content Security Policy 1.0 研究的技术可以自动化分离代码和数据,帮助网站支持CSP技术避免潜在的跨站攻击。 2,CSP语法 示例 来源: CSDN 作者: Tycoon_ys 链接: https://blog.csdn

一分钟了解【网站CSP策略设置】

别说谁变了你拦得住时间么 提交于 2020-02-27 12:35:42
含义 内容安全策略(Content-Security-Policy),简称CSP,指通过设置一定的策略来控制外部资源(script、style、font等)的加载。 目的 防止非法资源的引入带来xss等安全风险。 设置方法 网页标签设置 <!-- 最简单的控制方式,仅加载来自本站的资源 --> <meta http-equiv="content-security-policy" content="default-src ‘self‘ "> header响应头设置 <!-- 允许加载来自本站和a.com的资源 --> Content-Security-Policy:default-src ‘self‘ *.a.com 这两种方式,可以根据实际情况来选择,效果都是一样的。 了解更多 上面介绍了最简单的CSP设置方式,一般来说也足够了,如果想对CSP进行更加细致的设置,可以参考: https://blog.csdn.net/qq_25623257/article/details/90473859 来源: oschina 链接: https://my.oschina.net/crazymus/blog/3167536

csp 碰撞的小球

回眸只為那壹抹淺笑 提交于 2020-02-27 03:45:40
# include <iostream> using namespace std ; struct Ball { int a ; bool s ; } ; int main ( ) { int n , l , t ; cin >> n >> l >> t ; Ball b [ 100 ] ; for ( int i = 0 ; i < n ; i ++ ) { cin >> b [ i ] . a ; b [ i ] . s = true ; } for ( int k = 1 ; k <= t ; k ++ ) { for ( int i = 0 ; i < n ; i ++ ) { if ( b [ i ] . a == l ) b [ i ] . s = false ; else if ( b [ i ] . a == 0 ) b [ i ] . s = true ; for ( int j = 0 ; j < n ; j ++ ) { if ( b [ i ] . a == b [ j ] . a && i != j ) { if ( b [ i ] . s == true ) { b [ i ] . s = false ; b [ j ] . s = true ; } else { b [ i ] . s = true ; b [ j ] . s = false ; }

CCF CSP攻克之路 —— 2019_09

末鹿安然 提交于 2020-02-17 10:25:21
CCF CSP 2019_09 1:小明种苹果(100)* 1.1 题目 1.2 代码与解答 2: 小明种苹果续(100) 2.1 题目 2.2 代码与解答 3: 字符画 3.1 题目 3.2 代码与解答 4: 推荐系统 4.1 题目 4.2 代码与解答 5:城市规划 5.1 题目 5.2 代码与解答 1:小明种苹果(100)* 1.1 题目 1.2 代码与解答 能够初始化还是初始化数组,从零赋值再用数组指针 # include <bits/stdc++.h> using namespace std ; int sum [ 1005 ] = { } , num [ 1005 ] = { } , p [ 1005 ] = { } ; int main ( ) { int N , M ; //N为苹果树棵数,M是蔬果操作轮数 int sum0 = 0 , k , maxx = 0 , ans = 0 ; // cin >> N >> M ; for ( int i = 1 ; i <= N ; i ++ ) { cin >> sum [ i ] ; ans + = sum [ i ] ; for ( int j = 1 ; j <= M ; j ++ ) { cin >> num [ j ] ; p [ i ] + = abs ( num [ j ] ) ; ans + = num [

CSP

核能气质少年 提交于 2020-02-10 20:13:22
刷了程序设计题,希望将要来的csp能考好点哈!考研成绩算着指定凉了,但那都是过去的事了,本来想想,就算初试过了(瞎说),复试也几乎没一点优势,在本专业没获得过国家级奖项(半路出家吗,能不挂科就很幸运啦!),没事,没事,反正才二十多岁,不想谈女朋友能给自己以前的错误找补点省点时间,还好,还好,我还健康。每个人的人生都需要试错,但承担的后果不一样,但不管承担了怎样的后果,都要记住,争取下次不再犯,而不是悲伤过去,这是我理解的错误的所有意义。 来源: https://www.cnblogs.com/guoliangqinyusi/p/12292275.html

CSP认证考试真题,更新中....

荒凉一梦 提交于 2020-02-08 22:33:24
为啥只有前两道题,因为蒟蒻只能写出来前两题(小声BB) 题目陆续补充中… 已注册CCF用户点击题目就可以做题,提交代码啦 CSP 201912-1 报数 思路 : 水题,模拟即可 代码 : #include<bits/stdc++.h> using namespace std; bool fun(int x) { if(x%7==0) { return true; } int t=0; while(x) { t=x%10; if(t==7) { return true; } x/=10; } return false; } int main() { int n; cin>>n; int s[5]; memset(s,0,sizeof(s)); int cnt=1; int i=1; int j=1; while(cnt<=n) { if(fun(j)) { s[i]++; } else { cnt++; } j++; i++; if(i==5) i=1; } for(i=1;i<=4;i++) { cout<<s[i]<<"\n"; } return 0; } CSP 201912-2 回收站选址 思路 : 使用STL库中的set进行查找,将每一个点的分数存入数组即可 代码 : #include<bits/stdc++.h> #define repn(n) for(int i=1

csp练题记录(C语言,编译器dev c++)201912-2回收站选址

ぃ、小莉子 提交于 2020-02-08 06:29:37
csp练题记录(C语言,编译器dev c++)201912-2回收站选址 文章目录 一、题目描述 二、思路分析 三、代码 四、反思总结 一、题目描述 二、思路分析 解这道题我觉得需要以下两个步骤:1、找出所有的备选地址,用sel[]数组来标识是否是备选地址(在初始代码中);2、对所有备选地址进行评分。 其中,备选地址要具备:它上、下、左,右四邻位都有垃圾;对它评分时,就是看它左上、左下、右上,右下四个对角线元素的有垃圾的个数,分值0~5分。 开始的时候,怎么存储坐标信息让我感觉一筹莫展:想用链表来存储,每一个节点存储了它的上下左右四邻位的信息,这样遍历一遍就可以得到所有的备选地址,但这样带来了一个新的问题:评分时考虑的是它对角线上的,就很麻烦,水平不够,自然是整得越简单越好,于是干脆设置一个二维数组,简单直接。 初始的代码能跑,但很粗糙、暴力:对每一个坐标都完整遍历一遍数组,这样找出它上下左右四邻位共有几处有垃圾,当计数值count为4时,说明它是备选位置。参阅博客和咨询dalao后有了改进思路。 第一次优化思路 邻位的两个元素是相互的,你是我的左,那么相对的,你就是我的右。同理,上下也有一样的性质,也就是说,不必像初始代码中那样每次都完整遍历一遍。因此找备选地址时,就有以下的思路: (个人感觉有点像递归)遍历到第i个元素时,由于邻位的概念如上是相互的

201712-1 csp认证练习 最小差值

大城市里の小女人 提交于 2020-02-04 07:54:26
#include <iostream> using namespace std; int a[1005]; int main() { int n; cin >> n; int Dvalue; int MINDvalue;//表示最小差值 for(int i=0; i<n; i++){ cin >> a[i]; } MINDvalue=max(a[0],a[1])-min(a[0],a[1]); for(int i=0; i<n-1; i++){ for(int j=i+1; j<n; j++){ Dvalue=max(a[i],a[j])-min(a[i],a[j]); if(Dvalue < MINDvalue) MINDvalue=Dvalue; } } cout << MINDvalue; return 0; } 来源: CSDN 作者: 我一直在矛盾 链接: https://blog.csdn.net/weixin_42546737/article/details/104156412

CSP认证 201909-1 小明种苹果

会有一股神秘感。 提交于 2020-02-03 17:32:55
题目来源:CSP认证 201909-1 小明种苹果 代码如下: # include <iostream> # include <stdio.h> # include <cstring> int main ( ) { int a [ 1005 ] , n , m , c , sum = 0 , max = - 1 , k ; memset ( a , 0 , sizeof ( a ) ) ; scanf ( "%d%d" , & n , & m ) ; for ( int i = 1 ; i <= n ; i ++ ) { scanf ( "%d" , & c ) ; sum + = c ; for ( int j = 0 ; j < m ; j ++ ) { scanf ( "%d" , & c ) ; sum + = c ; a [ i ] - = c ; } if ( max < a [ i ] ) { max = a [ i ] ; k = i ; } } printf ( "%d %d %d" , sum , k , a [ k ] ) ; return 0 ; } 来源: CSDN 作者: 是羽白啊 链接: https://blog.csdn.net/qq_45695839/article/details/104156860