JS注入攻击
来源:互联网 发布:php培训班多少钱 编辑:程序博客网 时间:2024/05/24 20:08
Javascript 注入攻击?
什么是javascript注入攻击呢?其实比较其他的攻击,javascript可能相对简单一些。
每当接受用户输入的内容并重新显示这些内容的时候,网站就容易受到这种攻击。
用asp.net mvc来个简单的例子:
- [ValidateInput(false)]
- public class HomeController : Controller
- {
- public string Index(string genre)
- {
- //将genre参数原封不动的返回
- string result = genre;
- return result;
- }
- public ActionResult About()
- {
- return View();
- }
- }
对于这个index方法,不需要call view层面的代码,直接会在页面上将genre这个参数以字符串的方式显示出来。
如果对于正常的url 比如http://localhost:1796/home/index?genre=abc ,那么页面就会显示abc
但是javascript攻击的话,比如url是http://localhost:1796/home/index?genre=<script>window.location='http://baidu.com/'</script>
这里还分两种情况
1,Chrome浏览器下的情况:
表面现象是什么都没有返回,但是打开调试器,会发现有一个页面错误
Refused to execute a JavaScript script. Source code of script found within request.
2. 来看看IE的情况:
尼玛,直接就跳转到baidu页面了, IE,你果然牛X。
其他的浏览器没有实验。
个人判断chrome浏览器的行为是这样的,
1.从server端返回的结果是<script>window.location='http://baidu.com/'</script>
2.浏览器说,我cao,这是一段js代码,我是执行还是不执行呢?
3.不着急,先看看刚才的request是什么, http://localhost:1796/home/index?genre=<script>window.location='http://baidu.com/'</script>
4.chrome浏览器:“尼玛,这是典型的javascript攻击啊,因为匹配reuqest和返回的js代码是一样的”
5.妈的,老子拒绝执行!
这样来意淫一下chrome的执行,觉得chrome还是很聪明的。
PS:实际上asp.net mvc框架还是比较优秀的。
细心的你可能会发现controller的代码里面多了一行[ValidateInput(false)]
目的是屏蔽mvc的校验querystring这块,如果url里面包含<script>这样的东西,http请求就不会达到urlRoute层。
而是被System.Web.HttpRequest率先截获,抛出一个异常
A potentially dangerous Request.QueryString value was detected from the client (genre="<script>
- JS注入攻击
- js防SQL注入式攻击
- SQL注入与JS攻击防范
- 【网站安全】简单的Js脚本攻击sql注入攻击
- sql防注入防范sql注入式攻击js版本
- 注入攻击
- 注入攻击
- 注入攻击
- 注入攻击--SQL注入
- js+asp版的防范SQL注入式攻击代码
- js版的防范SQL注入式攻击代码
- js防止注入式攻击的脚本收藏
- asp.net防SQL/JS注入攻击:过滤标记
- 防止javascript 注入攻击 js过滤特殊字符
- Server Side JavaScript Code Injection Attack服务端js注入攻击
- 图片攻击-BMP图片中注入恶意JS代码
- node.js sql 注入攻击防御方法 (sql Injection)
- 数据库注入攻击和防止注入攻击
- 达内课程-HashMap
- 如何让win7桌面显示两个并列窗口边看视频边聊天
- windows下 mongo副本集配置 一主一从一仲裁
- JAVA几种常见的编码格式(转)
- 冒泡排序
- JS注入攻击
- 循环体内判断是否拖慢速度
- jdk8新特性汇总
- HDU
- [51nod1323]完美平方
- 程序员怎么获取股票实时数据,并进行技术指标分析呢?
- Java基础:深入理解Java的接口和抽象类
- 前端模块化,AMD与CMD的区别
- DPDK(10):报文处理中的指令预取(prefetcht0)