河北电信推出了一种阿福卡,据说特别实惠,不过我只记得各项优惠的其中一条:流量月底不清零,可累计。哥们托

我给他抢一张,常规手段可以抢到,不过要脚踩好几泡狗屎才行,他已经连续十多天了都没抢到,so想到了用程序猿

的办法来解决这件事。这种卡在天猫和官网发售,天猫就算了,阿里那帮牛逼哄哄的攻城狮都不是吃素的,于是只能

上官网瞅瞅看能否揪到官网的小辫子。上网搜了攻略,果不其然,有人已经公布了官网的bug,毫无疑问,用js注入方

式,伪造请求,利用了官网的过滤漏洞。so,结果,give me five。

于是乎,想到了我现在正在做的系统,我的系统到底能不能顶住js注入呢,于是,我试了,用自己的矛攻自己的盾,

于是,give me five,注入成功了,no,don't give me five。不知该高兴还是该伤悲。注入的具体方式我就不能详细说

了,下面把js注入的原理剖析下,再把防范js注入的方法给出来,以飨读者,自己也算做个笔记。

什么是javascript注入攻击?

每当接受用户输入的内容并重新显示这些内容时,网站就很容易遭受 JavaScript 注入攻击。让我们研究一个容易遭受 JavaScript 注入攻击的具体应用程序。假设已经创建了一个客户反馈网站。客户可以访问网站并输入对产品的反馈信息。当客户提交反馈时,反馈信息重新显示在反馈页面上。
客户反馈网站是一个简单的网站。不幸的是,此网站容易遭受 JavaScript 注入攻击。
假设正在将以下文本输入到客户反馈表单中:

<script>alert(“Attack!”)</script>

此文本表示显示警告消息框的 JavaScript 脚本。在某人将此脚本提交到客户反馈表单后,消息Attack! 会在将来任何人访问客户反馈网站时显示。

这只是一个简单的小例子,或许你会认为这种攻击根本无伤大雅嘛,但如果这个消息被注入了一个数据表,而网站的公共页面会请求这个数据表里的内容,那么不幸的是,任何人访问这个公共页面都会弹出一个框,让人一看就感觉这个网站好粗糙,不安全。

那么,还有更不幸的,如果有人利用你的js注入漏洞,不是注入的这么一行简单的代码,而是要执行一个跨站脚本,发送一个请求,就可以将你网站甚至数据表里的数据(包括一些用户信息)发送到远程服务器上了,例 如,黑客可以使用 JavaScript 注入攻击窃取来自其他用户浏览器的 Cookies 值。如果将敏感信息(如密码、信用卡帐号或社会保险号码)保存在浏览器 Cookies 中,那么黑客可以使用 JavaScript 注入攻击窃取这些信息。或者,如果用户将敏感信息输入到页面的表单字段中,而页面受到 JavaScript 攻击的危害,那么黑客可以使用注入的 JavaScript 获取表单数据并将其发送到另一个网站。

解决办法

方法一

阻止 JavaScript 注入攻击的一种简单方法是重新在视图中显示数据时,用 HTML 编码任何网站用户输入的数据 
如:<%=Html.Encode(feedback.Message)%> 
使用 HTML 编码一个字符串的含意是什么呢?使用 HTML 编码字符串时,危险字符如 < 和 > 被替换为 HTML 实体,如 &lt; 和 &gt;。所以,当使用 HTML 编码字符串 <script>alert("Boo!")</script> 时,它将转换为 &lt;script&gt;alert("Attack!")&lt;/script&gt;。浏览器在解析编码的字符串时不再执行 JavaScript 脚本。而是显示无害的页面。

方法二

除了在视图中显示数据时使用 HTML 编码数据,还可以在将数据提交到数据库之前使用 HTML 编码数据。

StringEscapeUtils.escapeHtml("前台提交的数据");

通常,人们喜欢使用本教程中讨论的第一种方法,而不喜欢使用第二种方法。第二种方法的问题在于在数据库中最终会保留 HTML 编码的数据。换言之,数据库中的数据会包含奇怪的字符。这有什么坏处呢?如果需要用除网页以外的形式显示数据库数据,则将遇到问题。例如,不能轻易在 Windows Forms 应用程序中显示数据。

这里只简单记下,后面有机会会深入讨论跨站式攻击。

网站安全性之js注入相关推荐

  1. [原创]快钱99bill网站安全性测试漏洞之“跨站式脚本注入”

    [原创]快钱99bill网站安全性测试漏洞之"跨站式脚本注入" 网站安全性测试,尤为重要,电子支付网站更是如此,本文作者以实例介绍了 (1)"Yeepay网站安全测试漏洞 ...

  2. 我对于js注入的理解

    资料:http://blog.csdn.net/gisredevelopment/article/details/41778671 js注入就是在前端利用使用js的地方 在这其中注入你写的js代码 使 ...

  3. wordpress漏洞_WordPress站点恶意JS注入漏洞分析

    Sucuri的安全研究人员检测到攻击者利用Wordpress插件的漏洞进行攻击活动.该攻击活动中有超过2000个WordPress网站被黑,并重定向受害者到含有浏览器通知订阅.假的问卷调研和假的Ado ...

  4. getelementbyid获取不到js加载的元素_Selenium元素定位不到?JS注入轻松搞定!

    在使用Selenium做web自动化测试过程中,经常会遇到一些组件无法通过Selenium直接识别和处理,比如<input>标签组合的下拉框,比如日期控件.面对这些元素,我们可以引入JS注 ...

  5. java 防止js注入_在WebView中如何让JS与Java安全地互相调用

    在现在安卓应用原生开发中,为了追求开发的效率以及移植的便利性,使用WebView作为业务内容展示与交互的主要载体是个不错的折中方案.那么在 这种Hybrid(混合式) App中,难免就会遇到页面JS需 ...

  6. 改善网站安全性的5种方法

    Here you will know about some important website security tips. 在这里,您将了解一些重要的网站安全提示. Owning a website ...

  7. Web安全性测试—SQL注入

    Web安全性测试-SQL注入 因为要对网站安全性进行测试,所以,学习了一些sql注入的知识. 在网上看一些sql注入的东东,于是想到了对网站的输入框进行一些测试,本来是想在输入框中输入<scri ...

  8. 从团购网的漏洞看网站安全性问题 -- 安全 -- IT技术博客大学习 -- 共学习 共进步!...

    从团购网的漏洞看网站安全性问题 -- 安全 -- IT技术博客大学习 -- 共学习 共进步!: "" (Via.) 转载于:https://www.cnblogs.com/devo ...

  9. 拿到一个网站,怎么判断该网站是否存在sql注入漏洞?

    漏洞挖掘 漏洞利用 修复漏洞 sql注入漏洞.文件操作漏洞.xss.rce.逻辑漏洞 反序列化.... sql注入漏洞: 网站的数据库 脱裤 拖取网站数据库 数据库基础: 数据库基本结构:数据库 -- ...

  10. 电商平台如何提高网站安全性

    现在做电商的人越来越多,随之而来的安全问题也会越来越多,电商网站网络安全问题对于企业以及互联网安全是一个严峻的挑战. 一旦用户察觉到他们的交易不安全,他们会毫不犹豫地转去另一个网站,导致你的业务收入损 ...

最新文章

  1. python判断 t1 树是否有与 t2 树拓扑结构完全相同的子树
  2. 如果一个按钮被覆盖如何响应?
  3. JDBC访问数据库的基本程序
  4. 【开发环境】StarUML 工具 ( 下载软件 | StarUML 安装 | StarUML 创建工程 )
  5. 精通Android自定义View(十六)invalidate方法和requestLayout方法
  6. Python列表:list
  7. Java 设计模式之原型模式
  8. 教你如何处理Zabbix添加key总是not supported
  9. android下在屏幕适配小总结
  10. 我国低轨宽带通信卫星系统建设迈出了实质性的一步
  11. python异常捕获try except
  12. 聚类分析 matlab
  13. 哈希值 是什么?哈希值是什么东西啊?具体怎么识别?怎么用?
  14. 〖Python〗-- 面向对象编程、继承、组合、接口和抽象类
  15. 给ssh服务添加谷歌双重认证
  16. 儿子考上清华大学计算机系视频,儿子考上清华大学,家长忙发朋友圈,但收到的却不是祝福是心寒...
  17. java中取值保留小数点后两位的四种方法
  18. 微信H5公众号chooseImg上传图片
  19. SSM框架-MyBatis(一)
  20. java ebcdic编码转换_JAVA实现ASCII码与EBCDIC码的相互转换

热门文章

  1. 创建型模式Creational Patterns之单例模式singleton
  2. 2019年厦门大学计算机系夏令营经历
  3. 因果推断笔记—— 相关理论:Rubin Potential、Pearl、倾向性得分、与机器学习异同(二)
  4. [转] iOS 开发者应该知道的 ARM 结构(转自apple4us)
  5. 转载大牛对Microsoft的认识
  6. 系统自带的微软拼音输入法,在输入字母和数字的时候,间隔变大,输入中文没事的 问题。
  7. 网线交叉网线线序接法
  8. So Who's Counting? by Erin McHugh and Emily Luchetti
  9. 绵阳python培训_绵怎么组词
  10. iOS Charts