Html5中内容安全策略(CSP)前言:

前言:

Cordova不支持内联事件,所以点击事件必须提取到js里面.
以下是从官网摘抄下来,希望对您有所帮助

为了缓解大量潜在的跨站点脚本问题,Chrome的扩展系统已经纳入了内容安全策略(CSP)的一般概念。 这引入了一些相当严格的策略,默认情况下将使扩展更加安全,并为您提供了创建和实施管理可由扩展和应用程序加载和执行的内容类型的规则的功能。

一般来说,CSP作为黑客/白名单机制,用于扩展程序加载或执行的资源。 为您的扩展定义合理的策略,您可以仔细考虑扩展所需的资源,并要求浏览器确保这些资源是您的扩展程序可以访问的唯一资源。 这些策略提供超出您的扩展请求的主机权限的安全性; 它们是一个额外的保护层,而不是替代。

在网络上,这样的策略是通过HTTP头或元素来定义的。 在Chrome的扩展系统中,两者都不是一个合适的机制。 相反,扩展的策略是通过扩展名的manifest.json文件定义的,如下所示:

{ 
   … 
   “content_security_policy”:“[POLICY STRING GOES HERE]” 
   …
}

有关CSP语法的完整详细信息,请参阅内容安全策略规范以及有关HTML5Rocks的“内容安全策略简介”一文。

默认策略限制

没有定义manifest_version软件包没有默认的内容安全策略。 那些选择manifest_version 2,具有默认内容安全策略:

script-src’self’; object-src’self’

此策略通过三种方式限制扩展和应用程序来增加安全性:

(1)评估和相关功能被禁用

以下代码不起作用:

警报(的eval( “foo.bar.baz”));

window.setTimeout(“alert(’hi’)”,10); 
 window.setInterval(“alert(’hi’)”,10); 
 new Function(“return foo.bar.baz”);

评估这样的JavaScript字符串是一个常见的XSS攻击向量。 相反,你应该编写如下代码:

alert(foo && foo.bar && foo.bar.baz); 
window.setTimeout(function(){alert(’hi’);},10); 
window.setInterval(function(){alert(’hi’);},10); 
function(){return foo && foo.bar && foo.bar.baz};

(2)内联JavaScript不会被执行

内联JavaScript不会被执行。 此限制禁止内嵌块和内联事件处理程序(例如 )。

第一个限制通过使您不小心执行恶意第三方提供的脚本来消除大量的跨站点脚本攻击。 但是,它需要您将代码写入内容与行为之间的干净分离(您当然应该做到这一点)对吗? 一个例子可能使这更清楚。 您可能会尝试编写一个浏览器操作的弹出窗口作为单个popup.html包含:

<!doctype html> 
      My Awesome Popup! 
       function awesome(){ 
         //做某事真棒! 
       }
   function totalAwesome(){
     //做某事真棒!
   }
  函数clickHandler(element){
     setTimeout( “awesome();getherAwesome()” ,1000);
   }
   function main(){
     //初始化工作在这里。
   }
 </ SCRIPT>

点击awesomeness!

放宽默认策略

(1)内联脚本

直到Chrome 45,没有放宽对执行内联JavaScript的限制的机制。 特别是,设置包含’unsafe-inline’的脚本策略将不起作用。

从Chrome 46起,可以通过在策略中指定源代码的base64编码哈希来将内联脚本列入白名单。 该散列必须以使用的散列算法(sha256,sha384或sha512)为前缀。 有关示例的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码
HTML5使用DOM进行自定义控制
使用HTML5 Canvas绘制阴影效果的方法
使用PHP和HTML5 FormData实现无刷新文件上传
如何解决HTML5 虚拟键盘出现挡住输入框的问题
HTML5中div和section以及article的区别分析
html5和CSS 实现禁止IOS长按复制粘贴功能
html5 touch事件实现触屏页面上下滑动
canvas 模拟实现电子彩票刮刮乐的代码
HTML5 Plus 实现手机APP拍照或相册选择图片上传的功能
Android自定义环形LoadingView效果
HTML5 canvas绘制五角星的方法
html5使用html2canvas实现浏览器截图
使用Canvas处理图片的方法介绍
利用Canvas模仿百度贴吧客户端loading小球的方法