前言 最早接触安全也是从xss攻击和sql注入攻击开始的。

0x01    跨站脚本攻击漏洞(XSS),是客户端脚本安全中的头号大敌,owasp top10 屡居榜首,由于攻击手法较多,开发者水平不一,危害性又往往被人忽视,这就造成了xss普遍的存在。

0x02    xss漏洞本质还是注入攻击的一种,为什么叫跨站脚本攻击,跨站就是不同站之间,脚本攻击呢这里的脚本其实是js脚本,所以只要是js能干的事情,xss攻击也就能干,危害主要是会话劫持,钓鱼攻击,获取用户浏览器信息,网页蠕虫,甚至是命令执行(如果是有特权域的xss)等。

0x03    xss根据效果的不同分为以下三类:

  1. 反射型XSS  这种xss只是简单地把用户输入的数据“反射”给浏览器,也就是说,黑客往往需要诱使用户点击一个恶意链接,才能攻击成功
  2. 存储型XSS  这个xss会把用户输入的数据“存储”在服务器端(一般是数据库),相对于非持久性的反射型的xss,这种xss具有很强的隐蔽性,影响也更严重。
  3. Dom型XSS tsrc的这篇文章比较好的介绍了基于dom类型的xss。https://security.tencent.com/index.php/blog/msg/107

0x04   防御:

防御思想:输入检查,输出编码

基于mvc的开发框架中,在view层常用的技术是使用模板引擎对页面做渲染,比如在thinkphp3.2版本中就默认使用了smarty引擎,模板引擎本身会提供一些编码方法,能够很好的防护xss攻击。

此外各大浏览器也针对xss攻击推出了一些安全措施,比如IE推出的xss Filter功能,Firefox和chrome推出的CSP(Content Security Policy),均起到了一定的防护作用,但是由于xss攻击手法的多样化,还是会被一些xsser给绕过(例如http://wiki.ioin.in/search?word=CSP),这些防护策略也在不断的更新,安全性也会越来越好。

安全开发培训,定期组织安全开发内部培训和技术交流,比如CSP策略的配置,树立安全开发意识和规范,使程序员写出安全的代码。

xss篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题的更多相关文章

  1. CSRF篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题

    0x01 Brief Description csrf 跨站伪造请求,请求伪造的一种,是由客户端即用户浏览器发起的一种伪造攻击.攻击的本质是请求可以被预测的到. 在了解csrf攻击之前,需要了解浏览器 ...

  2. sqli篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题

    前言 最早接触安全也是从xss攻击和sql注入攻击开始的. 和xss一样屡居OWASPtop10 前三名的漏洞,sqli(sql Injection)sql注入攻击也是web安全中影响较大和影响范围较 ...

  3. SSRF篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题

    SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问的内部系统.( ...

  4. XXE篇-本着就了解安全本质的想法,尽可能的用通俗易懂的语言去解释安全漏洞问题

    0x01 Brief Description XXE(XML External Entity) XML外部实体攻击也是常见的web漏洞之一,在学习这个漏洞之前有必要了解一下xml,可以参考w3c的基本 ...

  5. Web for pentester_writeup之XSS篇

    Web for pentester_writeup之XSS篇 XSS(跨站脚本攻击) Example 1 反射性跨站脚本,URL中name字段直接在网页中显示,修改name字段, Payload: h ...

  6. Web For Pentester 学习笔记 - XSS篇

    XSS学习还是比较抽象,主要最近授权测的某基金里OA的XSS真的实在是太多了,感觉都可以做一个大合集了,加上最近看到大佬的博客,所以这里我也写一个简单的小靶场手册,顺带着也帮助自己把所有XSS的方式给 ...

  7. Java审计之XSS篇

    Java审计之XSS篇 0x00 前言 继续 学习一波Java审计的XSS漏洞的产生过程和代码. 0x01 Java 中XSS漏洞代码分析 xss原理 xss产生过程: 后台未对用户输入进行检查或过滤 ...

  8. Python开发【第十四篇】:Web框架本质

    Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  9. 如何进行安全测试-XSS篇

    XSS分为三类:Stored XSS.Reflected XSS.Dom-Base XSS (1)Stored XSS,即存储式跨站攻击,存储式跨站攻击简单来说就是攻击者提交给网站的数据会提交并永久保 ...

随机推荐

  1. 浏览器自动刷新——基于Nodejs的Gulp LiveReload与VisualStudio完美结合。

    本文版权桂博客园和作者吴双共同所有,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/p/6016055.html 写在前面 大家好我是博客园的蜗牛,博客园的蜗牛就是我 ...

  2. 【C#公共帮助类】WinRarHelper帮助类,实现文件或文件夹压缩和解压,实战干货

    关于本文档的说明 本文档使用WinRAR方式来进行简单的压缩和解压动作,纯干货,实际项目这种压缩方式用的少一点,一般我会使用第三方的压缩dll来实现,就如同我上一个压缩类博客,压缩的是zip文件htt ...

  3. golang os.OpenFile

    os.O_WRONLY | os.O_CREATE | O_EXCL           [如果已经存在,则失败] os.O_WRONLY | os.O_CREATE                 ...

  4. A2W、W2A、A2T、T2A的使用方法

    1.A2W和W2A 在<Window核心编程>,多字节和宽字节之间转换比较麻烦的,MultiByteToWideChar函数和WideCharToMultiByte函数有足够多的参数的意义 ...

  5. String 中去掉空格

    JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间 ...

  6. 判断终端的js

    $(function(){ var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ip ...

  7. Genymotion报Unable to load virtualbox engine错误

  8. 软件工程第二次作业——git的使用

    1. 参照 http://www.cnblogs.com/xinz/p/3803109.html 的第一题,每人建立一个GitHub账号,组长建立一个Project,将本组成员纳入此Porject中的 ...

  9. Oracle工具类-生成数据库现有Job的创建脚本

    生成Oracle数据库现有Job的创建脚本 -- 生成现有Job的创建脚本 create or replace procedure proc_generate_job_create_sql is be ...

  10. SQL Server 2012 新特性:服务角色管理

    数据库角色管理,已经可以使用alter role,create role和drop role. 2012增加了几个ddl语句,可以操作服务级别的角色管理,   CREATE SERVER ROLE 用 ...