[PHP] 善用 ignore_user_abort() 函式

話說最近在為了上傳圖片經過縮圖的時間來煩惱,只不過我在想,為甚麼我上傳圖片還要等待縮圖時間才可以,然而無名小站,只需要上傳時間,縮圖是在它機器背景執行,後來發現一個函式非常好用,那就是

ignore_user_abort(true);

http://tw2.php.net/manual/tw/function.ignore-user-abort.php 無名在上傳圖片的php檔案,肯定有加上這個函式,他的好處是使用者如果關掉瀏覽器,但是php還是會繼續執行,也就是無名可以把檔案上傳之後,重新導向到使用者的相簿,程式可以如下

ignore_user_abort(true);
set_time_limit(0);
for($i = 1; $i < 6; $i++){
if($_FILES['userfile' . $i]['size']){
/*
上傳圖檔寫在這裡
*/
}
}
//上傳好導向相簿
if($_POST['mode'] == 'add'){
header("Location:index.php");
}
/*
然後這裡在進行縮圖,他就會在背景中執行
*/
if($_POST['mode'] == 'add'){
for($i = 1; $i < 6; $i++){
convert_sh($upload_floder,$file_name[$i],$small_size[$i]);
}
}
?>
其實 ignore\_user\_abort(true); 根本就是變相的 unix 底下的 crontab ,還蠻好用的,好處很多,不過用的地方要注意就是了,並不是每個php檔案都需要用這個函式。
php 

如何擋掉 google, 大陸百度 搜尋引擎

發現google實在強了,他不只可以讓你網站曝光,如果你上傳一些重要的檔案放在網路上,只要沒有經過帳號密碼的機制,讓google知道你的絕對路徑,那個檔案就完蛋了,因為google還會暫存到他的機器,順便還幫你轉成 html ,夠屌了吧,所以我認為唯一最終解決辦法,就是自己寫一隻下載檔案的function,然後下載檔案都要透過該程式然後在header出來,這樣才不會被google弄到檔案,囧。 當然要如何擋掉搜尋引擎,方法如下,在自己網站底下新增 .htaccess #擋掉百度 SetEnvIfNoCase User-Agent “^Baidu” bad_bot SetEnvIfNoCase User-Agent “^sogou” bad_bot SetEnvIfNoCase User-Agent “^Bloghoo” bad_bot SetEnvIfNoCase User-Agent “^Scooter” bad_bot Deny from env=bad_bot #擋掉google SetEnvIf User-Agent “^Googlebot” google Deny from env=google 其實還有另外一種方法,那就是用 robots.txt 如何攔截 Googlebot?,這個方法也不錯 擋掉的結果如下: 66.249.70.107 - - [20/Jun/2007:15:30:11 +0800] "GET /store/market_list.php??bid=&year=2009&month=10 HTTP/1.1" 403 999 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 61.135.162.53 - - [20/Jun/2007:14:41:00 +0800] "GET /web/news_show.php?bid=30&newsid=189&list= HTTP/1.1" 403 1003 "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)" 看到 403 就對了,不過會看到比較多百度的 可以參考底下這篇討論,相當不錯 [求助]Bot 如果要測試的話,可以利用 fx 的 user. [Read More]

[Apache] 使用者只能使用 https 進入 mod_rewrite force ssl 進階設定

最近館內機器我想全部使用上ssl機制會比較安全,之前剛來到 國史館台灣文獻館 的時候,有研究助理對我不爽,說什麼我開發的薪資管理系統,沒有ssl機制,會出現漏洞,囧導至系統目前只有我在用,哈哈,不過這不是重點重點是接下來的介紹啦 首先要看看你的機器是否有支援 mod_ssl 目前我用的機器是 CentOS 4.4 所以指令如果有所改變,請自行debug

cat /etc/httpd/conf/httpd.conf | grep rewrite LoadModule rewrite_module modules/mod_rewrite.so 這樣代表有支援了,那如果沒有支援呢,請用下面指令來新增

yum install mod_ssl

[Read More]

[apache] mod cband 頻寬限制

這個MODULE相當好用,這個可以用來解決架設APACHE頻寬問題 安裝方式: For Linux: 先去下載軟體: mod_cband 目前釋出到 0.9.7.5版 下載到 /tmp/ 資料夾裡面 解壓縮: tar -zxvf mod-cband-0.9.7.5.tgz 如果你有安裝 apsx2的話 請用下面安裝 $ cd mod-cband-0.9.7.5 $ ./configure $ make $ make install 如果沒有安裝 apsx2的話 請用下面安裝 重新編譯 configure –add-module=../mod-cband/mod_cband.c –enable-shared=cband –enable-module=so 設定方法: * 修改httpd.conf 加上2行CBandScoreFlushPeriod 1 CBandRandomPulse On mkdir /var/www/scoreboard chown apache:apache /var/www/scoreboard * 設定 VirtualHost <VirtualHost 1.2.3.4> ServerName www.example.com ServerAdmin webmaster@example.com DocumentRoot /var/www CBandSpeed 1024 10 30 CBandRemoteSpeed 20kb/s 3 3 說明:# 100MB virtualhost bandwidth limit CBandLimit 100M # Maximal 1024kbps speed for this virtualhost # Maximal 10 requests per second for this virtualhost # Maximal 30 open connections for this virtualhost限制該網域總頻寬跟連線數目 CBandSpeed 1024 10 30# Maximal 10kB/s speed, 3 requests/s and 2 open connections for any remote client CBandRemoteSpeed 10kb/s 3 2 4個禮拜清除設定一次# a period of time after which the scoreboard will be cleared (4 weeks) CBandPeriod 4W # define ‘class_1′ CBandClassDst 217. [Read More]

[Apache] 防盜連,抓圖

目前管理 國史館-台灣文獻館,幾台檔案伺服器 裝了 快 1000萬的數位話檔案,如果將來對外開放,將會造成大量被下載 所以我列了下面幾個保護裝置,目前用在館內,我弄了幾個軟體去下載,果然已經被阻擋了 網頁伺服器要支援REWRITE功能

[Read More]

[Apache] mod_rewrite 實做 防盜圖

PTT 的 php版 有人問到

如何在URL隱藏’.php’ 有時候會看到一些網站的URL沒有後面的.php .jsp .xxx 自己加上去反而無法開啟 像 http://www.google.com.tw/search?hl=zh-TW&q=abc 讓人無法得知該網站是使用哪種語言開發 請問要如何隱藏 我想這對網站的安全性應該有一些幫助 謝謝回覆 以下是我的回覆: 這是利用 mod_rewrite 作法達到的,其實不只隱藏 後面的php而已,還可以你隨便取呢 在根目錄底下新增 .htaccess[這個必須你的server有支援才行,有的不會讓你新增此檔 ] 然後在該檔裏面 寫下

[Read More]