Archive for ‘ 六月, 2003

Cookie 是什么?

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

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

为什么需要 Cookie?

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

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

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

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

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

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

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

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

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

Cookie 的内容

部份网友对 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) 有可能在无声无息之中就已经帮你完成整个机制了,你只要把心思用在程式的其它部份即可。

参考网页

安装 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