2008年12月23日 星期二

$_SERVER['HTTP_REFERER'] & $HTTP_SERVER_VARS['HTTP_REFERER'] 筆記

$_SERVER['HTTP_REFERER'] & $HTTP_SERVER_VARS['HTTP_REFERER']這兩個變數,是用來存放使用端瀏覽器存取上一頁面的URL資訊,如果不存在上一頁的URL,則這兩個變數不存在。

應用:
檢查訪客必須是由某個URL連入,否則無法存取資料。

安全上的問題:
1.在存取這兩個變數前最好使用isset()來確定變數是存在的。
2.HTTP_REFERER是由用戶端的瀏覽器軟體所傳送的,所以有可能被竄改,會有安全上的疑慮。

參考文件:http://tw2.php.net/manual/en/reserved.variables.server.php

2008年12月19日 星期五

PHP 中 include 和 require 的差異

include 引入檔案失敗時或所引入檔案執行錯誤時,程式不會停止執行,產生一個 Warning訊息
require 引入檔案失敗時或所引入檔案執行錯誤時,程式會停止執行,傳回Fatal error訊息

參考文件:http://tw2.php.net/include/

2008年12月17日 星期三

.rhosts 和 hosts.equiv 的差異

~.rhosts 和 /etc/hosts.equiv 都是設定 rlogin 的信任關係但之間還是有些許差異,端看用途、目的有不同的使用方式

/etc/hosts.equiv:不同主機間的信任關係 

~/.rhosts :同一帳號在不同主機間的信任關係 

hosts.equiv 格式: 

HOST USERNAME

 IP USERNAME 

可以用 "+" 表示所有,如 HOST + 表示從HOST 主機來的所有用戶

 root 帳號必須編輯 /etc/securetty
加入 rsh rlogin 

其他相關檔案 

 /etc/hosts.allow 

/etc/hosts.deny

 

2008年12月16日 星期二

加速改進PHP效能的方法

以下是利用Cache或編碼的方式達到加速改進PHP效能的方法
1.PHP PECL extension - APC(Alternative PHP Cache)
http://pecl.php.net/package/APC

2.PHP PECL extension - memcache
http://pecl.php.net/package/memcache

3.memcached (使用記憶體)
http://www.danga.com/memcached/

4.JPCache (使用網頁壓縮技術)
http://www.jpcache.com/

5.Turck MMCache
http://turck-mmcache.sourceforge.net/

6.eAccelerator
http://eaccelerator.net/

7.The ionCube PHP Accelerator
http://www.php-accelerator.co.uk/

8.Zend Optimizer
http://zend.com/store/products/zend-optimizer.php

PHP bytecode Compiler

bcompiler是PHP PECL中的extension,可用來加密PHP原始碼

安裝方式
1.bcompiler必須使用 bzip2 的模組,安裝前確定已經載入。

2.下載bcompile
http://pear.php.net/get/bcompiler

3.解開 bcompiler-xxx.tar.gz

4.執行以下命令
phpize (若無此指令則先安裝 php-devel 套件)
./configure
make
make install

5.修改設定組態檔 php.ini
extension_dir=/usr/lib (或 /usr/lib64/php/modules/)
extension=bcompiler.so

6.檢查一下模組 bcompiler 及相關模組 bzip2 已經載入
php -m