• CSS不可缺少的技巧

    香水坏坏 发表于2008-4-3 [CSS/UI]
    QUOTE:
    CSS is important. And it is being used more and more often. Cascading Style Sheets offer many advantages you don’t have in table-layouts - and first of all a strict separation between layout, or design of the page, and the information, presented on the page. Thus the design of pages can be easily changed, just replacing a css-file with another one. Isn’t it great? Well, actualy, it is.


    CSS是重要的,它正在越来越广泛的被运用。层叠样式表拥有很多表格布局所没有的优势,首先从布局或者页面的设计与出现在页面中的信息中作严格的分离,从而让页面的设计能够很容易被改变,仅用一个CSS文件更换另一个。难道它不够强大吗?恩,是的,其实它很强大。

    (More...)
    Hits: 187  Feedback: 0  Trackback  Permalink: http://www.aspstat.com/135
  • CSS打造网页Tabs

    香水坏坏 发表于2008-4-3 [CSS/UI]
    Hits: 161  Feedback: 0  Trackback  Permalink: http://www.aspstat.com/134
  • 坏坏谈位运算

    香水坏坏 发表于2008-3-10 [ASP.NET]

    & 按位与:
    按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

    这个比较好理解,打个比方A,B都拥有某样东西的C(这里是1,你可以把他当成 ¥¥¥)的时候,当A和B某天走到一起的时候,一看大家都有啊,不错,继续保留(PS:一同富裕)
    如果A看到B或者B看到A任意一方没有C,他们其中一个就开始讲义气了就把东西丢了,(PS:要穷一起穷,傻。。。)
    当A和B都是穷光蛋的时候,没办法大家都是穷人

    (More...)
    Hits: 325  Feedback: 2  Trackback  Permalink: http://www.aspstat.com/133
  • 代码:asp.net防止XSS攻击

    香水坏坏 发表于2008-3-10 [ASP.NET]
    C#代码
    1. /// <summary>   
    2.     /// 过滤xss攻击脚本   
    3.     /// </summary>   
    4.     /// <param name="input">传入字符串</param>   
    5.     /// <returns>过滤后的字符串</returns>   
    6.     public string FilterXSS(string html)   
    7.     {   
    8.         if (string.IsNullOrEmpty(html)) return string.Empty;   
    9.   
    10.         // CR(0a) ,LF(0b) ,TAB(9) 除外,过滤掉所有的不打印出来字符.    
    11.         // 目的防止这样形式的入侵 <java\0script>   
    12.         // 注意:\n, \r,  \t 可能需要单独处理,因为可能会要用到   
    13.         string ret = System.Text.RegularExpressions.Regex.Replace(   
    14.             html, "([\x00-\x08][\x0b-\x0c][\x0e-\x20])"string.Empty);   
    15.   
    16.         //替换所有可能的16进制构建的恶意代码   
    17.         //<IMG SRC=&#X40&#X61&#X76&#X61&#X73&#X63&#X72&#X69&#X70&#X74&#X3A&#X61&_#X6C&#X65&#X72&#X74&#X28&#X27&#X58&#X53&#X53&#X27&#X29>   
    18.         string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()~`;:?+/={}[]-_|'\"\\";  
    19.         for (int i = 0; i < chars.Length; i++)  
    20.         {  
    21.             ret = System.Text.RegularExpressions.Regex.Replace(ret, string.Concat("(&#[x|X]0{0,}", Convert.ToString((int)chars[i], 16).ToLower(), ";?)"),  
    22.                 chars[i].ToString(), System.Text.RegularExpressions.RegexOptions.IgnoreCase);              
    23.         }  
    24.  
    25.         //过滤\t, \n, \r构建的恶意代码  
    26.         string[] keywords = {"javascript", "vbscript", "expression", "applet", "meta", "xml", "blink", "link", "style", "script", "embed", "object", "iframe", "frame", "frameset", "ilayer", "layer", "bgsound", "title", "base"  
    27.         ,"onabort", "onactivate", "onafterprint", "onafterupdate", "onbeforeactivate", "onbeforecopy", "onbeforecut", "onbeforedeactivate", "onbeforeeditfocus", "onbeforepaste", "onbeforeprint", "onbeforeunload", "onbeforeupdate", "onblur", "onbounce", "oncellchange", "onchange", "onclick", "oncontextmenu", "oncontrolselect", "oncopy", "oncut", "ondataavailable", "ondatasetchanged", "ondatasetcomplete", "ondblclick", "ondeactivate", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "onerror", "onerrorupdate", "onfilterchange", "onfinish", "onfocus", "onfocusin", "onfocusout", "onhelp", "onkeydown", "onkeypress", "onkeyup", "onlayoutcomplete", "onload", "onlosecapture", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmousewheel", "onmove", "onmoveend", "onmovestart", "onpaste", "onpropertychange", "onreadystatechange", "onreset", "onresize", "onresizeend", "onresizestart", "onrowenter", "onrowexit", "onrowsdelete", "onrowsinserted", "onscroll", "onselect", "onselectionchange", "onselectstart", "onstart", "onstop", "onsubmit", "onunload"};  
    28.  
    29.         bool found = true;  
    30.         while (found)  
    31.         {  
    32.             var retBefore = ret;  
    33.             for (int i = 0; i < keywords.Length; i++)  
    34.             {  
    35.                 string pattern = "/";  
    36.                 for (int j = 0; j < keywords[i].Length; j++)  
    37.                 {  
    38.                     if (j > 0)  
    39.                         pattern = string.Concat(pattern, '(', "(&#[x|X]0{0,8}([9][a][b]);?)?", "|(&#0{0,8}([9][10][13]);?)?",  
    40.                             ")?");  
    41.                     pattern = string.Concat(pattern, keywords[i][j]);  
    42.                 }  
    43.                 string replacement = string.Concat(keywords[i].Substring(0, 2), "<x>", keywords[i].Substring(2));   
    44.                 ret = System.Text.RegularExpressions.Regex.Replace(ret, pattern, replacement, System.Text.RegularExpressions.RegexOptions.IgnoreCase);   
    45.                 if (ret == retBefore)   
    46.                     found = false;   
    47.             }   
    48.   
    49.         }   
    50.   
    51.         return ret;   
    52.     }  

     

    随着攻击漏洞的发现,此API可能还不尽完善,大家有什么想法和意见都可以评论一起交流 呵呵

    Hits: 338  Feedback: 1  标签:脚本安全  Trackback  Permalink: http://www.aspstat.com/132
  • 图片格式

    香水坏坏 发表于2008-3-6 [specification]

    一、BMP图像文件格式

    BMP是一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BblP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。

    (More...)
    Hits: 1451  Feedback: 1  Trackback  Permalink: http://www.aspstat.com/131
  • Silverlight 2 Beta 1 for downloading now

    香水坏坏 发表于2008-3-6 [silverlight]

    Microsoft Silverlight Tools Beta 1 for Visual Studio 2008 (contains SDK, runtime libraries and VS2008 add-on)
    http://www.microsoft.com/downloads/details.aspx?FamilyID=e0bae58e-9c0b-4090-a1db-f134d9f095fd&DisplayLang=en(适合开发人员下载)

    (More...)
    Hits: 274  Feedback: 0  标签:sl2  Trackback  Permalink: http://www.aspstat.com/130
  • Web2.0 用户互动的1%规律

    香水坏坏 发表于2008-3-1 [WEB20]

    什么是1%规律?

    这是一个根据统计得出的大致规律:100个在线的群体中,有一个人创建内容,10个人参加互动(讨论或提出建议),剩下的89个人只是在旁观。

    在著名视频点播网站YouTube上就可以看到这个规律,这个网站只花了18个月的时间就占据了60%的在线视频点播市场。

    (More...)
    Hits: 298  Feedback: 0  标签:思考  Trackback  Permalink: http://www.aspstat.com/129
  • [经文收藏]深入浅出Win32多线程程序设计之基本概念

    香水坏坏 发表于2008-3-1 [ASP.NET]
    一.深入浅出Win32多线程程序设计之基本概念[转]
    引言

      从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。

      理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win32多线程程序设计后,理解和学习其它操作系统的多任务控制也非常容易。许多程序员从来没有学习过嵌入式系统领域著名的操作系统VxWorks,但是立马就能在上面做开发,大概要归功于平时在Win32多线程上下的功夫。

      因此,学习Win32多线程不仅对理解Win32本身有重要意义,而且对学习和领会其它操作系统也有触类旁通的作用。

      进程与线程

      先阐述一下进程和线程的概念和区别,这是一个许多大学老师也讲不清楚的问题。

      进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反映了一个程序在一定的数据集上运行的全部动态过程。

      线程(Thread)是进程的一个实体,是CPU调度和分派的基本单位。线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

      线程和进程的关系是:线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。线程可与属于同一进程的其它线程共享进程所拥有的全部资源,但是其本身基本上不拥有系统资源,只拥有一点在运行中必不可少的信息(如程序计数器、一组寄存器和栈)。

      根据进程与线程的设置,操作系统大致分为如下类型:
    (More...)
    Hits: 327  Feedback: 0  标签:多线程  Trackback  Permalink: http://www.aspstat.com/128
  • 性能:同步页面与异步页面流程图

    香水坏坏 发表于2008-2-29 [ASP.NET]

    Hits: 537  Feedback: 0  标签:多线程 异步  Trackback  Permalink: http://www.aspstat.com/127
  • WIN2003下IIS(WEB服务器)的负载均衡

    香水坏坏 发表于2008-2-27 [Server Tech]

    在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来解决问题。

    那么,有没有一个办法或者技术来解决此类问题呢?使用Windows 2000或Windows Server 2003中的网络负载平衡群集就可以(本文将介绍Windows Server 2003中的网络负载平衡技术的实现方法)。

    (More...)
    Hits: 521  Feedback: 0  Trackback  Permalink: http://www.aspstat.com/126