存档

文章标签 ‘javascript’

javascript htmlspecialchars

2009年9月25日 6 条评论

记录:

<script>
   function htmlspecialchars(string){
     var data = [];
     for(var i = 0 ;i <string.length;i++) {
       data.push( "&#"+string.charCodeAt(i)+";");
     }
  return data.join("");
   }
   document.write(htmlspecialchars("@{}<script>javascript alert<\/script>"));
</script>
<script>
function filter (str) {
  str = str.replace(/&/g, '&amp;');
  str = str.replace(/</g, '&lt;');
  str = str.replace(/>/g, '&gt;');
  str = str.replace(/'/g, '&acute;');
  str = str.replace(/"/g, '&quot;');
  str = str.replace(/\|/g, '&brvbar;');
  return str;
}
alert(filter("url"))
</script>
分类: 编程地带 标签: ,

jvascript字节流加密

2009年8月5日 1 条评论

我们先看如下加密函数:

function dehydrate(s) {<br />  var r = new Array();<br />  for (var i=0; i < s.length ; i++)<br />  {<br />    for (var j=6; j >= 0 ; j-- )<br />    {<br />      if (s.charCodeAt(i) & (Math.pow(2,j)) )<br />      {<br />        r.push(&#039; &#039;);<br />      } else {<br />        r.push(&#039;&#92;t&#039;);<br />      }<br />    }<br />  }<br />  r.push(&#039;&#92;n&#039;);<br />  return r.join(&#039;&#039;);<br />}

将一个包含任意字符的字符串转换为一个只包含空白字符的字符串,而这些空白字符实际上表示了原字符串中对应字符的字节流。一个空格表示1,一个制表符(Tab)表示0,而换行符则表示字节流的结束。例如:a = 空格 空格 制表 制表 制表 制表 空格开头 = 110001 = 97 .我们对一段网马进行加密后变成如下代码:

//startevil<br />                        <br />                    <br />//endevil

请注意,注释的中间关非空白,而是加密后的代码。我们将其代码放入网页中,然后使用解密函数进行解密: 阅读全文…

几个document集合的利用

2009年3月31日 没有评论
获取页面所有链接<br />javascript:var h="";for ( i = 0; i< document.links.length; i++ ) h+=document.links(i).href+"<br />";x=window.open("about");x.document.write(h);<br /><br />获取页面所有框架<br />javascript:var h="";for ( i = 0; i< document.links.length; i++ ) h+=document.frames(i).name+"<br />";x=window.open("about");x.document.write(h);<br /><br />获取页面所有图片地址<br />javascript:var h="";for ( i = 0; i< document.images.length; i++ ) h+=document.images(i).src+"<br />"+"<img src=&#92;&#039;"+document.images(i).src+"&#92;&#039;/>"+"<br />";x=window.open("about:blank");x.document.write(h);<br /><br />获取页面所有脚本地址<br />javascript:var h="";for ( i = 0; i< document.scripts.length; i++ ) h+=document.scripts(i).src+"<br />";x=window.open("about");x.document.write(h);

当然,还有其他一些集合和更多的集合属性,有更大的发展空间。有时候可以做些对页面进行扫描,收集,测试等操作,这些用处就大了。比如:xss、csrf等。。。

分类: V.B.T 标签:

Firefox和IE中javascript变量的不同

2009年3月19日 3 条评论

将以下代码保存html,放在Firefox访问:

<script>var location='' </script>

正题:
上面的脚本是不是造成页面一直刷新,而放在IE中却无事。那么好,我建立如下html:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>1111111</title>
<script>
var location='http://microsoft.com'
</script>
</head>
<body>
<iframe src="2.html" name="searchframe" id="searchframe" >
</body>
</html>

在Firefox 下访问,页面会跳转到 http://microsoft.com。
在IE 下访问,就会包含我的2.html,显示出来,不会跳转。
根据DHTML手册中说:
location 对象的默认属性就是 location.href。例如,设置 location=’http://microsoft.com’ 的结果就等于设置 location.href=’http://microsoft.com’。

当设置此列出的任何属性后,浏览器都将立即前往指定 URL。

此例脚本中,我们只是定义了一个 location 变量,将其赋值,而FF不单将他赋值了,而且还将他执行了,这仅仅是一个变量。但是因为我们定义的变量名字特殊,不太符合变量的要求,不应该将“关键字” 定义成变量名。而对于 IE 来说,他却没有执行,只做了一个简单的赋值操作。
有些时候必须注意这些,就像今天,有人将其赋值为空,他觉得是初始化,但是这样,在FF中执行,就会成为一个“死循环”!

分类: 编程地带 标签:

JavaScript程序编码规范 中文版

2008年1月24日 没有评论

来源:PHP5研究室

前言

Any violation to this guide is allowed if it enhances readability.

所有的代码都要变成可供他人容易阅读的。

软件的长期价值直接源于其编码质量。在它的整个生命周期里,一个程序可能会被许多人阅读或修改。如果一个程序可以清晰的展现出它的结构和特征,那就能减少在以后对其进行修改时出错的可能性。

编程规范可以帮助程序员们增加程序的健壮性。所有的 JavaScript 代码都是暴露给公众的。所以我们更应该保证其质量。保持整洁很重要。

JavaScript文件

JavaScript 程序应独立保存在后缀名为 .js 的文件中。 阅读全文…

分类: 系统概念 标签: