开发-开发外包-北京开发外包

搜 索

Search:开发


快速chrome插件开发-北京chrome插件开发外包

chrome插件会包含哪些文件及文件D:.│  manifest.json│├─html│      index.html│├─images│      icon-128.png│      icon-16.png│├─scripts│      background.chrome插件会包含哪些文件及文件D:.│  manifest.json│├─html│      index.html│├─images│      icon-128.png│      icon-16.png│├─scripts│      background.js│├─styles│      main.css│└─_locales    ├─en    │      messages.json    │    └─zh_CN            messages.json简单说明一下: html:存放html页面images:存放插件图标scripts:存放js文件styles: 存放样式_locales: 存放多语言文件manifest.json:一些关于插件的元数据,作为chrome入口文件看目录结构,像不像一个网站?Chrome插件就是一个网站类的应用,它是用html、javascript、css组成的一个webapp; 相比于通常的webapp, Chrome插件还可以调用更多浏览器层面的api,包括书签、历史记录、网络请求拦截、截获用户输入等等。(PS:插件不要随便乱装哦,很危险滴!)重点说一说这个文件:manifest.json如前所述,它包含了一些插件的元数据,作为chrome的入口文件,可以理解为插件的程序清单,那么它到底做了什么事情呢? 结合示例,我们细细来看: {  // 清单版本号,建议使用 版本 2,版本 1 是旧的,已弃用,不建议使用  "manifest_version": 2,   "name": "chome-plugin", // 插件名称  "version": "1.8.6",  // 插件版本  // 这里写些废话,举个栗子,‘应产品要求,杀个程序祭天’  "description": "This is an extension for your chrome",   "icons": {    "16": "images/custom/16x16.png",    "48": "images/custom/48x48.png",    "128": "images/custom/128x128.png"  },  //browser_action和page_action只能添加一个  "browser_action": { //浏览器级别行为,所有页面均生效    "default_icon": "images/custom/16x16.png",//图标的图片    "default_title": "Hello ELSE", //鼠标移到图标显示的文字     "default_popup": "html/popup.html" //单击图标后弹窗页面  },   "page_action":{ //页面级别的行为,只在特定页面下生效     "default_icon":{        "24":"images/custom/24x24.png",        "38":"images/custom/38x38.png"        },    "default_popup": "html/popup.html",    "default_title":"Hello ELSE"  },   // 可选  "author": "ELSE TEAM",  "automation": "...",      "background": {    "scripts": [      "scripts/background.js",      "scripts/devtools-page.js"    ]  },  "devtools_page": "html/devtools-page.html",   // 定义对页面内容进行操作的脚本  "content_scripts": [    {      "js":["js/else-insert.js"],      "css": ["css/else-insert.css"],      "matches":["<all_urls>"] // 只在这些站点下 content_scripts会运行    }  ],  // 数组,声明插件所需要的权限,这里就是很危险的存在了,想干坏事的你是不是很激动!  "permissions": [    "cookies",    "http://*/*",    "management",    "tabs",    "contextMenus"  ]}

前端开发XSS攻击防御,常见的xss攻击方法,xss攻击类型

   xss跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。比如获取用户的Cookie,导航到恶意网站,携带木马等。   大部分的xss漏洞都是由于没有处理好用户的输入,导致攻击脚本在浏览器中执行,这就是跨站脚本漏洞的根源。...   xss跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。比如获取用户的Cookie,导航到恶意网站,携带木马等。   大部分的xss漏洞都是由于没有处理好用户的输入,导致攻击脚本在浏览器中执行,这就是跨站脚本漏洞的根源。xss攻击类型   1.非持久型XSS攻击   非持久型XSS(Non-persistent)又叫做反射XSS(Reflect XSS),它是指那些浏览器每次都要在参数中提交恶意数据才能触发的跨站脚本漏洞。   非持久型XSS漏洞实际上大多数攻击数据是包含在URL中的,类似这样的:http://www.chinasgp.cn/vul.asp?hi=[code]。需要用户的浏览器访问到这个URL恶意代码才执行,攻击者一般会把URL发给用户让用户通过浏览器去访问。不过URL里面带有稀奇古怪的代码确实有点奇怪,为了掩人耳目,攻击者可以发一个看起来没问题的URL,再通过那个页面跳转到恶意的URL;甚至也可以让一个域名转向到恶意URL,把那个域名发给用户。   2.持久型XSS攻击   持久型XSS(Persistent)又叫做存储XSS(Stored XSS),与非持久型XSS相反,它是指通过提交恶意数据到存储器(比如数据库、文本文件等),Web应用程序输出的时候是从存储器中读出恶意数据输出到页面的一类跨站脚本漏洞。   持久型XSS攻击就简单一点,只要第一次把攻击代码提交到服务器就一劳永逸了。比如我在某个论坛发帖的时候,论坛没有对传入的HTML作处理,那么我就可以发一个帖子内容包含“<script>[code]</script>”的帖子。呵呵,然后就守株待兔地等着来看帖子的人执行恶意脚本了。持久型XSS漏洞是把恶意脚本存储到了数据库,访问页面的时候完全没有预兆,所以它的危害也比非持久型XSS略微高一点。 常见的xss攻击方法  1.绕过XSS-Filter,利用<>标签注入Html/JavaScript代码;   2.利用HTML标签的属性值进行xss攻击。例如:<img src=“javascript:alert(‘xss’)”/>;(当然并不是所有的Web浏览器都支持Javascript伪协议,所以此类XSS攻击具有一定的局限性)   3. 空格、回车和Tab。如果XSS Filter仅仅将敏感的输入字符列入黑名单,比如javascript,用户可以利用空格、回车和Tab键来绕过过滤,例如:<img src=“javas  cript:alert(/xss/);”/>;   4. 利用事件来执行跨站脚本。例如:<img src=“#” onerror= “alert(1)”/>,当src错误的视乎就会执行onerror事件;   5. 利用CSS跨站。例如:Body {backgrund-image: url(“javascript:alert(‘xss’)”)};   6. 扰乱过滤规则。例如:<IMG SRC=“javaSCript: alert(/xss/);”/>;   7.利用字符编码,透过这种技巧,不仅能让XSS代码绕过服务端的过滤,还能更好地隐藏Shellcode;(JS支持unicode、eacapes、十六进制、十进制等编码形式)   8.拆分跨站法,将xss攻击的代码拆分开来,适用于应用程序没有过滤 XSS关键字符(如<、>)却对输入字符长度有限制的情况下;   9.DOM型的XSS主要是由客户端的脚本通过DOM动态地输出数据到页面上,它不依赖于提交数据到服务器,而是从客户端获得DOM中的数据在本地执行。容易导致DOM型的XSS的输入源包括:Document.URL、Location(.pathname|.href|.search|.hash)、 Document.referrer、Window.name、Document.cookie、localStorage/globalStorage; XSS攻击防御  原则:不相信客户输入的数据  注意:  攻击代码不一定在<script></script>中   1.使用XSS Filter。   输入过滤,对用户提交的数据进行有效性验证,仅接受指定长度范围内并符合我们期望格式的的内容提交,阻止或者忽略除此外的其他任何数据。比如:电话号码必须是数字和中划线组成,而且要设定长度上限。过滤一些些常见的敏感字符,例如:< > ‘ “ & # \ javascript expression  "onclick="  "onfocus";过滤或移除特殊的Html标签, 例如: <script>, <iframe> ,  &lt; for <, &gt; for >, &quot for;过滤JavaScript 事件的标签,例如 "onclick=", "onfocus" 等等。   输出编码,当需要将一个字符串输出到Web网页时,同时又不确定这个字符串中是否包括XSS特殊字符(如< > &‘”等),为了确保输出内容的完整性和正确性,可以使用编码(HTMLEncode)进行处理。   2.DOM型的XSS攻击防御   把变量输出到页面时要做好相关的编码转义工作,如要输出到 <script>中,可以进行JS编码;要输出到HTML内容或属性,则进行HTML编码处理。根据不同的语境采用不同的编码处理方式。   3.HttpOnly Cookie   将重要的cookie标记为http only,   这样的话当浏览器向Web服务器发起请求的时就会带上cookie字段,但是在脚本中却不能访问这个cookie,这样就避免了XSS攻击利用JavaScript的document.cookie获取cookie:
标签: