JSF的今天…

Java, Microsoft, Web January 6th, 2008

回顾一下Java Server Face, 果然JSF还依赖着JSP tag lib这个让人厌烦的东西。 JSP Tag是个初一看特有用,但后来发现几乎没用还很烦人的东西,尤其Java领域JSP tag严重缺乏IDE的支持,一旦JSP中重度依赖Tags使得view的开发和调试非常麻烦。

From: http://www.javaeye.com/topic/66897

jsp tag的致命缺点有三:
1、极难扩展
在页面扩展可重用片断,必须自己用Java编写自定义Tag。而这个工作对于模板语言例如freemarker来说是很简单的事情,即使可以自定义tag,也会造成tag泛滥,项目难以维护。
2、不能脱离Servlet容器存在
必须紧密藕合Servlet容器,造成View根本无法测试,无法扩展
3、无法动态切换View
对于类似博客网站是致命缺点,博客切换模板,要求根据程序的状态,动态切换整套不同的View,JSP Tag完全做不到这一点。
而这些功能对于类似freemarker,velocity模板语言来说,是很简单的事情。web编程发展到今天,JSP技术已经是一个极其落伍的技术了。JSF可以自己创造自己的模板技术,也可以利用现有的模板语言,但是他唯独死抱着JSP Tag不放,所以JSF没有前途。

上述观点我非常支持,不过上面的link中有众多高手支持或者反对的声音,很值得阅读。

我自己已经抛弃了Java投入ASP.NET阵营了,呵呵。 其实ASP.NET有相当多比Java更先进的理念和实现,只是因为是Microsoft的东西,而且需要绑定在Microsoft平台上,导致一些人不懈去了解,一些人没法去迁移。我过去也是根本没有去仔细看asp.net而只是靠一些成见而直接否决了asp.net的可能性,现在看起来是非常不对的。

翻阅老贴的感受:Tapestry会成为Web表示层框架的主流解决方案吗?

Java, Web January 6th, 2008

翻看了“Tapestry会成为Web表示层框架的主流解决方案吗?”一文。 我自己过去也是对Java世界的各种web framework不胜其烦,框架实在太多,一个个都是重复发明的轮子,但真正理想的不多,其中我最欣赏的是Tapestry.

如今这些年过去了,我也从Java为主转投入了ASP.NET阵营了,最近抽空回顾一下最近Java的发展,又重新来看了看一些旧文。

的确,到现在为止,纯粹从概念角度来看,ASP.NET是最优秀的web framework, 是真正的OO解决方案,ASP.NET的code behind, view state, user control都是非常先进的理念(先进的理念未必是最合理的,比如view state这个东西就有利有弊,另外MVP的概念没有MVC那么清晰 )。Tapestry可以说是Java web framwork中最像 asp.net的东西。

Tapestry自身的发展也让人有些失望,毕竟是个人的作品,其继承性可延续性,升级速度等方面和商业化的产品无法比。看到这篇贴子今年有深度使用tapestry的朋友泼的冷水

网上说了不少tapestry的好话,我来泼点冷水吧。我们公司从2004年就开始研发tapestry系统,并用于大型系统,而且自己封装了一系列的组件。经过封装后的组件,也确实能达到减少开发代码的效果。但带来的问题更严重,一确实tapestry相对资料很少,尤其是中文的更少(虽然现在已有书籍出版,但都是今年中期才出来的),为研究学习tapestry带来了不少的困难。这样的话企业人员一旦流动,后面接手的人相当困难,适应期很长。 二经过重型封装的tapestry组件运行效率确实有问题。恐怕很少有人真正知道这点。当tapestry在运行的时候,是先render页面,再 render组件的。当系统运行慢的时候,你将可以清楚地看到这一过程。所以当系统刚刚render出页面,还没有render出组件的时候,你将看到不完整的页面,要再等一会,你才能看到render完整的页面(想必各位都没有见过这个奇观)。并且在页面没有render完全之前,你却可以点击页面上那些基本组件了,然后马上就会报错。所以我们不得不叫客户慢一点,要等页面完全出来以后才能继续操作,这种用户体验真是太差了。三就如hantsy所说,tapestry会在升级中迷失自己。我们公司在研发tapestry的时候,用的是3.0版本,可是当4.0版本出来的时候,发现已经大变样,如果我们要升级,将要付出沉重的代价。所以只能不升级了。但是时代在发展,当ajax这些新技术不断地抢我们的眼球的时候,我们却毫无办法。因为tapestry要4.02版本才支持ajax。当tapestry5快发布的时候,听说又经过了大幅的改造。哦,这个时候我们已经不关心了,管它怎么升级呢。也许我们也有使用tapestry不当的地方,但所谓实践才有发言权,我不希望更多的同行走我们走过的路,选择tapestry,要慎重!慎重!

大容量硬盘的使用方法

系统, 转载 August 6th, 2007

买了个大容量(160G)的硬盘和一个支持直接拷贝存储卡的硬盘盒,结果发现这块新硬盘插上去系统却只认为它有128G. :(

网上收集一些资料看看真么解决。 我的主板是Intel 865,BIOS版本是RC86510A.86A.P14, 不知道是否需要升级BIOS.

来源:http://userclub.advantech.com.cn/bbs/ShowPost.asp?ThreadID=382

随着硬盘价格的一降再降,160GB等大硬盘成了很多人的选购对象。但137GB以上的硬盘在使用中存在一定的限制。不解决这种限制的话,会造成无法识别或不能完全使用其容量。137GB容量限制是指一些较早推出的主板不支持48bit LBA寻址模式,造成系统无法使用137GB以上的硬盘存储空间。要正常使用其全部容量,需满足以下要求:

1、主板芯片组和BIOS支持大于137GB的硬盘。

如果不清楚自己的主板是否支持48位寻址,可以下载48bin LBA test program来检验一下。这个小软件网上提供下载的地方很多,可以搜索到的。使用之前先挂接上一块容量超过137GB的大硬盘,在DOS下运行该软件,程序会自动检测到系统中已连接ATAATAPI设备,并给出相应的提示信息。如果检测结果显示为“PASSED”,则说明主板BIOS支持48bit LBA寻址方式;假如显示为“FAILED”则表示不支持;如果显示为“UNDETERMINED”则说明测试程序也不能确定主板BIOS是否支持48bit LBA寻址方式。


目前VIA VT8233AVIA VT8235VIA VT8237SIS 961SIS 963等,以及Intel 810875系列的芯片组都可以支持超过137GB容量的硬盘。一般2002年以后发布的BIOS都可以支持。如果不支持,可以考虑通过刷新BIOS的方法解决,如果你的主板推出时间比较早,那么恐怕不会再有新的BIOS发布,那还有两种途径解决:一是购买Ultra ATA/133 PCI等硬盘适配卡了,如果系统BIOS不支持通过Ultra ATA/133 PCI适配卡引导系统,那只能把它当作从盘使用了;二是可以借助硬盘厂商发布的专用工具软件,例如希捷的DiscWizard Starter EditionMaxtorMaxBlastWestern DigitalEZ Drive,这三款软件都可以在主板BIOS不支持的情况下驱动大容量硬盘,它们会在主板BIOS启动之后、*作系统启动之前加载,这样就可以正确管理大容量硬盘。

2Windows的版本要支持大于137GB的硬盘。

不支持48位寻址的*作系统,如Win98/Me、未集成补丁包的Win2000/XP等,在安装相应的硬盘驱动程序后也可以支持大于137GB的硬盘,但在访问大于137GB的数据时有可能出现溢出的Bug,造成破坏。最常见的情况是,在写入大量数据(120GB以上)后就丢失了分区,或拷贝数据过程中失去响应,重启后报告该分区没有格式化等。
目前,以下系统完全支持大于137GB硬盘的全部容量:
windows 2000 Professional+SP4
windows 2000 Server+SP4
windows XP Home+SP1
windows XP professional+SP1
对于Intel芯片组来说,它提供的Intel Application Accelerator就对超过137GB的硬盘提供了支持,一定要安装。VIA芯片组要装最新的VIA 4 in 1驱动。

3、大于137GB的硬盘分区

windows 2000+SP4windows XP+SP1安装盘启动电脑,先分一个主分区,再在该分区上安装windows 2000+SP3windows XP+SP1系统,最后用系统自带的磁盘管理工具对余下的未分区部分进行分区;
把大硬盘挂到其它安装有windows 2000+SP4windows XP+SP1的电脑上作为从盘,用系统自带的磁盘管理工具进行分区;
WinMe自带的FDISK分区,然后安装win2000/XP,安装完毕马上升级到windows 2000 SP4windows XP SP1
为了保证分区表的稳定,目前来说,暂时不建议使用第三方分区软件。

下面是关于如何使用超过137GB的硬盘:
以前的28ATA规范将硬盘最大容量限制为65536×16×255×512131GB,按硬盘厂商的算法就是137GB,这个限制显然影响大于137GB硬盘用户的使用了。不过主板如果支持48LBA寻址就能支持137GB以上的硬盘,而大多数新主板都支持新规范。以下是部分支持这一规范的南桥芯片:Intel ICH/ICH2/ICH4/ICH5VIA VT8233A/8235及以后,SiS 961及以后等。采用这些南桥芯片的主板,只要刷新BIOS就可支持大容量硬盘。如果你不能确定你的主版是否支持48位寻址,最简单的方法就是使用“Intel 48-bit LBA Test Program”Intel出品的检测48LBA的测试程序),它可以检测主板BIOS是否支持48LBA寻址方式,从而确定你的主板BIOS是否支持137GB以上的硬盘。这里下载。48位的ATA新规范,支持容量高达144155188GB的硬盘,不过受目前32bit*作系统影响,暂时只能支持到2200GB

常见的*作系统,如 Windows 98 Windows Me Windows 2000Windows XP 等在默认情况下,没有启用48LBA支持,不支持37G以上的硬盘。按照微软的说法:同时满足下列要求才可以正确使用137GB以上的硬盘:必须具有48LBA兼容BIOS,必须具有一个容量超过137GB的硬盘,必须安装了 Windows XP Windows 2000。但是,实际使用中还是遇到不少的麻烦,如果使用*作系统不恰当或者没有正确安装专用补丁都有可能导致数据丢失,

正确使用137GB以上的硬盘需要3步:升级BIOS或设置CMOS启用SATA通道;巧妙分区避免不必要的麻烦;安装系统补丁确保数据安全。以下都是以希捷的 SATA160GB 的硬盘、865PE 主板为例。865PE 主板搭载Intel自家的ICH芯片从而集成对 Serial ATA 的支持,应该稳定性好。打开主板盒才发现第一个问题:没有SATA硬盘供电电源线!SATA硬盘接口不同于IDE硬盘。

主板厂商有可能只提供SATA硬盘数据线,而不提供SATA硬盘电源线。

  普通的P4电源没有SATA硬盘供电接头,用户只有自己想办法。方法一是购买提供SATA供电接头的电源,如磐石355电源,提供了5IDE供电接头、1SATA供电接头,兼容普通IDE硬盘和SATA硬盘。本人用变通的方法,购买一根转接线,一头接普通P4电源上,一头插入硬盘接口。提醒DIY在购买硬盘时别忘了捎根电源转接线。SATA硬盘对电源的供电要求比并行接口硬盘严格,购买了SATA硬盘的朋友,最好配一个功率足够大的电源,而且接硬盘的接口最好单独接,不要跟其他设备一起并接。避免出现硬盘读取数据很慢,甚至不认硬盘的情况。

第一步:设置CMOS启用SATA通道
  865的主版支持137GB以上的硬盘,不需要升级,但是并不是你立即可以使用SATA硬盘,BIOS默认只有IDE2个通道,需要在CMOS中启用SATA通道。进入On Chip Device,最下面是关于SATA的设置项,On-Chip Serial ATA支持4项设置
? 关闭(Disabled)
? 额外的加强的通道(Enhanced Mode)  只能使用在WINDOWS2000/XP系统上
? 传统第一通道(For Primary)     当使用第一通道时,第一通道不可以使用IDE硬盘装置
? 传统第二通道(For Secondary)    当使用第二通道时,第二通道不可以使用IDE硬盘装置

确保AGP/PCI频率在标准的66/33MHzSATA硬盘对AGP/PCI频率很敏感,如果AGP/PCI频率过高,就极有可能会出现不认硬盘的现象。保存设置,重新启动就可以看到主版正确显示了SATA硬盘参数,说明BIOS支持超过137GB的大容量硬盘。
第二步:巧妙分区避免不必要的麻烦
  我曾经在一个著名的IT论坛提这个问题,建议真不少:DMPQ还有FDISK。来试试:用 Windows 98 启动盘启动机器,进入DOS,先FDISK,问题出现了,容量不到55G,只好退出。用 Windows ME 的启动盘(版本是4.9.3000)FDISK能正确显示容量,看来可以分区。但是不想用FDISK,因为太慢了。另外,还发现一个有趣的现象:Format 命令无法正确显示大于 64GB 的分区或逻辑驱动器的大小。
  当您使用 Format.com 格式化大于 64GB字节( 68719476736 字节)的分区或逻辑驱动器时,Format.com 在格式化过程开始所报告的要格式化的硬盘大小不正确。但是,随着格式化过程的继续,整个硬盘会被格式化,在*作完成时,将会正确显示格式化后的大小。原因是Format.com 会在内部使用一些16位值来计算最初所显示的驱动器大小,当驱动器大小等于或大于 64GB 时,这些变量中有一些会溢出。例如,如果分区或逻辑 驱动器的大小为 70.3GB(75484122112 字节) Format 命令最初报告的驱动器大小就是 63 GB(6764579840 字节)。这只是显示方面的问题,也就是说,是表面问题,硬盘将被格式化为其完整大小。
  对于DM9.56,能正确识别硬盘容量,但是也不敢用。有一个网友用在本身就支持 137GB 以上大硬盘的主板上,后果是:那个被改的 160G 或者 250G 硬盘只能当成 137G 使用。血的教训,一个 160G 的就因此成了残废 137GB。不过不排除有人使用DM分区并正常使用,硬盘经销商也是这样推荐的。
  目前比较实际的方法是,用 Windows XP 光盘启动,然后根据提示先建立系统区,安装 XP 系统,剩下的空间暂时不管。进入 Windows XP,先装 Service Pack 1,然后用 Windows XP 的磁盘管理器进行分区,速度快,安全可靠。
以管理员或 Administrators 组的成员身份登录。单击开始,单击运行,键入 compmgmt.msc,然后单击确定,在控制台树中,单击磁盘管理。

1 若要在基本磁盘上创建新分区或逻辑驱动器,请按照下列步骤*作:
(1) 磁盘管理窗口中,完成下列步骤之一,然后继续执行第 2 步:
? 若要创建新分区,请右键单击要创建该分区的基本磁盘上未分配的空间,然后单击新建磁
盘分区。
? 若要在扩展磁盘分区中创建新的逻辑驱动器,请右键单击要创建逻辑驱动器的扩展磁盘分
区上的可用空间,然后单击新建逻辑驱动器。
(2) 新建磁盘分区向导中,单击下一步。
(3) 单击要创建的分区的类型(“主磁盘分区扩展磁盘分区逻辑驱动 ”) ,然后单击下一步。
(4) 分区大小(MB)”框中指定分区的大小,然后单击下一步。
(5) 决定是手动指派驱动器号、让系统自动枚举驱动器还是不为新分区或逻辑驱动 器指派 驱动器号,然后单击下一步。
(6) 通过使用下列步骤之一指定要使用的格式化选项:
? 如果您不想格式化该分区,请单击不要格式化这个磁盘分区,然后单击 下一步。
? 如果您想格式化该分区,请单击按下面的设置格式化这个磁盘分区,然 后在格式对话 框中完成以下步骤:
a.卷标框中为该卷键入一个名称。请注意,这是可选步骤。
b.文件系统框中单击要使用的文件系统。
  您可更改磁盘分配单元大小,然后指定是否执行快速格式化,或者指定是否在 NTFS 上启用文件和文件夹压缩。单击下一步。确认选定选项正确无误,然后单击完成。这就创 建了新分区或逻辑驱动器,它们出现在磁盘管理窗口中的相应基本磁 盘中。如果您在第 6 步中选择了格式化该卷,则现在启动格式化过程。
2、若要格式化分区、逻辑驱动器或基本卷,请按照下列步骤*作:
(1) 磁盘管理窗口中,右键单击要格式化(或重新格式化)的分区或逻辑驱动器,然后单击格式化。
(2) 在格式化对话框中,在卷标框中为该卷键入一个名称。请注意,这是可选步骤。
(3) 文件系统框中单击要使用的文件系统。如果您愿意的话,还可更改磁盘分配单元大小,指定是否执行快速格式化,或者指定是否在 NTFS 卷上启用文件和文件夹压缩。
(4) 单击确定。
(5) 当您被提示格式化卷时,请单击确定。将启动格式化过程。
3、若要查看分区或逻辑驱动器的属性,请按照下列步骤*作:
(1) 磁盘管理窗口中,右键单击所需的分区或逻辑驱动器,然后单击属性。
(2) 单击相应的选项卡以查看相应的属性。
4、若要删除分区或逻辑驱动器,请按照下列步骤*作:
(1) 磁盘管理窗口中,右键单击要删除的分区或逻辑驱动器,然后单击删除分区或 删除逻辑驱动器。
(2) 当您被提示删除分区或逻辑驱动器时,请单击是。该分区或逻辑驱动器即被删除。
  当您删除分区或逻辑驱动器时,该分区或逻辑驱动器上的所有数据将同分区或逻辑驱动器本身一起被删除;您不能删除系统分区、引导分区或包含活动的页面(交换)文件的分区 ;除非扩展磁盘分区为空,否则不能删除扩展磁盘分区。在删除扩展磁盘分区之前,必须删 除扩展磁盘分区中的所有逻鳌?br> 5 如果你的分区小于2G,即使你选择了FAT格式,系统在格式化的时候自动转成FAT32格式。
如果你的分区大于32G,系统将自动格式化为NTFS格式。
第三步:及时安装系统补丁,确保数据安全
  常见的*作系统,如Windows 98Windows MeWindows 2000Windows XP 等在默认情况下,没有启用48LBA支持。如果你的BIOS不支持48LAB寻址,请将*作系统安装在第一个分区,而且要小于 137GB
1、对于XP系统
(1) 首先安装Service Pack 1
  只有在安装了 Windows XP Home Edition Windows XP Professional Service Pack 1 (SP1) 之后才会启用48LBA支持。在没有安装SP1 Windows XP 中手动启用 48 LBA 支持可能会导致数据丢失。我的硬盘就是因为没有安装SP1补丁导致数据丢失。
(2) 其次修改注册表
  启动注册表编辑器”(Regedt32.exe) 在注册表中找到并单击下面的项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Atapi\Parameters\
在编辑菜单中,单击添加值,然后添加下列注册表值:

值名称:EnableBigLba
数据类型:REG_DWORD
值数据:0×1
退出注册表编辑器
  (3) 关于旧版本 Windows
  另外,如果磁盘分区中安装了不支持48LBA的旧版本 Windows(例如, Windows 2000 或更旧版本),而该分区以前是由可识别 48 位的*作系统(例如,Windows XP,它占用更多空间或超出当前137GB 的可寻址限制)创建的,则可能出现破坏数据的情况。如果在注册表中启用了48ATAPI支持,并且具有容量超过 137GB 的硬盘,但是没有48LBA兼容BIOS,则只有硬盘的前137GB 是可寻址的。不能使用硬盘的其余部分。
(4) 检查 Atapi.sys的版本
  有一个有趣的现象,即使打过SP1的补丁也要检查 Atapi.sys 的版本,因为只有5.1.2600.1135版本(或者对Windows XP 64-Bit Edition需要 5.1.2600.1152版本)才能完全支持48 LBA 。而5.1.2600.1135版本在推出SP1后推出的,这个文件是在331958这个补丁里。

为了你的数据安全建议及时更新的*作系统。
2、对于Windows 2000系统
  首先安装 Service Pack 3 ,虽然微软公司说安装 SP3 后就可以支持48LBA寻址,但是一再强调更新你的*作系统到最新的补丁。其次修改注册表,*作同上。

(climbmount):其实并不是系统不支持,是系统附带的分区工具不支持,如98fdisk只支持最大64G.只打补丁4还不行,还得手工改注册表。麻烦啊。用2003吧,呵呵呵。



找到一种方法:用2000盘起机,删掉所有分区,然后划出主分区装系统,其余的硬盘空间先不要管,装完系统装sp4XP sp1)然后修改注册表:

在注册表中找到并单击下面的项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Atapi\Parameters
在编辑菜单中,单击添加值,然后添加下列注册表值
值名称:EnableBigLba
数据类型:REG_DWORD
值数据:1
以上修改注册表示让系统打开48位寻址功能,打补丁后系统并没打开,这和主板bios是相对应的,都要支持才可以。

然后重启动,在系统里控制面板-〉计算机管理-〉硬盘管理里面分扩展分区和逻辑分区,硬盘所有容量就认出来了!
OK!

(palan):xp以上的系统格式化后挂上2000(警告:有些时候在2K里面存的数据会自己遭到破坏,如果出现这样情况,且一定要在2K里面使用的话,只能在2K里面格回127G使用此问题出现在使用的机器的BIOS里面只能检测到130G的情况下)

华为帮助互联星空/星空疾速实现HTTP劫持的市场介绍资料

流氓软件/网站 August 2nd, 2007

这来自华为的官方站点对其MA5200的介绍

七、增值业务

  MA5200G除了实现宽带接入业务,对接入终端进行管理控制之外,还可提供专线业务、门户业务、VPDN、MPLS VPN、非法运营业务拦截等增值业务。

2、Portal门户业务

  MA5200G支持PPP、802.1x、Web和端口绑定等多 种认证方式,接入用户无论采用何种认证方式,均支持强制Portal门户业务通过Portal门户,用户可以管理个人信息,使用内容服务,接受ICP发 布的广告内容和业务公告、业务咨询和网上业务自助等服务。

互联星空/星空疾速的http劫持、DNS劫持等就是靠华为的MA5200G.

鄙视  互联星空/星空疾速也要从鄙视华为开始。

互联星空HTTP劫持的初步分析

流氓软件/网站 August 2nd, 2007

通过抓包比较分析,得出一些初步的分析:

* 帮助电信实现这些流氓手段的公司是: 华为,在我这里看到实现此流氓手段的设备是MA5200G

* 星空疾速在Windows XP下并没有实现自己的PPPoE客户端,而是采用了系统标准的。 可以看到安装星空疾速后在网络连接中出现了一个 Vnet PPPoE的连接,星空疾速拨号后,这个VNet PPPoe连接处于活动状态.  但此连接是通过软件程序控制的,因此可能在连接的时候附带了一些配置信息 ,正是通过这些配置信息使得MA5200知道你的客户端没有使用星空疾速,从而对你今后的HTTP访问进行劫持。

这些数据包我因在老家没有编译器没有办法写程序分析,所以还没有能清楚其内部的秘密。

* 胡连星空的HTTP劫持仅针对HTTP协议。 对其他协议暂时没有处理,包括HTTPS.

* 星空疾速连接后会和其server有系列http会话,我已经证实这些会话对HTTP劫持没有任何作用, 因此我估计他们判断是否使用了星空疾速的办法应该是上述PPPoE连接的特殊参数。

解决方案

A、加密隧道法

对于有条件的,在外部有代理服务器,或者SSH服务的,可以采用SSH加密隧道,或者HTTPS加密隧道,自己的VPN连接 等规避HTTP劫持的设备。

我自己采用SSH隧道来模拟一个本地的SOCKS代理:

plink -N xxx@xxxx.net  -D 127.0.0.1:9999

plink是开源软件PuTTY中的一个部件。  xxx@xxxx.net是我自己外部的一台有ssh访问权 的服务器。

B、委屈求全法

考虑到需要让我妈妈能顺利使用, 因此步骤要尽可能少,我采用一个委屈求全的方案是用我的无线路由器来传送PPPoE 报文,这样就可以使用无线网络,但在无线连接的电脑上使用那个流氓星空疾速软件。 已经证实这样做能正常访问,但Internet是无法被共享的。

需要WiFi router支持PPPoE的穿越。 我使用Linksys  WRH54G可以支持。

这种做法只能让wifi 可以使用,并不能阻止HTTPs劫持等任何流氓手段。

不幸的是可能没有完美方案

如果是从MA5200G这样的设备上做手脚,在PPPoE连接建立时作文章来标记自己的身份,那么很可能没有完美方案能让宽带路由器很好使用起来,因为大部分宽带路由器的PPPoE连接部分的代码是无法修改的。 :(  所以可能就无法指望运行一个小软件来让宽带路由器共享得很爽。 这样一来,也许加密隧道法成了最佳方案。

学习资料收集 uPnP

学习, 系统, 转载 August 2nd, 2007

Windows XP中的uPnP:  http://www.microsoft.com/china/windowsxp/pro/techinfo/planning/upnp/protocol.mspx

SSDP
顾名思义,简单服务发现协议 (SSDP) 定义了网络服务是如何在网络上被发现的。SSDP 基于 HTTPU 和 HTTPMU 创建,定义了控制点定位网络上感兴趣的资源和设备通知它们在网络上的可用性的方法。通过定义同时使用搜索请求和展示通知,SSDP 避免了在仅使用这两种机制中的任一种时所必需的开销。这样,网络中的每个控制点都可以获得关于网络状态的完整信息,同时保持了低水平的网络流量。

访问点和设备都可以使用 SSDP。UPnP 访问点启动后可以发送 SSDP 搜索请求(通过 HTTPMU)来发现网络上可用的设备和服务。访问点可以细化该搜索,从而仅查找特定类型的设备(如 VCR)、特定服务(如具有时钟服务的设备)乃至特定设备。

UPnP 设备会侦听多播端口。一旦收到搜索请求,该设备就检查该搜索条件以确定它们是否匹配。如果匹配,一个单播 SSDP(通过 HTTPU)响应将被发送到该控制点。

同样,当将设备插入网络时,它会发出多播 SSDP 展示通知消息,通知它所支持的服务。

在展示通知和单播设备响应消息中都包含该设备描述文档(含有该设备支持的属性和服务组合的信息)所在位置的指示符。

除了提供发现功能外,SSDP 还提供了设备及其关联的服务适当地从网络离开的方式(再见通知),并包含清除陈旧信息的缓存超时设置来进行自我维护。

一个SSDP数据报文的例子:

0000  01 00 5e 7f ff fa 00 1a  70 fb 91 29 08 00 45 00   ..^….. p..)..E.
0010  01 56 00 00 40 00 01 11  c6 f3 c0 a8 01 01 ef ff   .V..@… ……..
0020  ff fa 0c 01 07 6c 01 42  28 de 4e 4f 54 49 46 59   …..l.B (.NOTIFY
0030  20 2a 20 48 54 54 50 2f  31 2e 31 0d 0a 48 4f 53    * HTTP/ 1.1..HOS
0040  54 3a 20 32 33 39 2e 32  35 35 2e 32 35 35 2e 32   T: 239.2 55.255.2
0050  35 30 3a 31 39 30 30 0d  0a 43 41 43 48 45 2d 43   50:1900. .CACHE-C
0060  4f 4e 54 52 4f 4c 3a 20  6d 61 78 2d 61 67 65 3d   ONTROL:  max-age=
0070  31 33 30 0d 0a 4c 4f 43  41 54 49 4f 4e 3a 20 68   130..LOC ATION: h
0080  74 74 70 3a 2f 2f 31 39  32 2e 31 36 38 2e 31 2e   ttp://19 2.168.1.
0090  31 3a 32 38 36 39 2f 67  61 74 65 64 65 73 63 2e   1:2869/g atedesc.
00a0  78 6d 6c 0d 0a 4e 54 3a  20 75 72 6e 3a 73 63 68   xml..NT:  urn:sch
00b0  65 6d 61 73 2d 75 70 6e  70 2d 6f 72 67 3a 73 65   emas-upn p-org:se
00c0  72 76 69 63 65 3a 57 41  4e 49 50 43 6f 6e 6e 65   rvice:WA NIPConne
00d0  63 74 69 6f 6e 3a 31 0d  0a 55 53 4e 3a 20 75 75   ction:1. .USN: uu
00e0  69 64 3a 55 55 49 44 2d  57 41 4e 43 6f 6e 6e 65   id:UUID- WANConne
00f0  63 74 69 6f 6e 44 65 76  69 63 65 2d 31 32 33 34   ctionDev ice-1234
0100  3a 3a 75 72 6e 3a 73 63  68 65 6d 61 73 2d 75 70   ::urn:sc hemas-up
0110  6e 70 2d 6f 72 67 3a 73  65 72 76 69 63 65 3a 57   np-org:s ervice:W
0120  41 4e 49 50 43 6f 6e 6e  65 63 74 69 6f 6e 3a 31   ANIPConn ection:1
0130  0d 0a 4e 54 53 3a 20 73  73 64 70 3a 61 6c 69 76   ..NTS: s sdp:aliv
0140  65 0d 0a 53 45 52 56 45  52 3a 20 4c 69 6e 75 78   e..SERVE R: Linux
0150  2f 32 2e 34 2e 32 30 20  55 50 6e 50 2f 31 2e 30   /2.4.20  UPnP/1.0
0160  0d 0a 0d 0a                                        ….

互联星空HTTP劫持的罪证(2)

流氓软件/网站 August 2nd, 2007

访问我自己的blog页面, http返回结果被彻底篡改:

GET / HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*

Accept-Language: zh-cn

UA-CPU: x86

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)

Host: robertmao.com

Connection: Keep-Alive

Cookie: wpthisvisit=1185877789; wplastvisit=1185877784; wplastvisit_posts=0; wplastvisit_comments=0; __utma=206502800.1164601729.1185823798.1185823798.1185823798.1; __utmz=206502800.1185823798.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)

HTTP/1.1 200 OK

Content-Type: text/html; Charset=GB2312

Connection: close

Refresh: 9999; URL=http://robertmao.com/

Pragma: no-cache

Cache-control: no-cache

<html><head><!–title>… ……………….. …</title–><!– 9999 –></head><script language=JScript><!– function killErrors(){return true;} window.onerror = killErrors; –></script><frameset rows=”*”><frame src=”http://welcome.js.vnet.cn/solicitude.html” noresize></frameset></html>

互联星空HTTP劫持的罪证(1)

流氓软件/网站 August 1st, 2007

浏览www.163.com, 首先弹出广告. 代码如下:

<HTML><script language=”JavaScript”>
function newwin()
{var urlname;var win_attr;win_attr=’toolbar=no,menubar=no,scrollbars=no,status=n
o,location=no,resizable=no,fullscreen=no,directories=no,width=400,height=350,top
=5000,left=5000′;window.open(’http://219.133.33.46/adportal/portal1.aspx?param=A
BcHJvdmluY2VpZD0xNiZjaXR5aWQ9NiZjbGFzc2lkPTQyMjImdXNlcm5hbWU9bnRrZDg3NTE2OTc5JnN
vdXJjZXVybD13d3cuMTYzLmNvbS8=’,'ips_win0′,win_attr);
}
</script>
<head><title></title><META HTTP-EQUIV=”Pragma” CONTENT=”no-cache”><META http-equ
iv=”Content-Type” content=”text/html;charset=gb2312″><meta http-equiv=”Refresh”
content=”0; url=http://www.163.com/”></head><body onload=’newwin()’> </body></html>

转载:利用Putty通过ssh端口转发绕过GFW, 互联星空等系列恶心的东西

转载 August 1st, 2007

正在和一些垃圾的干扰上网的玩意搏斗中,转载一篇需要的技术参考文章。车东写的,车东别介意啊 :)

利用Putty通过ssh端口转发实现FireFox和MSN加密代理访问
作者:车东 来源:车东[Blog^2]

参考原文:http://thinkhole.org/wp/2006/05/10/howto-secure-firefox-and-im-with-putty/

加密传输的机制如下:

/ foo.com

浏览器 <==secure tunnel==>ssh server - bar.com

\ example.com

浏览器先通过加密通道链接到一台服务器上,然后通过这个服务器再访问整个互联网。主要的用途就是这个绕道访问。具体你需要通过加密通道绕过谁? 谁用谁知道……

具体配置过程:
在SSH登录工具Putty的登录设置中配置tunnel,目标设置为Dynamic,添加一个端口7070,再按Add,一个动态转发端口就实现了;
dynamic_tunnel.png
然后用相应帐号ssh登录后:除了登录的终端窗口意外,本地的7070连服务器的22端口之间就有了一个SSH加密的转发通道了。

为了方便切换,可以使用FireFox的SwitchProxy tool插件,设置socks代理通过本地的127.0.0.1:7070 进行传输。
switch_proxy.png

MSN的机制类似:就是在连接配置中设置sock5 加密代理。

附:
获得国外的SSH帐号或者有Dreamhost虚拟主机的可以增加ssh用户:都可以用类似机制进行加密访问。

感谢number5:

更简单方便的setup方式是使用 putty的后台命令行程序plink
plink -N username@remote.ssh.server -D 127.0.0.1:7070
其中 -N 表示不需要shell
username@remote.ssh.server 换成你ssh帐户名和主机域名或者地址
或者替换成 -load sessionname 也可以,用dreamhost上的帐号试了一下,真的很快

如何在Windows下使用密钥方式登录Linux服务器:
如果设置需要基于密钥的登录(如果不设置密钥密码,就可以自动登录了),
我没有试成使用puttygen生成的密钥(公钥/私钥)直接部署在Linux服务器上。目前成功的方法是:先在服务器上用服务器上用./ssh- keygen生成密钥对,将公钥 id_rsa.pub >> 部署到要登录到的服务器上:/home/username/.ssh/authorized_keys 中,密钥在Windows客户端下使用:将密钥 id_rsa下载到本地,然后用puttygen导入id_rsa 另存转换为putty格式的密钥id_rsa.ppk即可。然后使用 plink -i c:\path\to\id_rsa.ppk username@example.com方式登录。

注意:
加密通道和网站是否提供https没有直接的关系,https是指服务商直接向客户提供的加密,例如:GMail: https://mail.google.com/mail/, GReader: https://www.google.com/reader/view/ ,从ssh server到服务网站之间仍然是明文的http传输;
加密通道和匿名不匿名访问网站也没有直接关系。

自己实现类似IBM的一键复原

系统, 转载 July 31st, 2007

从这里学来的:http://www.knowsky.org/html/4/88/20070405/24512.html
准备自己实现,所以转载收藏下来

 IBM F11一键恢复原理:

IBM F11系统恢复的工作原理,他是在一个硬盘上有2个主分区,备份恢复分区默认为隐藏。当系崩溃按F11恢复时,隐藏的备份恢复分区自动设置为可见的活动分区,启动电脑后执行系统恢复。但是此系统存在一个缺陷,首先只有IBM用户才能享有,其次,恢复速度慢。

接下去笔者将自己利用IBM的系统恢复工具打造F11一键恢复系统过程介绍给大家,如有不足之处请各位批评指正。

准备阶段:

需要工具软件:d2dfdzip.exe(IBM的F11系统恢复工具,可在IBM官方网站下载)

PowerQuest PartitionMagic 8.0

GHOST 7.0 (8.0)

一、采用GHOST软件做好系统镜像文件

笔者在此就不多述,因为这个文件用于以后的系统恢复,所以笔者建议最好是重新安装操作系统,装好必须的应用软件,免的以后每次恢复得重新安装。

二、建立分区:

在WINDOWS下运行PQ8.0,建立分区。

1.在PQ中调整主分区C的大小,在其后空出2G空间用于做备份分区。

2.在主分区的剩余空间点右键-创建-弹出创建分区菜单,选择创建为主分区分区格式为FAT32,卷标为IBM_SERVICE。

3.然后点应用,系统重新启动后,卷标为IBM_SERVER,大小为2G的FAT32备份分区就创建完毕了。但是启动后发现我们I盘并没有出现,为什么?因为现在硬盘上有两个主分区,新建的分区隐藏了。我们再进入PQ,在新建的分区上点右键-高级-显现分区。

重启之后我们就可以看到我们新建的备份分区了。

注意:新建立的备份分区必须在主分区C的后面,假如建在主分区的前面或者建在扩展分区上都将导致F11功能无法使用。分区域格式必须为 FAT32,否则DOS下的GHOST软件将无法正常运行。卷标必须为IBM_SERVICE,否则IBM 的F11恢复软件将不能工作。

三、备份分区的设置

1.使备份分区具有启动功能。因为当系统崩溃后,要使用备份分区来启动电脑,所以必须要在备份分区根目录下存在DOS的基本启动文件。可以在 98系统下制作启动盘,或者用第二个办法,现在的D版光盘都带有启动功能,利用光盘启动电脑,自动默认盘符为A:,将A盘中的所有文件拷贝到硬盘上的备份 分区中。(DOS三个基本启动文件COMMAND.COM MS-DOS.SYS IO.SYS)

2.拷贝GHOST软件和第一步做好的GHOST镜像文件到备份分区根目录。

3.用记事本创建Config.sys文件

Device = c:\himen.sys

保存为config.sys

4.创建自动批处理文件AUTOEXEC.BAT

Ghost.exe -clone,mode=pload,src=c:\winxp.gh1,dst=1:1 -sure ?rb

注意:请不要修改此处的镜像文件路径:C:\winxp.gho,笔者在第一次时将路径改为I,结果无法执行。原因是当备份分区激活启动时,原系统分区隐藏,备份分区成了C盘。

Dst=1:1是恢复文件到第一个硬盘的第一个分区。

四、F11功能安装

1.将从IBM官方网站下载的d2dfdzip文件解压缩到C盘根目录,并修改其中的AUTOEXEC.BAT文件

a:\bmgr.exe /Fboot.bin /Mbmgr%CC%.scr /s

a:\bmgr.exe /Fboot.bin /Mbmgr%CC%.scr /s

将此两行的路径由a:设置成c:,因为我们的笔记没软驱是直接在C盘执行。

2.拷贝DOS的分区软件FDISK.EXE到C盘根目录,因为F11功能需要写硬盘引导记录。在刚才制作的启动盘中有。

3.用启动盘启动计算机到DOS下,转换盘符到C:,输入autoexec.bat

显示一个文件拷贝,按CTRL+ALT+DEL重新启动电脑。

重新启动后是不是发现我们的F11功能已经出现,我们的备份分区也自动隐藏了。

总结:

至此,我们的F11一键恢复系统就打造完成了。以后假如发生系统崩溃只要在重启时按一下F11,就自动恢复了。

Close
E-mail It