Archive for ‘ 六月, 2003

Cookie 是什么?

很多网站在你浏览网页之后,会在你的电脑系统中留下一些小小的档案,也就是所谓的 Cookie。当你再去浏览这些网站时,系统便会去读取这些 Cookie 再更新一遍。

Cookie 不是“饼干”,Cookie 是服务器暂存在你电脑上的一笔资料,好让服务器用来辨认你的电脑。就好比是格林童话故事中,沿途撒下面包屑避免在森林中迷路的小孩。

为什么需要 Cookie?

HTTP 的协议本身是“无记忆状态 (Stateless) ”的,无论是用户端还是网页服务器,每一个页面都没有关联,每一次的请求都是单独的请求。服务器借由 Cookie 来让同一个用户的各项操作都可以产生关联。

当你在浏览网站的时候,服务器会先送一小小资料放在你的电脑上,Cookie 会帮你在网站上所打的文字或是一些选择都纪录下来。当下次你再光临同一个网站,网页服务器会先查看有没有上次留下的 Cookie 资料,有的话,就会依据 Cookie 里的内容来判断用户,送出特定的网页内容给你。

Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie 来识别用户,以方便送出为用户量身而做的内容,像是 Web 接口的免费 email 网站,都要用到 Cookie。

Cookie 会不会有危险?其实 Cookie 中记载的资料相有限,Cookie 是安全的。网站不可能经由 Cookie 获得你的 email 地址或是其他私人资料,更没有办法透过 Cookie 来存取底的电脑。

但是如果你实在不喜欢网页服务器乱丢饼干(Cookie)到你家,当然可以让浏览器拒绝网站存放 Cookie 到你的电脑。

IE 浏览器从“工具”选单 → Intertnet 选项 → 安全性,按“自订层级”,到 Cookie 的部分,全都设为关闭,按确定,关闭浏览器,再重新启动浏览器即可。

当你关闭 Cookie 之后,很多网站的个人化服务功能很可能也不能再使用了。

IE 的 Cookie 默认存放位置是在:C:\WINDOWS\Temporary Internet Files

你可以直接删掉这里面的东西或是利用“Internet 选项”里的清除档案按钮来清除。

Cookie 的内容

大家想不想知道哪个网站有设 Cookie?你的 Cookie 资料又为何?其实,用一行简单的 JavaScript 指令就可以一清二楚了。

首先,开启一个网站,例如 http://www.google.com ,一旦网站开启后,在浏览器的位址列中输入以下的一行 JavaScript 指令:

javascript:alert("Cookie:"+document.cookie)

javascript:document.write(document.cookie)

按下 Enter 后,你会见到跳出一个小警告视窗,上面便会标明出你的 Cookie 资料。试试看吧! 当然,如果你的浏览器的 Cookie 功能被关闭,那你当然就见不到囉。

比较新的浏览器 Chrome 与 Firefox 都有内建“开发人员工具”,只要按 F12 开启“开发人员工具”,可以在“Application”或“储存空间”页签看到网站所储存的 Cookie 内容。

什么是 Session?

讲到 Cookie 就会有人提到 Session。

Session 的资料是存放在 Web 服务器端。用解释的不好解释,我们先来举个例子...

有一家咖啡店要举办咖啡买三送一的活动,若以“Cookie”或“Session”的作法来看:

  • Cookie:
    相当于是店家发给你一张“小卡片”,每次你来买一杯咖啡就在卡片上盖个印章,集满三个印章,那咖啡店就会送你一杯免费的咖啡。
    其中,购买咖啡的记录是留在你携带的卡片上,如果卡片遗失你的记录就不存在了。
  • Session:
    相当于是店家请你加入他们的会员,然后发给你一张“会员卡”(Session ID)。每次你拿会员卡来买咖啡都会在公司的电脑里留下记录,买了三杯咖啡就会送你一杯免费的咖啡。
    其中,购买咖啡的记录是储存在店家的电脑里,如果会员卡遗失了可以透过核对会员的资料来重新取得会员卡。未来这张会员卡甚至可能在它的连锁店使用。

可以说,Cookie 只做一件事,就是存取服务器暂存在客户端的资料。而 Session 则是一个涵盖范围比较广、比较完整的保存机制。并且 Session 仍需借由 Cookie、网址或表单...等三种方式来识别用户的 Session ID,才能接续之后服务器要做的事情。

只要“网站是将任何用户的资料储存在服务器,并且用 Cookie、网址或表单来识别单一用户”,这样就已经是在实作 Session 了。由于“识别用户”是很普遍的功能,你所使用的程式框架 (Framework) 有可能在无声无息之中就已经帮你完成整个机制了,你只要把心思用在程式的其它部份即可。

参考网页

[Perl]安装 ImageMagick 相关模组 *

ImageMagick 是个功能强大的图片工具,让你读取、写入、操作任何热门的图片格式,如 GIF、JPEG、PNG、PDF… 等。使用 ImageMagick 可以即时的建立 GIF 的图片档案,让图形可以更融入网页等应用接口。你也可以更改图片的大小、反转图形、增强亮度、减少颜色对比、加入额外特殊的效果。图片可以储存不同的格式依你的工作需求。
Read more

Redhat Linux 7.3 快速安装指引 *

教你快速安装 Redhat Linux 7.3…

特点及功能如下

  • 使用单纯的结构,以提供主流服务,系统将不安装 X-Window 接口。
  • 具备 ProFtp、Sendmail、Webmail、web 及数据库 (MySQL) 的服务。
  • 可使用浏览器在线上做系统管理 (WebMin)、数据库维护 (phpMyAdmin) 及流量监控 (Mrtg)。
  • 每天与时间服务器对时。
  • 每周自动更新系统的套件。

Read more

将邮件服务器换成 Postfix + pop-before-smtp *

故名思意,pop-before-smtp 就是在 smtp 前,先用 pop3 的帐号登入,以确保服务器上有你的帐号。以下的步骤,先将 Sendmail 换成 Postfix,再将 smtp 的认証则改用 pop-before-smtp 的方式。

安装 Postfix

  • 先移除 sendmail:
  • apt-get remove sendmail
  • 使用 apt 安装 postfix:
  • apt-get install postfix
  • 编辑 /etc/postfix/main.cf,搜寻之参数及修改方式如下:
  • myhostname  ->  host.example.com
    mydomain  ->  example.com
    myorigin  ->  $myhostname
    inet_interfaces  ->  all
    mydestination  ->  /etc/postfix/local-host-names
    mynetworks  ->  127.0.0.0/8, hash:/etc/postfix/access
    relay_domains  ->  $mydestination
    alias_maps  ->  hash:/etc/postfix/aliases
  • 设定本机收件时的领域名称,将领域名称新增到 /etc/postfix/local-host-names,每个名称占一行:
  • example.com
    mail.example.com
    host.example.com
  • 初始化相关数据库:
  • postmap hash:/etc/postfix/access
    postalias hash:/etc/postfix/aliases
  • 至此已完成 Postfix 的安装,直接启动 Postfix 即可:
  • service postfix start

    安装 pop-before-smtp

    顾名思义,pop-before-smtp 就是在寄信前,必须先用 pop3 检查邮件,只要 pop3 登入正确,你就可以用同一台服务器寄信 (30分钟内)。安装步骤如下:

  • 安装 Perl 的 File::Tail、Time::HiRes、Net::Netmask、Date::Parse 模组,建议使用 WebMin 安装,或执行下列指令:
  • perl -MCPAN -e 'install File::Tail'
    perl -MCPAN -e 'install Time::HiRes'
    perl -MCPAN -e 'install Net::Netmask'
    perl -MCPAN -e 'install Date::Parse'
  • 从本站下载 pop-before-smtp 的安装档至 /tmp,并执行安装:
  • cd /tmp
    wget http://www.vixual.net/download/source/postfix/pop-before-smtp-1.33-1.noarch.rpm
    rpm -ivh pop-before-smtp-1.33-1.noarch.rpm
  • 编辑 /etc/pop-before-smtp-conf.pl,将下列三行前的注解 # 拿掉:
  • #$file_tail{'name'} = '/var/log/maillog';
    #$grace = 30*60;
    #$dbfile = '/etc/postfix/pop-before-smtp';
  • 编辑 /etc/postfix/main.cf,在最后面加上:
  • smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient,check_client_access hash:/etc/postfix/pop-before-smtp,check_relay_domains
  • 启动 pop-before-smtp,并重新加载 postfix:
  • service pop-before-smtp start
    service postfix reload

    用 postfix 及 vm-pop3d 建立虚拟电子信箱 *

    所谓的“虚拟电子信箱”指的是用户在服务器上没有实体的帐号,但是却可以透过 POP3 或是 Open Webmail 来使用电子邮件服务。这样的组态,一方面比较不会有安全性的问题,同时也可以在一部服务器上支援较多的用户。

    Read more

    安装 JSP 环境 - resin *

    resin 可让 Linux 支援 JSP 的环境,系统必须先安装 Sun 的 J2SDK 之后,再安装 resin。而 resin 已是一个可独立执行的网页服务器,相较于另一套 JSP 服务器 “tomcat“,resin 的稳定度及效能都有比较好,但需注意的是,resin 只有在你用来发展程式的过程时是免费的,其它用途都要付费。

    安装 Java 环境

    从本站下载 J2SDK 的安装档到 [/tmp],并执行安装:

    cd /tmp
    wget http://www.vixual.net/download/source/jsp/j2sdk-1_4_1_02-fcs-linux-i586.rpm
    rpm -ivh j2sdk-1_4_1_02-fcs-linux-i586.rpm

    安装 resin

  • 从本站下载 resin 2.1.9 的原始档到 [/var],并解压缩:
  • cd /var
    wget http://www.vixual.net/download/source/jsp/resin-2.1.9.tar.gz
    tar -xzvf resin-2.1.9.tar.gz
    mv resin-2.1.9 resin
  • 将 Java 及 resin 的相关路径加到环境变量,请编辑 /etc/profile,在档案最下方加入:
  • PATH=$PATH:/usr/java/j2sdk1.4.1_02/bin
    export JAVA_HOME=/usr/java/j2sdk1.4.1_02
    export CLASSPATH=$JAVA_HOME/lib
    export RESIN_HOME=/var/resin
  • 重新加载 /etc/profile:
  • source /etc/profile
  • 启动 resin:
  • /var/resin/bin/httpd.sh start
  • 安装成功,连结网址: http://host.domain.tld:8080/
  • 启动与停止 resin

  • 启动 resin:
  • /var/resin/bin/httpd.sh start
  • 停止 resin:
  • /var/resin/bin/httpd.sh stop
  • 重新启动 resin:
  • /var/resin/bin/httpd.sh restart

    变更监听埠

    resin 默认的监听埠是 “8080″,如果你想要变更埠号,请编辑 /var/resin/conf/resin.conf,找到 port=’8080′,将它改成你想要的埠号 (应避免与 apache 的 80 埠或其它服务的埠号相冲突),再重新启动 resin 即可。

    将系统的 ftp 服务换成 ProFTP

    Redhat Linux 7.3 默认的 ftp 服务是采用 wu-ftpd,虽然 wu-ftpd 在效能上,一直有不错的表现,程式版本更新的速度也不慢,不过,它却不是一个够安全的系统。ProFtpd 的发展,一开始便是定位在成为一个安全且容易设定的 ftp 服务器程式,它的风格及表现,深得许多网管人员的喜爱。如果您想找一个不错的 ftp 伺服程式来取代 wu-ftpd,试试 ProFtpd 吧…
    Read more

    NTP - 校正 Linux 时间

    NTP 可以让您与远端的时间服务器同步,以校正 Linux 系统的时间。
    Read more

    MRTG 快速安装法 *

    MRTG 主要是用来侦测主机上的资料流量,将流量绘制成漂亮的统计图表。另外,我们也可以自行写一些 SCRIPT,加挂于 MRTG 上,只要你提供给 MRTG 它两个数值,它就可以做为流量的依据,帮我们产生统计图表。
    Read more

    用 APT 来更新 Linux 的系统套件

    Apt 就像 Microsoft 的 WindowsUpdate 及 RedHat 的 up2date,它强化 RPM 的功能,可以解决 RPM 有套件相依性的问题。安装 Apt 除了可以让你很方便且快速地安装 RPM 套件之外,你也可以用它来更新系统。而且 Apt 不需注册,完全免费,更可以安装非 RedHat 提供的套件 (跟你指定的来源服务器有关)。

    安装 Apt 并更新系统

    1. freshrpms 下载最新版的 apt,下载符合下一个步骤中相同名称的 rpm 套件。
    2. 依序安装:

      rpm -Uvh apt-x.x.x-x.rh73.i386.rpm
      rpm -Uvh apt-devel-x.x.x-x.rh73.i386.rpm
      

      安装完成之后,其执行档为 /usr/bin/apt-get,相关设定档放在 /etc/apt/。

    3. 编辑来源服务器设定档 /etc/apt/source.list,检查档案的内容,因为本站安装的是 RedHat Linux 7.3 的版本,所以应该要有下面的资料:
      # freshrpms.net
      rpm http://ayo.freshrpms.net redhat/7.3/en/i386 os updates freshrpms
      rpm-src http://ayo.freshrpms.net redhat/7.3/en/i386 os updates freshrpms
      
    4. 更新系统:
      apt-get update
      apt-get -y upgrade
      apt-get clean
      
    5. 以后如果要安装套件,可以输入:
      apt-get install <套件名称>
      

    常用参数

    • update: 与来源服务器(source.list)资料比对,更新套件的资讯。
    • check: 检查目前主机上套件的相依性。
    • upgrade: 进行主机上所有套件的升级。
    • dist-upgrade: 进行主机上所有套件的升级。
    • install <套件名称>: 下载及安装套件,若有相依属性的套件则会询问你是否一并安装。
    • remove <套件名称>: 移除套件,若有相依属性的套件则会询问你是否确定要移除。
    • source <套件名称>: 下载 Source 套件。
    • clean: 清除下载回来的档案。
    • -f install: 检查系统套件的相依性,并修正错误。
    • -y: 程式执行中,若有任何询问皆自动回答 “Yes”。

    让系统每周都能自动更新一次

    • 于 /etc/cron.weekly/ 新增一个指令档 “upgrade.sh”,内容如下:

      #! /bin/bash
      apt-get update
      apt-get -y dist-upgrade
      apt-get clean
      
    • 更改档案属性为 755:
      chmod 755 /etc/cron.weekly/upgrade.sh
      

    参考网址

    return top