不要小看注释掉的JS 引起的安全问题
一个是header插入问题。
另一个是\r\n问题。
我们来看这样一段代码:
1. test
2. <script>
3. //alert('<%=request.getParameter("username")%>');
4. </script>
大家都能看到,这好像有个漏洞,但是已经被补上了,注释掉了。
那既然注释掉了,就不该有问题了么?
不是的。
再看这个URL
http://localhost/index.jsp?username=kxlzx%0d%0a%0d%0aalert('kxlzx
很无奈吧?
生成了如下代码:
test
<script>
//alert('kxlzx
alert('kxlzx ');
</script>
注释掉的JS,也执行了。
所以,不要把没用的代码,注释掉的JS等,扔到html里。
代码审核是个细活,任何疏漏之处都值得注意。
相关推荐
-
javascript三种代码注释方法
javascript语言里面的注释方法有三种. 第一种是多行注释"/**/",一般js文件开头,介绍作者,函数等信息. 复制代码 代码如下: /* *author:xxx *day:2008-08-10 */ 第二种注释方法是最常见的"//",在程序间随处可见,只能注释单行. 复制代码 代码如下: //这是一行注释,只能注释单行. //另一行注释 第三种注释不是很常见,会和html内的注释混淆,不推荐使用. 复制代码 代码如下: <!-这是一行注释,只能注释单
-
javascript中的注释使用与注意事项小结
在javascript中有两种注释方式: 单行注释: // 多行注释: /* */ 注释主要是为了让我们编写的程序更具有可读性,也便于他人来进行二次修改 看下面的例子,我们给正则表达式用/* */注释了,运行时发布报了一个语法错误 复制代码 代码如下: /* var rm_a = /a*/.match(s); */ 所以说块级注释是不安全的,如果在我们的代码中犯了这样的错误,很难去排查 所以最好是用单选注释// 取代多行注释 /* */ JavaScript 注释
-
用javascript动态注释掉HTML代码
用javascript动态注释掉HTML代码 - 51windows.Net 1 2 3 4 alert("34") 5 6 alert("56") 7 8 你没有看到34单元格吧,因为他用javascript注释掉了,怎么做的?看源文件!源文件怎么看?点右键,选择"查看源文件(V)"... 注意:动态注释的html中不能再有html注释代码"<!-- -->",<script>与</ scrip
-
JScript中的条件注释详解
JScript 可以使用以下语句根据条件编译变量的值控制脚本的编译.既可以使用 JScript 提供的变量,也可以使用 @set 指令或 /define 命令行选项定义自己的变量. @cc_on 激活条件编译支持. @if 根据表达式的值,有条件地执行一组语句. @set 创建使用条件编译语句的变量. @cc_on.@if 或 @set 语句激活条件编译.条件编译的一些典型用途包括在 JScript 中使用新功能.将调试支持嵌入到一个脚本中以及跟踪代码执行. 当编写由 W
-
不要小看注释掉的JS 引起的安全问题
一个是header插入问题. 另一个是\r\n问题. 我们来看这样一段代码: 1. test 2. <script> 3. //alert('<%=request.getParameter("username")%>'); 4. </script> 大家都能看到,这好像有个漏洞,但是已经被补上了,注释掉了. 那既然注释掉了,就不该有问题了么? 不是的. 再看这个URL http://localhost/index.jsp?username=kxlzx
-
注释的艺术——JS里直接写HTML,无需转义
利用JS的多行注释配合函数的直接量可以做到JS里直接写HTML代码,除 script 的结束标签之外,无需任何的转义符和续行符. //Code By Dron //Ucren.com document.write((function (){/* Hello Word! alert("Hello Word!"); */}).toString().replace(/^.+?\*|\\(?=\/)|\*.+?$/gi, "")); [Ctrl+A 全选 注:如需引入外部J
-
struts json 类型异常返回到js弹框问题解决办法
struts json 类型异常返回到js弹框问题解决办法 当struts 框架配置了异常时 例如: <package name="sysCnn" namespace="/" extends="json-default"> <global-results> <result name="error">/WEB-INF/pages/error.jsp</result> <res
-
基础的WordPress插件制作教程
插件制作准备工作 首先我们在\wp-content\plugins目录下添加一个文件夹叫做"My-Mood",在文件夹中添加一个叫做index.php的主文件,这个是插件的主文件,文件的开始需要一些命名的格式:如下面的代码 <!--?php <br ?--> /* Plugin Name: My Mood Plugin URI: http://www.aips.me Description: 一个心情发布插件 Version: 1.0 Author: 周良博客 Aut
-
解决vue中修改export default中脚本报一大堆错的问题
在写vue代码的时候遇到了一修改.vue文件中export default下脚本的时候总是报一堆莫名其妙的错误的问题: 出错原因: 在构建项目的时候Use ESLint to lint your code? (Y/n)选择了y,规范了js代码 解决途径: 在webpack.base.conf.js里面删掉/注释掉: { test: /\.(js|vue)$/, loader: 'eslint-loader', enforce: 'pre', include: [resolve('src'), r
-
对google个性主页的拖拽效果的js的完整注释[转]
作者:Tin出处:http://www.blogjava.net/iamtin/archive/2006/04/27/43668.html代码:http://www.blogjava.net/Files/iamtin/google_drag.rar 复制代码 代码如下: // 工具类,使用Util的命名空间,方便管理 var Util = new Object(); // 获取http header里面的UserAgent,浏览器信息 Util.getUserAgent = n
-
vue3中vue.config.js配置及注释详解
目录 报错 打包时提示文件过大,配置解决方案,如下 总结 报错 asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).This can impact web performance.entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit
-
JS类的封装及实现代码
1. 定义js类 js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 复制代码 代码如下: function ShapeBase() { this.show = function() { alert("ShapeBase show"); }; this.init = function(){ alert("ShapeBase init&q
-
require.js 加载 vue组件 r.js 合并压缩的实例
准备: vue.js 原本是学习vue组件 require.js 然后想到用require 加载 r.js 文件太多 合并 文件目录 忽略部分文件及文件夹 一.先说vue 组件 先引入vue 再引入vue组件 Vue.extend({}) 定义组件 template data methods Vue.component(),注册组件的标签,标签在html中是一个挂载点 new Vue() 进行实例化 index.html // css引入 略 <div id="header"&g
随机推荐
- JS弹出窗口代码大全(详细整理)
- Perl遍历目录和使用Linux命令分析日志的代码实例分享
- JavaScript+Java实现HTML页面转为PDF文件保存的方法
- php后台程序与Javascript的两种交互方式
- php实现excel中rank函数功能的方法
- Python 爬虫学习笔记之多线程爬虫
- 找到一种不错的从SQLServer转成Mysql数据库的方法
- PHP中Cookie的使用详解(简单易懂)
- ThinkPHP 3.2 版本升级了哪些内容
- ajax翻页效果模仿yii框架自己写的
- 数据库查询中遭遇特殊字符导致问题的解决方法
- 在PostgreSQL的基础上创建一个MongoDB的副本的教程
- Python中字典的setdefault()方法教程
- java登录验证码实现代码
- 基于jQuery的倒计时插件代码
- JS实现的用来对比两个用指定分隔符分割的字符串是否相同
- 如何减少浏览器的reflow和repaint
- java正则表达式简单使用和网页爬虫的制作代码
- ASP.NET 2.0中的数据操作之七:使用DropDownList过滤的主/从报表
- C++三色球问题描述与算法分析