不要小看注释掉的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里。
代码审核是个细活,任何疏漏之处都值得注意。

(0)

相关推荐

  • 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

随机推荐