`
DBear
  • 浏览: 231272 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类

【Frontend Knowlodge Chart】 学习之安全相关

阅读更多

安全相关

考查前端及系统安全方面的知识,需要对各种攻击手段和防范措施有基本的了解。

知识点

  • HTML转义符号、脚本转义符号。
参见百度百科:http://baike.baidu.com/view/73.htm
  • 常见的XSS漏洞,及其避免方式。
Xss(跨站脚本攻击),简单来说,就是让不支持富文本的区域支持了富文本的执行,例如blog的标题是不支持富文本的,但由于页面显示时没去做处理,导致了可以在标题中嵌入像文本加粗、变颜色等等的普通HTML,当然,攻击者也就可以嵌入恶意的javascript了,例如获取你在当前网站的cookie的javascript:document.cookie等等,另外一种就是支持富文本的区域没有去过滤一些恶意的javascript。
常见的XSS攻击手法:
1、依赖跨站漏洞,需要在被攻击网站的页面种入XSS脚本的手法
    a. Cookie 盗取,通过javascript 获取被攻击网站种下的cookie,并发送给攻击者。
  • 从cookie 中提取密码等隐私
  • 利用cookie 伪造session,发起重放攻击
    b. Ajax 信息盗取,通过javascript 发起ajax 请求。
  • 从ajax 结果中获取隐私。
  • 模拟用户完成多页表单。
2、不依赖跨站漏洞的XSS攻击手法
    a. 单向HTTP 动作,通过img.src 等方法发起跨站访问,冒充被攻击者执行特权操作。但是很难拿到服务器的返回值。
    b. 双向HTTP 动作,如果服务器产生一段动态的script,那么可以用script.src 的方法发起跨站访问并拿到服务器的返回值。

所谓知己知彼百战不殆,看看黑客教程能更好的了解这方面内容:

避免方式:
  1. 不信任用户提交的任何内容,对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、REFER、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。尽量采用POST 而非GET 提交表单;对”<”,”>”,”;”,”’”等字符做过滤;任何内容输出到页面之前都必须加以encode,避免不小心把html tag 弄出来。
  2. 实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行,对于用户提交信息的中的img 等link,检查是否有重定向回本站、不是真的图片等可疑操作。
  3. Cookie 防盗。避免直接在cookie 中泄露用户隐私,例如email、密码等等;通过使cookie 和系统ip 绑定来降低cookie 泄露后的危险。这样攻击者得到的cookie 没有实际价值,不可能拿来重放。
  4. 确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
淘宝QA Team也有专门一片检验XSS漏洞的文章:
  • 常见的其他安全攻击方式,及其应对措施。
先引一篇文章,留着慢慢看。。。。

"中间人"攻击:前端很难防御。。。。。
  • 与flash交互过程中的安全事项。

常见问题

  • 有一段用户输入的文字,现在要通过一定的方法显示在一个id为output的div元素中,请问如何做?
比如,我在一个textarea中输入<input type="text" value="">,然后点击提交把它放入div中,此时如果不做任何处理,div中会出现一个输入框,而不是文字。因此,在输出之前,要用js的内置方法encodeURIComponent(),将输入串转义,然后输出。
  • 请问什么是XSS漏洞?从你的角度看,HTML片段中有哪些关键字可能导致输出后会执行一段javascript脚本?
就常见的是在一个input中输入"><script>alert(document.cookie);</script>这样的字符串,之后与原来的input标签组合,就变成 <input type="text" value=""><script>alert(document.cookie);</script> >,这样script就被执行了。
效果图:

 
一般会导致脚本执行的关键字有“script”,“iframe”,”<”,”>”,”;”,”’”等。
简单的防御方法是把这些输入都encode,代码如下:
encodeJsonString: function(str) {
        var a = [[/"/g, '\"'], [/</g, '&lt;'], [/>/g, '&gt;'], [/'/g, "\'"], [/\//g, '/'], [/\\/g, '\\']];
        var s = str;
        if (typeof str == 'string') {
            for (var i = 0; i < a.length; i++) {
                s = s.replace(a[i][0], a[i][1]);
            }
        }
        return s;
    },
 
这样转义后在输出到dom中,就不会有上面的js运行情况了。

引一篇简单描述XSS攻击实例的文章:http://coderblog.me/2011/04/xss攻击案例分析之——我是2b状态/


  • 如何防止flash在页面中执行javascript呢?
  • 大小: 30.5 KB
分享到:
评论

相关推荐

    FrontEnd 反编译工具

    kosmos可能是指FrontEnd的某个特定版本或者与其相关的项目名称,"Access"可能意味着该工具提供了对JAD反编译服务的访问接口,而"Trial"则表明这些是试用版,可能有时间限制或功能限制。 使用FrontEnd时,开发者可以...

    UPX Frontend v3.01

    使用UPX Frontend时,用户需要确保目标文件是安全的,因为压缩和解压过程中可能会破坏文件结构或引入潜在的安全风险。同时,压缩后的可执行文件可能会被某些杀毒软件误报为恶意软件,因此在分发前可能需要进行白名单...

    FrontEnd-java反编译工具

    总的来说,FrontEnd提供的jad反编译工具是Java开发者的重要辅助工具,它能帮助我们理解字节码,进行代码调试和学习,同时在没有源代码的情况下也能进行一定程度的分析和修复工作。正确并合理地使用这类工具,将有助...

    FrontEnd&jad;

    "这个主题似乎关联到前端开发领域,并且与Java反编译工具有关,这对于理解、学习和分析Java代码非常有用。下面我们将详细探讨这些知识点。 首先,前端开发主要涉及HTML、CSS和JavaScript技术,它们共同创建了用户在...

    jad和frontEnd反编译器

    - 安全分析:检查第三方组件是否存在安全漏洞。 总之,jad和FrontEnd是Java开发者的重要工具,它们可以帮助我们理解和探索Java字节码背后的逻辑,从而提升我们的编程技能和解决问题的能力。不过,务必谨慎使用,...

    jad | FrontEnd

    在压缩包文件中,"fanbianyi"可能是指一个与jad 或FrontEnd相关的工具、程序或示例。这可能是一个自定义的反编译前端,或者包含了一些使用jad 进行反编译的示例文件。如果要深入了解这个压缩包,你需要解压并检查...

    java反编译工具FrontEnd V2.03

    最后,"jad"是一个与"FrontEnd"相关的标签,它也是另一个知名的Java反编译器。jad能够将Java字节码转换成可读的源代码,但它通常被用作命令行工具,而非带有图形用户界面的工具如"FrontEnd"。jad通常用于自动化脚本...

    cxf-rt-frontend-jaxrs-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-frontend-jaxrs-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-jaxrs-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-jaxrs-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-jaxrs...

    cxf-rt-frontend-jaxws-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-frontend-jaxws-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-jaxws-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-jaxws-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-jaxws...

    FrontEnd

    【标题】"FrontEnd" 指的是前端开发领域,这通常涉及到网页设计和开发,包括HTML、CSS、JavaScript以及相关的框架和库如React、Vue、Angular等。前端开发是构建互联网应用用户界面的主要部分,它确保用户在浏览器中...

    fcitx-frontend-qt5

    fcitx-frontend-qt5的离线安装包

    FrontEnd.exe+Jad.exe

    在IT行业中,"FrontEnd.exe+Jad.exe" 提到的这两个文件名通常是与软件开发相关的,特别是前端和编译工具。让我们详细探讨一下这两个组件及其在计算机科学和IT技术中的作用。 首先,"FrontEnd.exe" 这个名称暗示了一...

    cxf-rt-frontend-simple-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-frontend-simple-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-simple-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-simple-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-...

    NewbeeGuide-frontend:学习路线指南(Web 前端篇)

    NewbeeGuide-frontend在学习本系列指南前,请确保你至少掌握了基本的信息搜索能力,本系列指南不会也不可能提供无微不至的关怀,在学习过程中遇到问题请善用搜索。学习方法:按照章节顺序学习即可。如果章节内使用...

    FrontEnd Plus java反编译

    "FrontEnd Plus"可能是一个特定的Java反编译工具,尽管在描述中没有提供详细信息,但我们可以探讨Java反编译的一般概念和相关技术。 首先,Java的字节码是一种中间语言,它不是人类可读的形式,因此需要反编译器来...

    FrontEnd.exe

    "FrontEnd"这个标签可能指的是这款工具的名称或者是与前端开发相关的一个术语。在Web开发中,前端通常指的是用户直接交互的部分,包括HTML、CSS和JavaScript。但是在这个上下文中,"FrontEnd"显然指的是与Java字节码...

    wp user frontend pro汉化版2.1.8.zip

    8. **安全性**:虽然增加了前端功能,但WP User Frontend Pro也会考虑安全性,防止未授权访问和恶意操作。 9. **SEO优化**:好的前端用户体验也有助于搜索引擎优化,因为用户在网站上的停留时间更长,互动更多,对...

    FrontEnd Plus反编译工具

    在实际应用中,FrontEnd Plus反编译工具不仅适用于前端开发者,也对安全研究人员和逆向工程师有价值,他们可以通过此工具深入研究代码的安全性,发现潜在的漏洞或恶意行为。 总结来说,"FrontEnd Plus反编译工具"是...

    jad.exe and frontend.exe

    标题中的"jad.exe and frontend.exe"提到了两个关键程序,jad.exe和FrontEnd.exe,它们在Java开发中扮演着特定的角色。jad.exe是Java反汇编器(Java Decompiler),而FrontEnd.exe可能是jad的一个图形用户界面(GUI...

    wp-user-frontend-pro

    "wp-user-frontend-pro"是一款针对WordPress平台的专业前端表单编辑插件,它极大地扩展了网站用户在前段操作的功能,允许非管理员级别的用户在不进入后台的情况下进行文章的编辑和发布。这款插件旨在提升用户体验,...

Global site tag (gtag.js) - Google Analytics