禁用wordpress自动保存(aotosave)和Revisions的几种方法

1

分类 : 技术文摘 | 发表时间 02-09-2008

前两天在提到解决国外空间的问题时,一并提到了英文博客wordpress在发布文章时,总是存在间隔ID的情况,并且这个现象很怪异;要么都是偶数ID,要么是奇数ID,有时是隔1,有时是隔很长,post id也一个劲地向上飙升,研究了wordpress后台很长时间,也没有找到解决的方法;当时在文中提到了一种方法:

在wp-config.php中,修改为以下设置:

define(‘ABSPATH’, dirname(__FILE__).’/');
define(‘AUTOSAVE_INTERVAL’, 3600 ); 3600表示自动保存时间为一个小时,你可以修改为自己需要的。
require_once(ABSPATH.’wp-settings.php’);

前文中提到时,发布wordpress时,发现还有这现象,后来检查发现是’AUTOSAVE_INTERVAL’ 应该是半角的“’”,我用成全角了,造成配置无效;事实上,还有几种方法可以禁止掉wordpress的自动保存功能和Post Revisions功能。

月光的“关闭WordPress发布日志的自动保存功能”:打开wordpress\wp-admin\post-new.php文件,找到第八行(对于WordPress 2.3.1而言),将wp_enqueue_script(‘autosave’)一行删除或者注释掉;虽然当时讲的是针对wordpress的2.3.1的版本,但是针对当前的2.6.1正式版本也是可以用的。

还有一篇也是有关月光的“禁用WordPress自动保存的插件”,使用“禁用WordPress自动保存的插件”,插件下载:disable-autosave.zip这里可以下载很多的wordpress插件,当然也包括这个禁用wordpress自动保存功能的插件。

禁用Post Revisions的方法是,在wp-config.php文件中增加一行define(‘WP_POST_REVISIONS’, false);

还有一种方法,应该应用得也比较广泛,但涉及修改文件比较多:

在wordpress目录/wp-admin/中找到以下四个文件:post-new.php、page-new.php、post.php、page.php

用文本编辑工具打开后在其中搜索“autosave”(不包括引号),都会在相应位置找到这样的一行:

wp_enqueue_script(’autosave’);

通过在该行前加入“//”(不包括引号)来将这一行注释掉,保存。

听说wordpress2.6以后版本,不用插件可以自动删除保存的草稿了,但研究wordpress后台好长时间,也没找出所以然来,是我的wordpress修炼道行浅还是小道消息有误?有知道的朋友,留言告知下!

MySQL安全问题(匿名用户)的一点心得

0

分类 : 技术文摘 | 发表时间 28-09-2007

在安装完MySQL后,它会自动创建一个root用户和一个匿名用户,其初始密码都是空,对于前者,很多参考资料上都会提醒大家要注意及时设定一个密码,而忽略了后者,大概是因为后者默认设定为只能在本机使用的缘故吧。

  但如果你的MySQL是要提供给Web服务器作数据库服务的,忽略这个匿名用户的代价可能相当惨重,因为在默认设置下,这个匿名用户在localhost上几乎拥有和root一样的权限,这时候,如果你的客户拥有上传脚本文件、脚本文件可以进行MySQL数据库操作(比如允许操作MySQL的php)的权限已经可能将你的MySQL改动得面目全非了:

  我今天帮朋友整理他的主页空间的时候,试着写了一个很简单的执行sql语句的php文件上传上去,其中连接字中的user,password我都试着置空,host=localhost,结果发现我的sql语句可以执行,于是执行select * from MySQL.user察看用户权限,发现这个用户在localhost权限非常高,连grant_priv都有,(察看的时候,会发现在root用户下有两行用户名、密码为空的,但各项权限有y\n的,就是这个匿名用户本地、远程权限设置了)

  所以我试着用这个php页面创建一个新用户,并grant给他较高的权限,结果一举成功,这样我就可以用这个新用户通过我本机的MySQL client连接到这个网站的MySQL server,并用这个新建立的用户的管理权限对这个网站的MySQL server进行管理,看到自己可以进行这样轻易获得深入的数据库操作,我怎么还敢把朋友的主页空间的敏感资料放入这个MySQL server呢?

  改进建议:

  1、在安装完成MySQL 后,不仅改变root用户的的密码,也同时改变匿名用户的密码,方法类似改变root的密码的方式:

  MySQL> UPDATE user set password=PASSWORD(‘yournewpassword’) where user=”;
  MySQL>FLUSH PRIVILEGES;

  2、如非必要,删除这个匿名用户,这样所有人要使用MySQL 都必须提供用户名,即便日后出了问题,也容易查找问题的源头。

  3、除了root用户外,其他用户包括匿名用户(如果没有删除这个用户)不应该拥有grant权限,防止管理权限不受控制的扩散出去。

  4、赋予用户update\delete\alert\create\drop权限的时候,应该限定到特定的数据库,尤其要避免普通客户拥有对MySQL数据库做操作的权限,否则你的系统设置很可能被替换掉。

  5、检查MySQL.user表,取消不必要用户的shutdown_priv,reload_priv,process_priv和File_priv权限,这些权限可能泄漏更多的服务器信息包括非MySQL的其它信息出去。

  6、如果不打算让你的用户使用MySQL数据库,在提供诸如php这样的脚本语言的时候,重新设置或编译你的php,取消它们对MySQL的默认支持。

比较有意思,Google首页新增“搜索建议”

0

分类 : 业界动态 | 发表时间 24-01-2007

  百度改版了首页,Google也没闲着,今天收到Google公关发来的邮件,说Google.CN的首页增加了“搜索建议”功能。

  目前在Google.CN上已经可以看到实际的搜索效果,在搜索框中输入关键字时,Google搜索框下会自动出现下拉框,给出一些常用的建议词。

  根据分析,这些建议词有可能是按照搜索次数由大到小排列的。这个搜索次数排行应该是近期一段时间的排行,而不是长期时间的排行。这样,最近一段时间内搜索的最热门的词汇都会出现在搜索建议中。

  这项功能目前只是在Google.CN上出现,Google.COM上没有出现这样的功能。(更新:后来得到一些信息,在英文的Google上也具有这样的功能,只是默认为关闭,需要单独进入Google Suggest页面才能看到。)

  “搜索建议”可以用简易的方法实现跟踪大众网民搜索行为,其中一个有趣的目的是可以用来分析搜索结果。

  比如在Google中键入“日本”这个词语,可以发现如下图的搜索建议,因此可以分析很多网民喜欢搜索日本的色情网站。

再例如键入“美国”这个词,会看到下图的搜索建议,我们就可以知道去美国留学或者移民美国是很多人的愿望。

  总的来说,这个功能看起来还是很酷的,希望Google能在大家更常用的Google.COM上也增加上这样的内容。

  下面是Google公关发来的相关新闻稿件,供参考。

让Google猜中你的心-Google中文新增搜索建议

  亲爱的Google(谷歌)朋友,

   当你今天在Google(谷歌)搜索框中输入某一查询词开头的字时,一定发现今天的搜索框和以往的不同!Google搜索框下会自动出现下拉框,给出一 些建议词。比如,你刚刚输入"跑",下拉框中就出现以"跑"字开头的提示词,排在前边的就是"跑跑卡丁车"-一款时下最热的游戏。是不是正是你所要查的 呢?不是?再往下看。如果你要查询的词碰巧是时下中文搜索人群关注的,你一定不会失望。 Google给出的建议终有一款符合你的心意。你也可以尝试输入你的姓,看看哪个和你同姓的人被搜索得最多。

  这就是Google在中文 搜索上新增的" Google搜索建议"的特性。这些建议是从Google统计中文人群搜索历史而得来的,并不是基于浏览器本地的历史记录。下拉框中给出的建议词不会超过 10个,这些词右边绿颜色的值还显示它们曾被人们搜索过的次数。" Google搜索建议"和Google搜索结果页面下方的"相关搜索"不同,它是在人们搜索之前就提出建议。怎么样,这下好了,你不必老是在Google 的页面前呆想该用什么搜索,更不用把想要查询的某个长词,一个字一个字地敲上去。选中所要的词,点击搜索就搞定了。

  当然,这不排除你是一位特立独行的人,从不关心热门东西,非常喜欢打字。如果真是这样,请你进入"搜索偏好"中去,选择关掉这项特性。

Discuz!论坛详细安装向导

0

分类 : 技术文摘 | 发表时间 08-08-2006

现在php和mysql的组合非常火,前一段时间玩phpwind,感觉还是不错;这一段时间,又把discuz下载下来测试了一把,果然不错;事实上,最新版本5.1的,也已经出来了;以下测试版本是4.1的……

  平台:WINDOWS XP SP2 + APMServ5.1.2

  测试环境:PHP程序+asp程序+asp.net程序+cgi程序;

  测试推荐:APMServ5.1.2组合服务器(这个组合是全能的)

  程序版本:Discuz! 4.10

  一、安装Discuz!论坛

  APMServ5.1.2的默认访问路径为\APMServ5.1.2\www,在WWW文件下新建了Discuz! 文件夹,把Discuz!论坛安装目录复制到Discuz!文件夹中,测试地址变为:

http://127.0.0.1/Discuz!/



  运行:

http://127.0.0.1/Discuz!/

浏览器会提示:Access denied for user:

[url=mailto:'dbuser@localhost']‘dbuser@localhost’[/url]

(Using password: YES) 错误提示:论坛数据库错误。



图1 未安装数据库时提示的错误

  解释:这个是因为还没有安装Discuz!论坛数据库,所以有错误提示。

  运行:

http://127.0.0.1/Discuz!/install.php

,系统会自动转到Discuz!论坛的安装界面。

  Discuz!安装文件夹内有4个安装语言包供您选择,各位根据自己的需要进行选择。现在选择[简体中文 GBK]格式。

  小贴士:若环境用的是国外php+sql,推荐使用[简体中文 UTF-8]语言包,因为这样大大的减少了安装过程中出现乱码的情况!

  点[简体中文 GBK]进入下一安装步骤。



图2 选择合适的语言

  出现Discuz!系列软件的授权介绍等说明,点击“我完全同意”进入安装的下一步骤。



图3 “同意”并开始安装过程

  根据空间服务商提供的资料填写完整,如有不明白请咨询服务提供商。(如果还是不太明白,干脆就制作一个此项目表格,传给服务商,让服务商帮你填写完毕。)

  此出有两点需要注意:1)填写的资料是否正确?2)是否拥有数据库空间的管理权限?如果没有管理权限,请马上联系空间管理员。

  在这里填写的是系统默认的数值,点保存配置信息进入安装下一步骤。

&namecode=pcedu&subnamecode=pcedu_index’ target=_blank>





图4 填写相关信息

  检查空间的文件权限与运行论坛环境的差异,要是发现不同的话就马上进入你的FTP选择文件设置他的写权限为777。

&namecode=pcedu&subnamecode=pcedu_index’ target=_blank>





图5 设置文件夹属性(+点击上图可放大)

  填写论坛管理员的信息,一定要记住这些资料。写完以后点击“开始安装Discuz!”进入论坛装下一步。



图6 开始安装

  系统正在新建论坛运行需要的数据库表,安装完毕后,在页面最下面列出设置好的管理员ID和密码。



图7 安装成功

  现在就安装完毕Discuz!论坛了。点击进入论坛。

&namecode=pcedu&subnamecode=pcedu_index’ target=_blank>





图8 论坛首页(+点击上图可放大)

  选择“登录”,输入刚才设置的管理员ID和密码点提交登陆论坛。



图9 登陆后台

  进入论坛,选“系统设置”,系统会新开窗口打开管理界面。



图10 进入“系统设置”
<
br/>

图11 后台设置

  在后台设置完相关设置以后,论坛就可以正常运行了!

  二、安装常见问题

  1.什么是二进制(BINARY)上传?如何设置并使用二进制上传?

  答:所有的 FTP 服务器端和客户端软件均支持两种方式的文件上传,其一为文本(ASCII)上传,其二为二进制(BINARY)上传。Discuz! 要求用户在上传 PHP 程序文件时,使用二进制的上传方式进行。原因为某些程序文件经过编译处理,使用一般的文本上传会造成文件传输错误,影响您的使用。您可以在所有的 FTP 客户端软件中找到有关二进制上传的选项,例如 LeapFTP, CuteFTP 等。以下举例说明这两种客户端软件设置 PHP 文件二进制上传的方法。

  LeapFTP:在 Options(选项)菜单中选择 Parameters(参数设置),选择其中的[ASCII 扩展名],出现列表后,选中其中的“*.PHP”,点右边的[删除],再点右边的[确定]即可。如果“*.PHP”项目不存在的话,可直接使用,不需另行设置。

  CuteFTP:进入软件后按 ALT+F7 进入 Global Options(全局选项),选择[传输]下面的[ASCII 类型],在右边列表框中找到名为“PHP”的项目,选定后点右边的[删除],再点下面的[确定]即可。如果“PHP”项目不存在的话,可直接使用,不需另行设置。



  2.如何更改文件属性?



  答:只有在服务器使用 Linux/Unix 类操作系统时,才需要在安装时对文件属性进行更改,Windows 系统的服务器不需要更改属性。您可以在 FTP 软件中,选定需要更改属性的文件或目录,然后点右键选择 CHMOD(更改文件属性),输入属性值(如 777),再确定即可。如果您的 FTP 软件提示无权更改属性,而您又没有办法通过 Shell 的方式登入主机,请与空间服务商联系,要求其授予您 CHMOD 的权限。



  3.为什么访问所有 .php 页面都会出现类似程序代码一样的信息?



  答:这种情况是因为您的服务器上 PHP 语言支持环境没有被安装,或配置不正确。请自行安装,或向空间提供商寻求解决。



  4.为什么软件提示 Unable to read xxx bytes in xxx.php in xx 这样的信息?



  答:因为您没有使用二进制(BINARY)上传 PHP 文件,请使用 FTP 软件将所有 PHP 文件重新传输一次。



  5.为什么论坛提示 Caches successfully created, please refresh?



  答:这是缓存自动更新的提示信息,通常在初次安装完成后,或缓存文件不存在由系统自动重新建立的时候出现。这个提示为正常现象,一般仅出现一次,刷新该页面即可。



  6.为什么论坛提示 Can not write to cache files, please check directory ./forumdata/ and ./forumdata/cache/ .?



  答:出现这个提示通常因为 Cache 文件无法写入。使用 Unix 类操作系统的用户,请检查“./forumdata/和“./forumdata/cache/”和“./forumdata/templates/”这三个目录是否设置了可写属性(777),同时如果您是从其他服务器上转移论坛而来,除了需要对上述文件设置属性以外,用以下两种方式也可以解决:



  将上述三个目录中的后两个目录中的所有文件全部删除;或将上述三个目录中下的所有文件及目录属性均设置为777。



  7.如果数据库不存在,安装程序可以自动建立数据库吗?



  答:Discuz! 安装程序提供这个功能,前提是您的账号要有建库的权限才行,否则只能使用已有的数据库。



  8.一般情况下,需要修改 config.inc.php 中的什么设置?



  答:一般应用只要修改 $dbname,$dbuser,$dbpw,$dbhost,$adminemail 这五个变量,而其他保留默认或等待对论坛软件更加熟悉以后再进行修改。上面这五个变量,除了 $adminemail 外,其他均用于连接数据库,在您服务器空间的说明中都会给出,如果其中之一配置不正确就会出现数据库无法连接的错误提示而无法使用 Discuz! 论坛。如果您对此不了解,请咨询您的空间服务商,如何设置这四个变量参数。



  9.安装后论坛提示 Access denied for user@localhost using password YES’,该如何解决?



  答:这个提示意味着您的数据库连接参数设置的不正确,有两种可能:其一为数据库账号或密码错误;其二为数据库账号和密码均正确,但无权访问指定的数据库。遇到此种情况,请您咨询您的空间服务商,针对您的空间该如何配置数据库连接参数。



  10.为什么安装成功,进入系统设置后提示 Please delete install.php via FTP?



  答:因为您没有按照说明将 install.php 删除,会产生安全问题,使用 FTP 软件将其删除后这个提示自动消失。



  11.Discuz! 文件及目录结构的形式是怎样的?



  答:Discuz! 软件包通常以 tgz(tar.gz)或 zip 的格式压缩,绝大多数压缩软件可解开此类压缩格式的软件包,解压后的目录结构如下所示:



  ./users_guide.htm   用户使用说明书(本文档)

  ./usersguide/     用户使用说明书内容与图片目录

  ./upload/   程序及相关文件(此目录中的内容需上传)

  *.php           Discuz! 程序



  install.php       Discuz! 安装脚本

  config.inc.php     论坛基本配置,安装前请修改本文件

  mail_config.inc.php   邮件发送配置

  whatsnew.php       网页新帖调用程序

  admin/             系统设置程序目录

  *.php             系统设置程序集

  attachments/         空目录,请设置属性 777,用于存放附件

  customavatars/       空目录,请设置属性 777,用于存放上传头像

  forumdata/           空目录,请设置属性 777,用于存放备份及记录数据

  templates/         空目录,请设置属性 777,用于存放编译模板文件

  cache/             空目录,请设置属性 777,用于存放系统缓存

  templates/           模板文件目录

  default/             系统默认模板目录

  *.htm               系统默认模板文件

  *.lang.php           系统默认语言包文件

  images/               图片文件目录

  attachicons/           附件图标图片目录

  avatars/             论坛提供头像图片目录

  
common/               公用图片目录

  default/               系统默认风格图片目录

  smilies/             Smilies 图片目录

  stats/             流量统计图片目录

  include/               引用包含目录

  *.php                 引用包含程序集



  plugins/             空目录,用于存放插件程序

  ./utilities/           论坛附带工具

  repair.php             数据库修复工具

  restore.php               分卷备份数据恢复工具

  testmail.php               邮件发送测试工具

  upgrade(x).php               论坛升级程序


如何写一份好的工程师简历

0

分类 : 网络日志 | 发表时间 16-06-2006

2006年6月14日 上午 10:15:00
发表者:王忻,Google 工程师

最近三年作为 Google(谷歌)的软件工程师,我每周会帮人事部门审查简历,决定要不要给他们面试。Google 这几年的发展让很多许多优秀的工程师都前来申请。到目前为止,我已经看了上千份简历,有些简历留下的印象比别的好很多。尤其是最近亲戚朋友常常问我如何修改他们的简历,所以我积累了一些常见的错误避免的提议,在此跟大家交流一下。

1.谈到你做过的技术时,应该提到用的程序语言、你的个人贡献和产品细节。

有时我看到有人把过去的经验在简历上一笔带过,比如说:

• 在三人小组里,为电子邮件软件写了些 features。

这是远远不够的,看简历的人希望了解你做的工作的难度和对本公司有多少联系,所以你最好写的具体一些。譬如:

• 用 C++ 语言写了网络电子邮件的自动 backups。在三人小组里,专门负责设计和写储存服务器。从设计开始, 一年后把这个功能 feature 的用户推到了三千。

2.多讲事实, 少用形容词。

看简历的人读你的简历时,需要做判断,所以在简历里需要事实和数目。如果你写“迅速的提高了软件的操作效率”,看简历的人很难判断你成就的难度。但如果你写“在3个星期内,把软件的操作效率提高了40%” 就好多了。

有些谦虚的朋友们不愿意把话说满,所以你也可以用这个办法。你如果说自己“突出”或“在项目上常常被请去救火”,听起来难免会有点骄傲。但你也可以用不能否认的事实来说明你的观点,如“《纽约日报》评这个产品为‘突出’”,或“加入了三个原本已落后于计划的项目小组,但经过努力和组员一起把它们都按时完成了。”

3.你获得的奖、商业的荣誉或表扬、受用户欢迎的产品和你做过的有难度的业余项目都该包括在简历里。

我有位朋友在硅谷一个著名的硬件公司做了六年,她设计的 IP phone(网络电话)为公司赚了上亿的收入,被公司与商业报道多次评了奖。我有一次在旧金山的高速公路上驾车时,看到路边有她产品的广告牌;还有一次我去上海度假时,竟然发现上海公路边上也有!

不久,这位朋友决定换工作,请我看看她的简历。我惊讶的发现,她居然轻描淡写的写了一句– “1998 – 2004:网络电话产品的硬件工程师组长” 和她的职责。

“产品赢的奖呢?它为公司赚的钱呢?” 我追问到。

“那些也该写吗?” 她说。

当然该写。

有人问,业余时间做的项目可不可以写?我觉得只要你的项目有代表性能说明对你的能力,都该包括。

4.分清主次,删掉相比之下不起眼的成绩,以免冲淡更加突出的成绩。

有朋友问,写简历是不是写的越多越好?譬如:

在甲公司做暑假实习生——
* 改善电子游戏的数值分类算法, 减少了内存要求 10%。
* 用 Java 写了 3000 行用户界面程序。
* 每周做两小时的人工测试。

你在申请软件工程师的职位时,我觉得前两点比较相关,第三点其实就不必写了。有时我看到有的简历里会提到,”按时完成了任务,产品符合原计划规格”。但读简历的人通常会认为这是理所当然的,而你把这些声明出来反而减弱简历的效果。

加速交换机端口初始化进程

0

分类 : 技术文摘 | 发表时间 15-06-2006

当把电脑连到一台Cisco交换机上时,可能需要30秒甚至更多的时间,电脑才可以使用网络进行通讯。如果你正着急等着要用,30秒的等待足以让你感觉无比漫长。让我们来看看如何才能加速交换机的端口初始化进程。

了解交换机端口初始化的过程 当把设备连上已经启动的交换机的端口,交换机端口一般会经历4各步骤。我们来仔细看一下。

生成树协议(STP)初始化

STP是IEEE 802.1d协议,它阻止一个局域网里形成环路。测试此交换机端口是必要的;启动STP时会在局域网内形成一次循环。如果连上来的是一台集线器、交换机或者是路由器,STP就显得分外重要。另外一方面,如果连上来的是一台电脑、打印机、服务器或者一台笔记本电脑,那么STP的初始化进程就不需要了。 在STP初始化阶段中间,端口会经历STP的5个阶段:阻塞、倾听、学习、转发以及失效。整个过程耗时15秒。所以,如果你确定将要连接的是什么,你就可以终止这个过程。

 以太通道配置测试

下一个过程是对以太通道的测试,这是和交换机端口绑定在一起,以便提供更多的以太网连接。如果一条通道不行,以太通道通常会提供冗余。这个过程使用端口聚合协议(PAgP),耗时大约15秒。 Trunk配置测试有线和无线网络 下一步,交换机开始测试该端口是否Trunk端口(交换机之间互联用的端口)。TRUNKING通过单一的交换机端口,在多个VLAN之间交换数据。对Trunk端口的测试耗时很少,当然你也可以禁止它,再节省1、2秒时间出来。 交换机端口速度与全双工的自适应 最后,交换机端口进入速度与全双工的自动握手。举例来说,一个交换机端口可支持1000Mb(1Gb)的全双工速度,但是客户机只支持100Mb的全双工,则交换机和客户机会自动协商彼此能支持的最高速率。 可以在交换机初始化过程时对此过程进行硬编码以节约时间。但是这并不总是一个好的选择,因为可能不知道客户端支持的速度到底是多少。这个自适应时间不长,所以不妨仔细考虑一下如果要对每一个交换机端口进行硬编码的时间耗费是否值得。 现在我们已经回顾了交换机端口初始化的不同阶段,让我们来看看能从中节约多少时间。

执行下述步骤,可以为基于Cisco IOS协议的交换机节约30秒以上的端口初始化时间: 将交换机端口设为Access模式。这可以取消Trunk协商,并阻止端口进入以太通道协商。这可以为初始化过程节约15秒。 配置PortFast。这可以阻止端口进入STP协商,并再节约15秒时间。下面是个例子: Switch(config)# int fa0/21

Switch(config-if)# switchport mode access

Switch(config-if)# spanning-tree portfast %

Warning: Only enable PortFast on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc. to this interface when you’ve PortFast can cause temporary bridging loops. Use with CAUTION. %This has configured PortFast on FastEthernet0/21 but will only have an effect when the interface is in a non-trunking mode.

Switch(config-if)# no shutdown

Switch(config-if)#

也可以在一系列端口上设置,比如:

Switch(config)# int range fastEthernet 0/1 – 24

Switch(config-if-range)# switchport mode access

Switch(config-if-range)# spanning-tree portfast

如果觉得需要,也可以人为设置交换机端口的速度,节约一点时间。下面是例子。

 Switch(config-if)# speed 100

Switch(config-if)# duplex full

通过禁止STP初始化,Trunk协商,以太通道协商可以为初始化进程节约30秒时间。另外,可以使用接口的范围命令,设置好交换机的所有端口。

一个在黑客界引起轰动的菜鸟教材–编程系列

0

分类 : 网络日志 | 发表时间 15-06-2006

跟我学编程系列
原黑白新区记忆碎片的帖子!转贴上来,供大家学习!!!
发现大部分黑白的朋友都不会编程, 这可不是件好事, 所以这次我就写了一个简单的编程教程, 讲一下VBScript. 主要面向菜鸟, 懂得编程的朋友就不要浪费时间了, 如果你想接触以下VBScript也可以, 但既然有编程基础推荐直接去找一些参考书来读, 会比较快.
什么是VBScript呢? VBScript的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版). 正如其字面所透露的信息, VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言. 我进一步解释一下, Microsoft Visual Basic是微软公司出品的一套可视化编程工具, 语法基于Basic. 脚本语言, 就是不编译成二进制文件, 直接由宿主(host)解释源代码并执行, 简单点说就是你写的程序不需要编译成.exe, 而是直接给用户发送.vbs的源程序, 用户就能执行了.
  我知道菜鸟现在最关心的就是用什么工具来开发VBS程序了, 答案是:记事本(Notepad).我不是开玩笑, 其实任何一种文本编辑器都可以用来开发VBS开发, 只不过记事本是由系统自带的, 比较好找而已. 尽管如此, 我还是建议你去下载一个专业的文本编辑器, 因为这些工具可以提供 “语法高亮”等功能, 更加方便开发, 用哪一个随你喜好, 我比较喜欢Edit Plus (2.10).
  OK, 我们先来写一个VBScript程序热热身.
REM 输入并回显你的名字
‘使用InputBox和Msgbox函数
Dim name,msg
msg=”请输入你的名字:”
name=Inputbox(msg,”名称”)
Msgbox(name)
  把上面的程序清单输入到记事本里面, 然后保存为以.vbs为扩展名的文件(“保存类型”里面选择”所有文件”).然后双击运行, 观察运行结果. 注意:请自己输入程序清单, 不要复制->粘贴!
  我来解释一下这个程序, 第一行和第二行的开头分别是”REM”语句和” ‘ “, 这两个东西的作用是相同的, 表示本行是注释行, 就是说这两行什么也不干,只是用来说明这段程序的功能, 版权信息等等. 注释行是程序最重要的部分之一, 尽管它不是必需的, 但对于其他人阅读源代码, 以及自己分析源代码是很有好处的. 好的习惯是在必要的地方加上清晰, 简洁的注释.
  Dim用来声明一个变量, 在VBS中, 变量类型并不是那么重要, 就是说VBS会帮你自动识别变量类型, 而且变量在使用前不一定要先声明, 程序会动态分配变量空间. 在VBS中你不用考虑name储存的是一个整数还是一个小数(学名叫”浮点数”), 也不用考虑是不是字符串(一串字符, 比如:”Hello World”), VBS会自动帮你搞定. 所以第三行语句可以删除, 效果不会变, 但我强烈反对这么做, 一个变量的基本原则就是:先声明,后使用.变量名用字母开头,可以使用下划线,数字, 但不能使用vbs已经定义的字, 比如dim, 也不能是纯数字.
  下一行被称之为”赋值”, “=”是赋值符号, 并不是数学中的等于号, 尽管看起来一样.这是正统的理解, 你要理解成等于也没有什么不可. 赋值号的左边是一个变量, 右边是要赋给变量的值, 经过赋值以后, msg这个变量在程序中等同于”请输入你的名字:”这个字符串,但当msg被再次复制的时候, 原值就会消失. 不光字符串, 其他任何变量都这样被赋值, 例如: a=2, b=12.222等等.
  再往下,Inputbox和Msgbox是VBS内建的函数, 一个函数就相当于一个”黑箱”, 有输入(参数)和输出(返回值), 你可以不用了解函数是怎么运作的, 只要了解这个函数能干什么就行了, 我们也可以定义自己的函数, 不过那要等到以后再讲. 现在我们只要了解, 一个函数可以有返回值也可以没有, 可以有参数也可以没有. 例如Inputbox就是有返回值的函数, 我们用赋值号左边的变量来”接”住InputBox的返回值–就是你输入的内容. 在inputbox右边的括号里是参数列表, 每个参数用”,”分隔开, 每个参数有不同的功效, 比如第一个参数会显示在提示里, 我们把msg这个变量作为第一个参数传给了Inputbox 函数, 而msg=”请输入你的名字:”, 所以我们在对话框的提示栏就会看到”请输入你的名字:” 第二个参数是对话框的标题, 我们用直接量(学名叫”常量”, 这里是”字符串常量”)传递给函数, 当然你也可以传递变量. Inputbox还有很多参数, 比如你在”名称”后面再加一个”,”然后输入随便一串字符(字符串,用双引号”"包裹起来的一串字符叫做字符串)然后运行, 看看结果. 你会发现用于输入的文本框有了默认的值, 这就是第三个参数的作用.
  Msgbox函数是用来输出的函数, 在VBS中没有专门的输出函数(BASIC中的print,C中的printf), 所以我们只能用对话框来观察输出结果, Msgbox的必要参数只有一个, 就是要输出的内容, 在这种情况下, 我们不需要理会msgbox的返回值. 关于Msgbox和Inputbox我们以后还会在讨论, 今天只是热热身, 到此为止.
要点:
1) 注释(以REM或’开头)行在程序中不起作用, 但能让别人更容易读懂你的程序.
2) 变量好像一个盒子, 或一个代号, 可以代表你想代表的东西. 变量赋值使用”=”
3) 以”"包裹起来的字符称之为”字符串”
4) 函数像一个”黑箱”, 有参数和返回值, 用”=”左边的变量可以接住返回值
5) Inputbox函数弹出一个输入对话框,Msgbox则用于输出
作业:
1) 试验Inputbox的第三个参数
2) 写一段程序输出你的年龄
3) 写一段程序进行3次输入, 分别输入你和你父母的姓名(要求显示提示), 并分3次输出
第二篇:
我真没想到, 第一次的作业竟然有人不会.
  看来要讲的非常非常细致才行, 嗯, 今天讲各种”量”和基本运算
  先说常量, 这个比较简单.
  什么是常量呢, 常量就是其值不可变化的量.
  常量分为两种:第一种, 自然常量. 这叫是因为它们本身就是常量, 你怎么更改21的值呢? 他永远都是21, 不可能变成46
如果你在程序中使用”21=46″, 这样的语句将会引发一个错误. 同样的, 字符串也是常量 (还记得字符串吗? 就是包裹在”"之间的一串字符), “Hello World”就是一个例子, 如果你使用”Hello World”=”Bye”这样的语句同样会引发一个错误. 你能举出自然常量的更多例子吗?
  第二种, 是我们自己定义的常量,这种量也使用代号, 他们也被赋值, 但和变量的不同点在于, 他们在定义的时候被赋值,以后就不能改变了,如果企图改变将会引发一个错误. 定义一个变量,我们使用”const”这个关键字(关键字的意思是系统定义了有特殊功能的字, 不能作为变量名或常量名使用),格式是:const 常量名=常量值.
例如:
const PI=3.1415926
const NAME=”记忆碎片”
  这样我们就定义了两个常量, PI和NAME, 一般说来, 常量名全部使用大写, 但也可以不用, 随你喜好. 将一些在程序中不需要改变的值定义为常量是个好习惯, 这样能防止不必要的意外. 另外, 使用自定义常量也可以减少你的工作量. 比如:
msgbox(“Hello World”)
msgbox(“Hello World”)
msgbox(“Hello World”)
msgbox(“Hello World”)
msgbox(“Hello World”)
  这个程序输出五次Hello World, 如果你想要改变输出为Bye-Bye, 就必须修改全部程序, 当然你可以手动修改5次, 但如果你要输出1000次呢? 常量就可以替我们解决这个问题:
const hw=”Hello World”
msgbox(hw)
msgbox(hw)
msgbox(hw)
msgbox(hw)
msgbox(hw)
  这样当你要修改输出的时候只要修改hw的值就行了.
  好了, 现在我们来看看编程的第一块重要”基石”:变量. 解释变量最好的办法我觉得是”盒子”, 一个变量好像一
个盒子, 里面只能装一个东西, 当你要装进去别的东西的时候必须把原有的东西拿出来. 这个”盒子”是有名称的, 当你在程序中使用变量的时候, 系统会打开盒子取出里面的东西, 让这些东西参与处理, 而不是盒子. 有些语言是很依赖”盒子”里面装些什么东西, 这样才能找到合适的”盒子”(比如C语言), 但VBS给我提供的是能够自动伸缩的”魔术盒”, 我们不用关心装进去的是什么东西,
VBS会自动调整盒子的大小. 例如:
Dim a1,a2,a3
a1=14
a2=12.23
a3=”Hello”
而不用像C语言那样麻烦: 或者是VB的正规声明(VB可以声明也可以不用)那样:
int a1; Dim a1 as integer
float a2; Dim a2 as Double
char* a3; Dim a3 as strnig
a1=14; a1=14
a2=12.23; a2=12.23
a3=”Hello”; a3=”Hello”
嗯……扯远了……
  变量有什么用呢? 哇, 那用处可大了. 最简单, 你并不能确定程序运行时变量的值, 比如前一节课我们编的输入姓名的程序, 你不能确定InputBox返回的是什么(还记得Inputbox的返回值吗? 就是你输入的内容), 所以你就没有办法应对各种情况, 但我们用name这个”盒子”把用户的名字装起来, 到用的时候我们只要知道name这个盒子的名字就行了, 系统会自己打开他并把里面的内容拿出来用. 再举个例子, 我们编写一个程序计算一个矩形的面积, 比如这个程序要发给小学生使用:
dim a,b,s
a=15
b=12
s=a*b
msgbox(s)
  这样就可以求出长为15,宽为12的矩形的面积了, 是不是很简单? 当然, 这个程序也可以这样写:
dim s
s=15*12
msgbox(s)
  这样看起来程序短了许多, 也节约内存, 但并不是鼓励的做法, 为什么? 请看下面.
  现在, 我们的程序要变得像点样子才行, 谁的程序写出来还要别人修改源代码才能用啊?
  所以, 我们要接受用户的输入, 还记得吗? InputBox函数.
  修改后程序如下:
dim a,b,s
a=inputbox(“请输入矩形的长:”)
b=inputbox(“请输入矩形的宽:”)
s=a*b
msgbox(s)
  ok, 这么一修改, 无论用户输入怎样的数据, 我们都能计算出矩形的面积了. 如果你用s=15*12能改嘛? 当然不行.
  我想你已经发现了, vbs中的数学计算和真正的算术没有什么不同, +,-,*,/,(),[],{}都是一样的用法, 比如:
dim ans
ans=12+32/4+[(23-10)*2]
msgbox(ans)
  四则运算的法则在编程中同样生效, 你可以在编程中重新获得小学时候的乐趣(你恨数学?那就别学电脑了).
  在编程中有一个有趣的运算符是”mod”, 这个运算符叫做”取余运算符”, 就是取得一次除法的余数, 例如
dim a
a=16 mod 5
  你知道a等于几吗? Bingo! 没错, 就是1. 因为16 / 5 =3….1, 所以mod计算的结果就是1.
  还有一个运算符是”^”(就是键盘”6″上面的小箭头), 他表示”乘幂”(或者是”方”) 比如:
dim a,b,c
a=2
b=a^2
c=a^3
msgbox(a)
msgbox(c)
  则b=a*a=4, c=a*a*a=8
  我们一次不要讲太多, 这次就讲到这里, 现在总结一下.
要点:
1) 常量分为自然常量和自定义常量, 常量的值不可修改
2) 变量就像盒子, 我们不在乎盒子里装的是什么, 但一定要知道盒子的名字
3) 四则运算在编程中没有任何不同
4) MOD是取余运算
作业:
1) 编一个程序, 计算圆形的面积, 半径由用户给出 (使用Inputbox) PI取值3.14159
2) 编一个程序取得20 / 3 的余数

第三篇(共六篇):



首先, 我来解决一下上次课程的几个疑问

第一, 那个余数问题, 16 / 5 = 3…1, 是因为我改过前面的部分, 后面的忘了改了, 不好意思.

第二, 请看一下程序清单:

1)
Dim a,b,c
a=inputbox(“a是:”,”输入半径”)
b=Inputbox(“b是:”,”输入半径”)
c=a*2+b*2
Msgbox(c)
这个 输入1、2时是6

2)
Dim a,b,c
a=inputbox(“a是:”,”输入半径”)
b=Inputbox(“b是:”,”输入半径”)
c=(a+b)*2
Msgbox(c)
这个输入1、2时是24

  为什么会不一样呢? 在数学上c=(a+b)*2 和 c=a*2+b*2是等价的, 在VBS中也是如此. 问题出在”+”上, 在VBS中, +不仅仅是加号的意思还表示把两个字符串连接起来, 例如”Hello”+”World”=”HelloWorld” have you understood? 你还记得InoutBox函数的返回值吗? 是字符串! 这就看出问题了吧, 在编程中”1″不等于(<>)1, “1″是一个字符, 而1是一个数, 所以a,b都是字符串变量, “1″+”2″=”12″, 这就好像我们小时跟伙伴开玩笑问他们1+1=?一样, 我们总是笑着说”错啦,应该是11″.但为什么, a可以*2却不发生错误呢? 这时VBS比较智能的一个表现, 如果这个字符串的内容是一个数且对他进行数学运算, 则把字符串强制转换成数参与运算, 如果字符串代表一个数, 但不参加数学运算, 而是参加字符串运算(合并)则当作字符串处理, 所以你看到a+b=12, 这时候a+b的结果(12)是一个字符串, 当它要乘以2的时候就被强制转换成了数字12, 这样我就得到了结果24.

  怎么修改这个程序呢? 我们需要用到另一个内建的函数:int, int函数的功能是将输入值转化成整数值, 我们这样修改:

c=(int(a)+int(b))*2

  这个意思就是把a作为参数传递给int函数, int函数就会返回那个整数(你的输入值), 然后让返回值参与运算, 这样就得到了正确答案.所以,以后如果你用的是inputbox函数的话,最好用int语句加工一下:比如c=int(c) ””c是你自己的变量

  大家是不是觉得这个课程有点枯燥, 呵呵, 变量和运算符部分的确是这样的, 不过多多练习也就好了, 这次, 我们写写真正好玩的东西: 流程控制语句. 这个部分开始才是真正的编程.

  首先介绍判断结构.

  在此之前, 我们先介绍一种简单的变量类型:布尔值(Boolean), 这种变量只有两个可能值:True,Flase,即真或假. 这种变量在某些情况下很有用(比如”开关”). 我们定义一个bool变量的方法和其他变量一样, 赋值也一样, 例如:

dim a,b
a=true
b=false

  注意,true和”true”是不一样的, “true”是字符串,true是布尔值, 千万不能混淆.

  回到if语句上来, 我们先来看看简化版的if语句:if 判断式 then 语句体 我们来看一个例子:

dim a,b
a=12
b=13
if b>a then msgbox(“B大于A”)

  我们只看最后一行, a>b这个式子(表达式)有一个返回值, 是bool型的. 因为这个式子只有两种可能:b大于a, b不大于a, 所以这个式子也只有两种可能性, 即真或者假. if语句判断这个表达式的返回值是真还是假, 如果是真(true)则执行then后面的语句, 如果是假, 则不执行, 你把a的值改成14看看还会不会弹出对话框?

  当我们要在判断之后执行多行语句怎么办呢, 我们需要用语句块来解决, 在这里可以叫块if

dim a,b
a=12
b=13
if amsgbox(“A小于B”)
msgbox(“B大于A”)
end if

  两个msgbox函数夹在if和end if之间, 这个部分就是语句块, 块里的每一条语句之前请空出4–8(一个键)个格, 这不是必需的, 但是是一个好习惯, 以便看清楚程序的结构. 这样我们就能运行多于一个的语句, 请注意if…then…end if 这三个关键部分不要掉了. OK, 我出一个题, 输入一个数, 如果小于100就输出”错误”, 如果大于100就输出”正确”, 我这里有两个程序版本:

dim a
a=inputbox(“请输入一个大于100的数”)
a=int(a) ””inputbox返回的是字符串, 我们把他变成整数 : )
if a>100 then msgbox(“正确”)
if a<100 then msgbox("错误")

还有一个更简单的

dim a
a
=inputbox(“请输入一个大于100的数”)
a=int(a) ””inputbox返回的是字符串, 我们把他变成整数
if a>100 then
msgbox(“正确”)
else
msgbox(“错误”)
end if

  看到多了一个else了吧, else的作用就是当要判断的表达式为false时执行的. 这样程序就可以处理两种不同的情况了. 不要忘了用end if结尾

  嘿嘿, 我是变态者, 现在我要你处理三种情况, <100,=100,>100, 还要写在一个if结构里, 你怎么办, 我给你答案:

dim a
a=inputbox(“请输入一个大于100的数”)
a=int(a) ””inputbox返回的是字符串, 我们把他变成整数
if a>100 then
msgbox(“正确”)
elseif a=100 then
msgbox(“老大, 你耍我?”)
else
msgbox(“错误”)
end if

  这次输入100看看, 是什么? else if语句可以在if结构中多次出现, 以灵活判断不同的情况 (如果你要判断得太多, 就请使用”选择结构”, 过会儿就讲), 当所有elseif都处理完了,而没有符合情况的时候再执行else中的语句.另一个例子:

Dim a,b,c,d
a=inputbox(“a是:”,”输入半径”)
b=Inputbox(“b是:”,”输入半径”)
d=Inputbox(“答案:”,”输入答案”)

c=a*2+b*2 ””这里没有问题, 会自动转换
if d=c then
Msgbox(“你好聪明”)
else
Msgbox(“你好猪头 自己的题还不会!”)
end if

  再看看这个, 无论你回答得多么正确你都是猪头, 哈哈, 不是我耍你, 还是文章开始时候的inputbox的返回类型在耍你, d是inputbox的返回值, 他是一个字符串, 而c是一次整数计算的结果, 他是一个整数. 一个字符串无论如何也不等于一个整数, 尽管他们字面上是一样的:”8″<>(不等于号)8 所以if的判断式的值永远是false, 总是执行else部分的语句. 我们可以这么修改

Dim a,b,c,d
a=inputbox(“a是:”,”输入半径”)
b=Inputbox(“b是:”,”输入半径”)
d=Inputbox(“答案:”,”输入答案”)
d=int(d)
””在这里我们取出了d的值, 变成整数, 在放回”d”这个盒子里
c=a*2+b*2
if d=c then
Msgbox(“你好聪明”)
else
Msgbox(“你好猪头 自己的题还不会!”)
end if

  这样就成功了. 这也是Inputbox函数的一个讨厌的地方, 没办法, vbs没有其他好的输入方式了.

  说到if, 我们不得不说一说逻辑运算符, 今天介绍两种, “and” 和 “or” 学会了if语句之后, 我举一个例子, 你一看就明白了.

dim a,b
a=inputbox(“输入一个数 >10″)
b=inputbox(“输入另一个数 >10″)
a=int(a)
b=int(b)
if a>10 and b>10 then
msgbox(“正确”)
else
msgbox(“错误”)
end if

  这段程序让你输入两个值, 必须都大于10, 只要有一个不大于, 就输出错误

dim a,b
a=inputbox(“输入一个数 >10″)
b=inputbox(“输入另一个数 >10″)
a=int(a)
b=int(b)
if a>10 or b>10 then
msgbox(“正确”)
else
msgbox(“错误”)
end if


  这段程序让你输入两个值, 只要有一个大于10, 就返回成功. 其实and和or很好理解, 我读”if a>10 or b>10 then” 这一句, 用华语是这样:”如果a大于10或者b大于10, 那么…”. 这样是不是就很好理解了呢.

  OK, 我们再来看一种新结构, 今天的课就结束, 已经午夜了, 我都累死了.

  当你的程序要处理很多种不同的判断情况的时候elseif..then会让程序看起来很杂乱, 所以就有了一种select case结构专门对付这种情况, select case的语法结构很简单:

select case 变量名
case 值
语句
case 值
语句
case else
语句
end select


  我们举个例子就能很简单的说明:

dim a
a=inputbox(“输入一个1–3的值”)
a=int(a) ””处理inputbox返回字符串的问题
select case a
case 1
msgbox(“壹”)
case 2
msgbox(“贰”)
case 3
msgbox(“叁”)
case else
msgbox(“输入错误”)
end select

  这个例子把1,2,3这三个阿拉伯数字转化成中国大写数字, 这个程序写成if…elseif 的形式如下

dim a
a=inputbox(“请输入1–3的值”)
a=int(a)
if a=1 then
msgbox(“壹”)
elseif a=2 then
msgbox(“贰”)
elseif a=3 then
msgbox(“叁”)
else
msgbox(“输入错误”)
end if

  怎么样, 麻烦吧, 还是select好吧.

  OK, 今天到此结束, 总结一下:


要点:

1) inputbox返回的是一个字符串, 而不是一个数, 必须用a=int(a)这种形式转化成数

2) bool变量的值只有两种:true,false

2.5) and两边的表达式都是true, 则返回true. or两边的表达式有一个是true, 就返回true

3) if 语句的格式

4) select…case的格式


作业:

1) 使用3个bool值, 储存你的3兄弟姐妹是否是男性 (提示:sister1male=false)

2) 给定一个个数, 大于10而且小于20输出”正确”, 否则输出”错误”

3) 输入12,或者15, 输出”正确”, 否则输出”错误”

4) 把5以内的正整数都转换成中国大些数字

5) 自己随便设计一个程序, 应用今天的知识

四篇(共六篇):



大家好, 昨天我休息了一天, 所以今天写第4章:循环结构

  我们先来看一道题:商场进行每日结算, 要求累加出今天的营业额, 每次输入一个数, 这道题其实很简单, 但就我们现在学

过的知识要完成这道题相当麻烦, 我们来分析一下. 首先, 我们需要知道买卖的次数, 这样才能控制输入的次数,但是, 这种设

计是非常低效的, 每天都要重新设计程序. 假定今天进行了5次交易, 以下是源程序:

dim sum
sum=0 ‘初始化变量
sum=sum + int(inputbox(“请输入交易额”))
‘sum=sum+x 这种形式是把本身的值取出来, 进行一次运算, 再放回本身, 这种方法很有用处
‘这里使用了函数嵌套, 把inputbox的返回值直接传给int函数, 转化成整数, 下同
sum=sum + int(inputbox(“请输入交易额”))
sum=sum + int(inputbox(“请输入交易额”))
sum=sum + int(inputbox(“请输入交易额”))
sum=sum + int(inputbox(“请输入交易额”))
msgbox(sum)

  看到了吗, 我通过把计算过程复制了5遍才设计好了程序, 这种程序在汽车交易所等交易次数少的地方还能凑合着用, 如果

放到超市岂不是要复制, 粘贴几千遍? 我们今天讲的内容就可以克服这种缺陷, 首先, 我们来讲以下Do…Loop语句.

  do…loop的结构看上去非常简单, 就是:do…loop, 仅此而已, 这个结构不断执行do和loop之间的语句(学名叫:循环体),
永不停止. 举个例子来说:

do
msgbox(“这个信息会不断重复出现, 要停止程序请使用任务管理器(Ctrl+Alt+Del)中止wscript进程”)
loop

  运行这个程序, 当你点销掉一个对话框马上会出来另一个, 你永远点不完, 总有下一个. 谁会运行这样的程序? 除非是给

别人捣乱(我就干过这种事), 所以在do..loop结构中还有一个语句:exit do, 这个语句将终止循环, 跳到loop后面的语句继续

执行. 据个例子来说:

dim a ‘注意:常量不需要在dim里面声明,否则会引发错误
const pass=”123456″ ‘这是一个字符串 请用”"包裹起来. 设定密码为常量, 不可变更
do
a=inputbox(“请输入密码”)
if a=pass then
msgbox(“密码校验成功”)
exit do
end if
loop

  这个程序会一直不停的问你密码, 知道你输入了正确的密码为止.(if可以嵌套在另一个if当中, 也可以嵌套在循环体当中

, 所以一定要用缩进, 来分清楚程序的各个部分). 这个程序是很经典的, 早期的程序都是这么做的. 但是我

Google网络相册正式推出

0

分类 : 业界动态 | 发表时间 15-06-2006

ps:昨天申请,今天收到邀请,上传了大概六十张图片,用时八分种,还不错
看看效果吧?都是平时收藏的一些壁纸
http://lh2.google.com/linkeronline/Unnamed02

Google在星期二启动了一个新服务,允许通过它的照片管理软件 Picasa 让人们在网上组织和共享照片。
Picasa Web Album 用来让人们轻松的上传和保存照片到网上,你可以设置上传的照片为公共的让任何人都可以看到,或设置为私人的,这样照片就不会在网上列出来,并且只能通过一个特列的链接让 Picasa 用户发送照片。
Picasa 的一个产品经理 Adrian Graham 说,用户可以发表对于每张照片的评论,大约一共可以保存1000张照片,或可以付费以获得更多空间。
照片会自动调整大小以适应屏幕,而且它们附近没有广告。照片是预载的以便很快显示出来,用户可以以1,600-像素的分辨率下载整个相册,这足够大到以4比6英寸打印。
同时别的公司也在发展网上相册服务。Photobucket 今天发布了 Photobucket Jwidget 工具,一个免费的插件,让任何网站为用户提供免费的照片和视频集。Photobucket 提供免费的照片和视频共享,而且让用户可以轻松的管理,并可以链接到社会网络、拍卖网站,博客和留言板。
上周雅虎也启动了一个新的雅虎照片网站的有限beta版,允许人们下载高分辨率的照片,用描述符分类,以便轻松的搜索和发表评论。雅虎还拥有 Flickr 照片网站,以照片分标签而普及。
现在你可以登录 http://picasaweb.google.com 先要获取邀请,激活邀请后,输入你的Gmail帐号,获得参加Picasa Web Albums 测试的机会,先到先得。按确定后网站要你下载最新测试版的Picasa,下载安装完毕你就可以在Picasa上通过点击软件下面工具栏中的 Web Album 按钮上传照片了。


杀毒–难道非要用软件(人毒大战的终级指南)

0

分类 : 技术文摘 | 发表时间 14-06-2006

杀毒——难道非要用软件?(人毒大战的终级指南)

在下Creamdog,可以算是一名熟练的C++程序员了,从业六年。曾尝试过写杀毒软件,仅限于对某一种或几种类似病毒的专杀。我的主攻是三维引擎和仿真领域的数据结构和算法,对杀毒软件这种体力活并不在行,因此没有过多的研究,但对于其机理还是有一定了解的。对于琳琅满目的杀毒软件我一向是不屑一顾,因为他们不仅不能够有效的防范、查杀,自己有时也有一些流氓行为,不仅让计算机性能极剧降低,占用了巨大的内存资源,更为可恶的是有时将病毒杀死后竟藏匿尸首,令人哭笑不得。我数年来从未用过任何杀毒软件杀毒,一切病毒靠人工查杀,机器没有一次因病毒而瘫痪,因此我在在预防和查杀上积累了一些经验,希望和朋友们分享。下面将从预防和查杀两个角度展开讨论,希望此文对于饱受病毒之苦的朋友有所帮助。

预防篇

一、98?ME?2K?XP?Vista!?
操作系统是最需要得到重视的,我估计至少有90%以上的病毒是通过各类操作系统漏洞而感染机器的,因此要想从根源上断掉病毒的根,务必从操作系统入手。我更情愿将机器抵抗病毒的能力比喻为人的免疫系统,而操作系统正像人类免疫系统的第一级——皮肤,因此选择一款安全的操作系统是非常重要的,下面是我对MS各操作系统的看法。98和ME已被我列入黑名单,MS实际上已经放弃了对它们的支持,不会再对其安全性做大的升级了,我想它们对于大家来说也没有什么值得留恋的,正如盖茨曾说的“一晃二十年,形式变了!”但如果你必须要使用,最好的防毒办法就是“物理断开”。网线是一定要拨掉的,光盘、软盘、MP3、移动硬盘……还是少插为妙。有人要问了,什么都不能用,我还用98/ME干嘛呀?是啊,我也不知道您非要用98/ME干嘛!我推荐使用2K和XP,尤其是XP。对于目前来讲,XP的安全性还是最高的,微软出任何补丁也是先给XP出。虽然XP有正版验证的问题,但总有办法破解的,下面我会提到。对于新出的vista,我抱有一定的期望。这一次它的发布又跳票到2007年的1月,可见MS对于其安全性之重视程度。希望在未来的几年,我们会过上高枕无忧,藐视病毒的日子。要想了解关于各操作系统的安全性的详细介绍,Google一下!不过我们下面还是来说现实的事吧。

二、更新•更新•再更新
如果windows的自动更新它总是跳出来,恭喜你,你的机器中毒的机率已经很小了!让机器的自动更新功能打开,时刻与微软保持一致,你将几乎不可能遭受到来自互联网的病毒攻击。如果您是新装的操作系统,强烈建议在安装任何程序,访问任何网站之前访问http://www.windowsupdate.com/,并按照提示安装各类更新,可能在安装的过程中重起,重起后需要再次访问,直到它报告你的机器暂时没有任何可用的更新。这时你的操作系统就是安全的了。但MS动用的正版优势计划无疑对于我们这些用D版的人来说是严重的打击,然而道高一尺魔高一丈,对于2K来说,正版验证实同虚设,根本不予正视。而XP就比较讨厌了,前几天MS又强化了验证的有效性,使得靠修改data.dat文件来更新的人一下子手足无措。但令人惊奇的是,MS依然没有封掉JS的调用,我们依然可以通过调用JS函数的方法来绕过正版验证。方法是先进入更新站点,停在第一个页面应该是有“快速”和“自定义”两个按钮,此时将下面的语法输入地址栏:java script:void(window.g_sDisableWGACheck=’all’),然后按回车,你回惊奇的发现——什么也没有发生。但此时您应当仰天大笑了,直接点“自定义”看看,根本就没有验证那回事了!另外有些朋友问我,为什么总是不能更新,开始我也觉得很奇怪,因为一切都对路,但总是提示没有打开那两个讨厌的服务——AutoUpdate&BackTrans——实际上服务正运行着。后来我才发现服务光开着是不行的,还需要将启动类型设为自动。设定后一切问题都立即烟消云散了。下面我们将面临一个是鸡生蛋还是蛋生鸡的问题,我们所面临的情况是每天都有上百种新病毒或其变种问世,每一秒种无数的病毒都在伺机对任何可能的端口发动攻击,然而我们才装的机子就像刚出生的小孩,没有任何抵抗能力,想直接去MS更新谈何容易,在更新期间中毒是再正常不过的事!幸好对于XP和2K来讲都有强大的更新合集,简称SP。希望大家在电脑正常的时候未雨绸缪,从官方下载之,约有一二百兆,可能对于网速慢的朋友来说比较大,但当您需要重装系统的时候,这是您唯一的“还魂丹”!XP目前是SP2,2K是SP4,注意版本。除了SP,随时下载小更新也是很必要的,如果你不清楚近期你的机器自动安装了什么更新,可以到控制面版的“添加删除程序”里查一下(注意,XP要点上面那个“显示更新”)。要下载的话,先记下它们的编号,一般是KBXXXXXX或QXXXXXX,然后到http://www.microsoft.com去搜索这个号就可以得到下载的地址了。这也许对英文有点抱歉的朋友来说是比较麻烦的事,但国内也有一些网站提供了定期的更新合集下载,可以一试。Google一下!

三、上网=中毒?
网页里经常暗藏杀机,对于机器来说,网页恶意程序是计算机的第二大杀手。我将它比喻为人类的呼吸系统,因为现在计算机不能停止上网就像人类不能停止呼吸一样,而人类的每一次呼吸都意味着可能染上可怕的疾病,比如时髦的SARS和禽流感。但不知您注意到了没有,我并没有在这里提到病毒二字,因为我这里所说的只是普通的网站网页,不包括网页上链接的程序,程序的问题下面会讲到。一般来讲网页能做的还没有那么多,顶多是各种脚本写成的恶意程序,并不具有传染性,因此不能称之为病毒。但千万别小瞧它们,让你的IE病到生不如死还是比较轻松的,他可能会修改你的注册表,让你不能够访问IE的属性;也可能不时弹出/关上你的光驱,让你惊恐万分;也可能将你在网上的信息散之天下;当然,最可怕的事就是只要你一开机就弹出无数的广告窗口让你无法使用。看到这里的朋友相信有很多都在咬牙切齿,谁又不是从这一步走过来的呢?当我们有了Maxthon这样的软件,真的一切问题都搞定了,能禁止下载的全部禁止,能屏蔽的广告全部屏蔽,我不相信单纯的网页又有多大的本事能够冲破Maxthon这个好卫兵的门关!

四、软件是可怕的寄主
如果您按照我上面所讲的内容将最基本的“皮肤”和呼吸这两关打好了预防针,其它的就比较好办了,因为我们致少可以保证在下面进行的查杀毒过程中不会二次中毒。俗话说“病从口入”,计算机也是这样的,第三道免疫的重点关卡“口”就是我们常用的各类软件。机器装的软件越多越杂,中毒的可能性就越大,因为现在各类软件就是病毒的最好寄主,尤其是从网页上下载的各种小软件。对于这类病毒攻击其实我也没有太好的办法,实际上,我的机器也常染上一些病毒,但一般的在发作之前就被我干掉了,因为我清楚的知道我装的软件向我机器上写入的每一字节数据,而做到这一点则需要很多年的经验,对于大多数涉网未深的网友又该如何是好呢?我想最好的办法还是自己谨慎。有几个原则要说明的,邮件里来的附
件一律不要打开;你并没想下载什么而自动跳出来让你下载的一律不要下载;网页上弹出的诱人的信息问你是否查看的一律要点“否”;凡是弹出来ActiveX要安装如果你不是非常的清楚并有安装的经验一律不要安装(Microsoft除外,那是自动更新);没有被其它网友推荐过的软件一律不要下载。能做到上面这几个一律的话,我想你已经将机器的第三道免疫关把的很死了。还有一点是不得不提的,那就是现在流行的一个新词汇——流氓软件。它们并非病毒,也非恶意程序,堂尔皇之的挂上官方的旗号,名正言顺的进驻您的机器,但它们从不干好事。无法干净的卸载事小,上网经时经常受到骚扰就很讨厌了,它们唯一的目的就是令所谓的“官方”获益。3721、中文上网、百度工具条、网络猪之流正是如此,要获得完整的流氓软件列表,请Google“流氓软件”。对于我本人来讲,因为业务需要,所以经常要试用一些陌生的软件,这也给病毒攻击带来了机会,然而对于大多数网友来说,计算机只不过一是台“游戏机”或“家庭影院”,其它能用到的功能用的并不多,因此一份各类软件的推荐列表是很重要的。我会尽快出这样一份列表,包括我能想得到的各类用途的软件,选出公认最好的一两种,附上官方下载地址,以帮助朋友们为机器把好免疫关。目前您要是想了解对于各类软件哪些是公认最棒的,还是那句老话:Google一下!

五、光盘、软盘、MP3、移动硬盘……
这是病毒攻击你的最后机会了,因为这些都是硬性插入你的机器而使你的机器得病的,所以我实在不想用人的免疫系统来比喻了,原谅我吧,那太可怕了。如果你的机器有最新的补丁,我想还是可以放心的打开它们的,只要不随意运行来历不明的程序。不过将所有的自动拨放都关掉还是很必要的!对于2K,自动拨放在设备管理器中,查看光驱的属性就可以取消。对于XP,在盘符上点右键,进入属性就可以设置,具体操作我不想多说了,那不是本文的重点,请自行Google。另外,如果你真的对机器的安全性要求很高,那么在你打开这些盘之前,最好还是先用命令提示符进入,看看根目录下有没有可疑的文件。这一步仅限有经验的朋友。

六、系统设置,无懈可击的境界
虽然免疫系统已经万无一失,但人的操作总会出现一些问题,导致病毒有可乘之机。那么从病毒攻击的手段上来讲,我们可以采取一些补救性的措施。将服务列表中没用的服务全部禁用是非常好的做法,尤其是像Task、Message这类服务是一定要禁用的,因为它们常被病毒所利用!偶尔会用到的服务尽量采用手动启动,这样会为将来的查毒提供方便。有关各服务的详细说明,网上到处都是,Google一下就可以得到。请朋友们根据自己的需要设定吧!我的服务列表里自动运行的服务只有二十来个,这已经足够了。另外可能被病毒攻击的地方就是各种即时通讯软件。QQ这样有一定流氓性质的软件,用起来一定要小心,任何人发来的信息中包括的链接不要随便点,实在要看的话,复制到Maxthon里,在所有屏蔽功能打开的状态下前往,这样您将会得到最有效的安全保障。其它可能会自动上网更新的软件,尽量设置为不自动更新,有时他们的行为会令你摸不着头脑,甚至会被误判为病毒,为查毒操作带来相当大的干扰。定期去官网更新是最安全的方式。

到此为止,预防的工作您已经作的很好了,任何的杀毒软件、防火墙(包括XP自带的)你都可以藐视之,并笑傲江湖。但天有不测风雨,再好的免疫系统也有失效的时候,如果您真的由于操作不慎而导致不幸中招,那就请看下面的查杀篇。记得,查杀只能是一种补救措施,而且任何查杀的措施都只能在预防措施完善的情况下进行,因此防患于未燃才是最重要的。


查毒篇
一、工具
虽然不用杀毒软件,但并不意味着不使用任何工具。要想有效的处理病毒,有两类软件是必不可少的,一是进程管理,二是安装监控。进程管理软件目前最好用的是ProcessExplorer,Google一搜就有,它是完全免费的,请前往官方网站下载最新版。安装监控软件我并不想给大家推荐完美卸载之流的软件,因为他们本身都有一定的缺陷,但这类软件对于新手来讲还是必要的,至少可以让你看到一个安装程序运行的每一个细节,以积累一些查毒经验。我推荐使用的是RegMon软件,它也是完全免费的,并且功能强大,可以随时监控任何程序对注册表进行的任何读、写、创建等操作,这是我们将病毒清理干净的一把利刃,请前往官方网站下载最新版。以上就是我仅仅推荐的两款软件,都是很小的绿色软件,大家放心使用吧!

二、半自动实时监控
我们对于病毒最大的问题是如何知道病毒程序正在运行,这也是电脑新手面临的最大难题,他们往往借助于各类杀毒软件。但这不仅于事无补,并且会导致你的机器性能大幅下降。我做过测试,在同样的机器,上同样时长的网,开杀毒软件导致的用电量都将比不开杀毒软件高出30%左右,这太可怕了。众所周知,我国目前的电能资源极度紧缺……。好,朋友们会问了,不用杀毒软件你怎么知道机器被病毒感染了?我想告诉你的是每一台计算机都有两套天生的病毒警报装置,一套就是机箱上的HDD端口(硬盘)指示灯。学会观查指示灯状态,听辨硬盘的读盘声是非常重要的,也并不很难。首先我们要明确的知道我们现在正在机器上做什么,用到的程序是否会大量的读写硬盘。显然,没有任何一种应用软件在使用的时候会从头到尾不停的读写硬盘(磁盘碎片整理程序等除外),事实上运行大多数程序时,绝大多数时间硬盘也应该只是处于偶尔闪烁一下的状态,包括听歌、看电影、写文档、上网下载甚至是打游戏!但如果硬盘灯在不停的闪,并不断的发出“巨大”的响声,而你并没有进行很复杂的操作,那你的机器就很可能有危险了。排除检测法是很必要的,当你发现机器的硬盘不正常的运作,请将所运行的程序一个个的关掉,直到硬盘工作状态缓和下来。这样就很可能发现原来是某一个程序整在干“坏事”,不过当你把所有的程序都关掉时硬盘仍然在不停的运作就是令人感到非常不安的信号,这时您就应该高度的警惕了!另外一套自动警报装置来自于系统的响应效率。如果你发现你并没有运行什么操作繁杂的程序,但机器却变的很慢,甚至连打开“我的电脑”都要花一些时间的话,我将不幸的告诉您,您的机器八成是中毒了。效率低也可能分几种情况,比如时不时的顿一下,或着每次开机需要很长时间等,这都应该引起我们的注意。当然很多病毒在潜伏期是很安静的,对于这种病毒我们又如何才能发现呢?这确实是一个问题,但很有经验的朋友并不会为此感到担心,因为只要是病毒总会做出一些细小的动作,如果您对你的机算机上任何一个程序的运行过程都了如直掌的话,那病毒隐蔽的再好也不可能逃过你的眼睛。当然这需要长期积累的经验,没有经验的朋友请看下面的内容吧,一台高效病毒监控仪将会成为病毒最残忍的克星!

三、每一个进程都是我们的朋友
孙子曰“知己知彼,百战不殆”,我们必须

网络钓鱼最常用八大作案手法

0

分类 : 系统安全 | 发表时间 14-06-2006

近年来各式各样的网络诈骗案件层出不穷,假冒工商银行、假冒购物网站不知夺取了多少人的血汗钱,针对这一现象,有人形象地称之为“网络钓鱼”,很不幸的是,不法分子利用我们的疏忽屡屡得逞,今天笔者整理出目前最常用的网络钓鱼的八种作案手法,希望大家能够引以为戒,擦亮双眼,保护好自己的网络。



愿者上钩

什么是网络钓鱼

网络钓鱼(Phishing)一词,是“Fishing”和“Phone”的综合体,由于黑客始祖起初是以电话作案,所以用“Ph”来取代“F”,创造了“Phishing”。

“网络钓鱼”攻击利用欺骗性的电子邮件和伪造的Web站点来进行诈骗活动,受骗者往往会泄露自己的财务数据,如信用卡号、账户用户名、口令和社保编号等内容。诈骗者通常会将自己伪装成知名银行、在线零售商和信用卡公司等可信的品牌,在所有接触诈骗信息的用户中,有高达5%的人都会对这些骗局做出响应。

在美国和英国已经开始出现专门反网络钓鱼的组织,越来越多在线企业、技术公司、安全机构加入到反“网络钓鱼”组织的行列,比如微软、戴尔都宣布设立专案分析师或推出用户教育计划,微软还捐出4.6万美元的软件,协助防治“网络钓鱼”。

网络钓鱼最常用的八大作案手法汇总介绍:

1、网上拍卖不给商品

  美国联邦贸易委员会最新公布的《扫荡网络诈骗》报告中,列举了全球十大最流行、最猖獗的网上欺诈手法,其中以网上拍卖名列榜首,受害人大多数是中标付款后却收不到商品。据2002美国全国消费者协会调查,去年一年,美国有41%的网上拍卖交易买方投诉被骗,人均损失326美元。而据IFCC调查,网上拍卖活动中发生的诈骗案件占全部网上诈骗案件的43%。

  这种最直白的行谝手法居然在我国也大行其道。山东泰安的王先生,他在雅宝拍卖网上通过网上竞价的方式购买了一部Nokia8810手机。汇款给卖主后,王先生就和这位名叫“kiss590069”的物主失去了联系。后经调查发现:这位“kiss590069”还通过类似的方法,骗取了另外四位网友的钱。在警方的介入下,才得以挽回了损失。类似的案例在网上比比皆是。

·别上钩 网络钓鱼最常用八大作案手法

2、发送电子邮件以虚假信息引诱用户中圈套

如去年2月份发现的一种骗取美邦银行(SmithBarney)用户帐号和密码的“网络钓鱼”电子邮件,该邮件利用了IE的图片映射地址欺骗漏洞,并精心设计脚本程序,用一个显示假地址的弹出窗口遮挡住了IE浏览器的地址栏,使用户无法看到此网站的真实地址。当用户使用未打补丁的Outlook打开此邮件时,状态栏显示的链接是虚假的。

当用户点击链接时,实际连接的是钓鱼网站http://**.41.155.60:87/s。该网站页面酷似SmithBarney银行网站的登陆界面,用户一旦输入了自己的帐号密码,这些信息就会被黑客窃取。

3、建立假冒网站骗取用户帐号密码实施盗窃

犯罪分子建立起域名和网页内容都与真正的网上银行系统、网上证券交易平台极为相似的网站,引诱用户输入账号密码等信息,进而通过真正的网上银行、网上证券系统或者伪造银行储蓄卡、证券交易卡盗窃资金;还有的利用跨站脚本,即利用合法网站服务器程序上的漏洞,在站点的某些网页中插入恶意Html代码,屏蔽住一些可以用来辨别网站真假的重要信息,来窃取用户的真实信息。

例如,曾出现过的某假冒银行网站,网址为1cbc.com.cn。而真正银行网站是icbc.com.cn,犯罪分子利用数字1和字母i非常相近的特点企图蒙蔽粗心的用户。

又如2004年7月发现的某假网站(网址为1enovo.com)而真网站的网址为lenovo.com,诈骗者利用了小写字母l和数字1很相近的障眼法。通过QQ散布“XX集团和XX公司联合赠送QQ币”的虚假消息,引诱用户访问该假网站。

用户一旦访问该网站,首先生成一个弹出窗口,上面显示“免费赠送QQ币”的虚假消息。而就在该弹出窗口出现的同时,恶意网站的主页面就会在后台通过多种IE漏洞下载病毒程序lenovo.exe(TrojanDownloader.Rlay),并在2秒钟后自动转回到真正的网站主页,使用户在毫无觉察中就感染了病毒。

病毒程序执行后,将下载该网站上的另一个病毒程序bbs5.exe,用来窃取用户的传奇帐号、密码和游戏装备。当用户通过QQ聊天时,还会自动发送包含恶意网址的消息。

4、利用虚假的电子商务进行诈骗

从事这类网络诈骗活动的不法分子,大都采用在知名电子商务网站如“易趣”、“淘宝”、“阿里巴巴”等,发布虚假信息,以所谓“超低价”、“免税”、“走私货”、“慈善义卖”的名义出售各种商品。很多人在他们低价的诱惑下上当受骗。

由于网上交易多是异地交易,通常需要汇款。不法分子一般要求消费者先付部分款,再以各种理由诱骗消费者付余款或者其他各种名目的款项,等到钱款或他们的伎俩被识破时,就立即切断与消费者的联系。

·别上钩 网络钓鱼最常用八大作案手法

5、利用木马和黑客技术窃取用户信息后实施盗窃

木马制作者通过发送邮件或在网站中隐藏木马等方式大肆传播木马程序,当感染木马的用户进行网上交易时,木马程序即以键盘记录的方式获取用户账号和密码,并发送给指定邮箱,用户资金必然受到严重威胁。

去年网上出现的、盗取某银行个人网上银行帐号和密码的木马Troj_HidWebmon及其变种,它甚至可以盗取用户数字证书。又如去年出现的木马“证券大盗”,它可以通过屏幕快照将用户的网页登录界面保存为图片,并发送给指定邮箱。黑客通过对照图片中鼠标的点击位置,就很有可能破译出用户的账号和密码,从而突破软键盘密码保护技术,严重威胁网上证券交易安全。

6、网址欺骗

网址欺骗是网络骗子利用人们很难记住众多网址的特点,采用以假乱真的手法进行的又一种“网络钓鱼”诈骗活动,中国一名捐款者用搜索引擎查找到一个名为“中华慈善总会”的网站chinacharity.cn.net,结果却发现真网址应该为chinacharity.cn。前者比后者只多了个net,已经完全到了以假乱真的地步。

7、利用用户弱口令等漏洞破解猜测用户帐号和密码

不法分子利用部分用户贪图方便的特点,在一些网站设置弱口令的漏洞,对银行卡密码进行破解。如2004年10月,三名犯罪分子从网上搜寻到某银行储蓄卡卡号,然后登陆该银行网上银行网站,尝试破解了弱口令,并屡屡得手。

8、利用手机短信进行诈骗

手机的普及使犯罪分子觉得利用手机短信进行诈骗,十分方便而又快捷。于是,近年来利用手机短信进行诈骗的活动猖獗起来。由一部储存着手机号码的电脑控制的“群发器”,平均3秒就发出一条短信息。

而更令人震惊的是,被视为高度机密、连警方办案都提取不到的各省市移动电话号码分段表,在犯罪分子的电脑里居然可以查到。不仅如此,作案者的电脑里的控制软件还有自动识别功能。尾数为“8888”等吉利数
字的手机,给它发出的短信“中奖奖品”起码是一辆汽车。软件设计者显然知道,用数字吉利的电话号码者多是有钱人。而这些犯罪嫌疑人利用自制的手机短信群发器,在1分钟内就可以向全国各地发出一万条诈骗信息,如果一万个人中有几个人上当,他们的收入就很可观了。

小结:

也许有人会感觉这种“网络钓鱼”防不胜防,因为它们实在太逼真、太具有诱惑力了,不法分子恰恰抓住了我们疏于防范,喜欢贪图小便宜的弱点。所以,提高警惕是我们最好的解决办法,对来历不明的邮件、弹出的网页或陌生人的短消息都要格外注意,千万别上钩。


无觅相关文章插件,快速提升流量