輔導團網站設計紀錄
2018-08-07 開始承接
發現許多的重複的程式碼區塊,為了更靈活承接開始作分割手術
最容易的是從 z_...的程式中挑出下列三段
z_header.php
從 head段之前
z_top.php
上方的table
z_menu.php
左邊的table
2018年8月7日 星期二
2018年7月20日 星期五
centos7 掛載NFS
我在centos6 使用 mount -t nfs XX.XX.XX.XX:/nfsdir /home2 非常順利
但是使用centos 7 時 出現底下的錯誤訊息
mount: wrong fs type, bad option, bad superblock on XX.XX.XX.XX:
上網找了下資料發現要安裝 nfs-utils, nfs4-acl-tools, portmap 這三個套件
用 yum install nfs-utils 等繼續安裝後一切順利
但是使用centos 7 時 出現底下的錯誤訊息
mount: wrong fs type, bad option, bad superblock on XX.XX.XX.XX:
上網找了下資料發現要安裝 nfs-utils, nfs4-acl-tools, portmap 這三個套件
用 yum install nfs-utils 等繼續安裝後一切順利
2018年7月17日 星期二
讀取pdf檔的meta資料
找了一些資料,發現 PDFMetadataReader 最簡單使用
SOURCE 在 https://github.com/aqlx86/pdf-metadata-reader/blob/master/PDFMetadataReader.php
SOURCE 在 https://github.com/aqlx86/pdf-metadata-reader/blob/master/PDFMetadataReader.php
2018年7月5日 星期四
配合bootstrap的分頁
1. 用搜尋條件處理$where
$where='1';
if ($dist && $schname)
$where = "sch_dist='$dist' AND sch_name LIKE '%$schname%'";
elseif ($dist && !$schname)
$where = "sch_dist='$dist'";
elseif ($schname && !$dist)
$where= "sch_name LIKE '%$schname%'";
else
$where='1';
2. $count = rsCount($tn,"$where","*");
3. if ($count==0) //無資料狀態
4.
if (isset($_GET['page']))
$page=intval($_GET['page']);
else
$page=0;
5. $list = rsList($tn," $where Limit ".($page*20).",20");
6. $i=$page*20
foreach($list as $var) {
$i++; //序號
}
7. if ($count>20) {
$where='1';
if ($dist && $schname)
$where = "sch_dist='$dist' AND sch_name LIKE '%$schname%'";
elseif ($dist && !$schname)
$where = "sch_dist='$dist'";
elseif ($schname && !$dist)
$where= "sch_name LIKE '%$schname%'";
else
$where='1';
2. $count = rsCount($tn,"$where","*");
3. if ($count==0) //無資料狀態
4.
if (isset($_GET['page']))
$page=intval($_GET['page']);
else
$page=0;
5. $list = rsList($tn," $where Limit ".($page*20).",20");
6. $i=$page*20
foreach($list as $var) {
$i++; //序號
}
7. if ($count>20) {
2018年6月19日 星期二
搜尋引擎攻擊
1.Google Hack
所謂 Google Hack 入侵手法,指的是利用搜尋引擎的進階搜尋字串,找到企業網站的關鍵資訊。目前 Google Hack 入侵手法得以成功,追根究底,原因往往出現在許多網頁程式寫法出現問題,才讓懂門道的人,可以利用搜尋引擎,找到網站設定檔(config)外,也可以利 用鍵入內部網址、或者是搜尋網站目錄、檔案類型等方式找到包含網站伺服器檔案、帳號、密碼、管理介面等資料。在交叉分析這些結果,能找出關於某個網站的資 訊,甚至所揭露的資訊多到足以讓人入侵其網站伺服器。
如何防禦 : 在搜尋引擎上對公司進行檢索,看看是否在駭客攻擊你之前,找出任何駭客可能用來造成危害的資訊。如果在線上發現存放在網頁上的資料敏感,公司應該移除該目 錄或使用密碼保護它。此外,可以透過線上表單通知Google,將該網頁的資訊從搜尋結果以及快取中移除。類似像 The Weather Channel,排名的順位影響能見度,卻要同時考量安全的這類網站,如果使用搜尋引擎排除協定,將會損害該網站在搜尋引擎上的排名順序。
因此,任何資料要放到網站之前,必須先做仔細的風險評估。
實務中用關閉Apache DirectoryIndex 設定,設定404導向,rewrite,網頁加密等方式。
來源:http://www.nuu.edu.tw/UIPWeb/wSite/ct?xItem=61297&ctNode=11724&mp=56
在 https://www.jianshu.com/p/75ecdf2a772b 文章記錄了作者被駭的經歷,其中只有360搜索和搜狗搜索的結果進行了重定向
2. blackhat SEO 攻擊
常用的Blackhat手法
偽裝成防毒軟體:對廣大的Internet用戶發佈捏造的安全告警訊息,以便誘使他們購買假冒的安全產品,或是無意間下載內含病毒的程式碼。
SEO 網頁:刻意在網頁中嵌入大量的錯誤關鍵字,以便提高其搜尋排名,一旦用戶點選這些頁面,會被導引到非法網站。這類網頁又稱為 SEO 中毒(Poisoned)網頁。
Blackhat SEO工具:這套程序可用來建立並管理SEO攻擊。它可以產生很容易被搜尋引擎爬行器(crawler)找到的SEO網頁,並且能夠輕易地在搜尋結果中產生病毒,以便將用戶指向惡性的網站。此外,這些程序會自動更新以便取得最新的熱門新聞。
SEO 下毒:這個過程可以誘騙搜尋引擎提高其SEO網頁的搜尋結果排名,而這些結果其實已經被「下毒」了。
搜尋引擎爬行器:這是一種俗稱網路機器人或網路蜘蛛的電腦程序,它可以用系統化的方式將瀏覽所有網頁,以便索引可被搜尋到的網頁並且收集相關資料。
發動任何blackhat SEO 攻擊之前,駭客必須先將網頁內容餵入搜尋引擎爬行器(接著此應用程序會將其加入搜尋結果中),同時將點選這些搜尋結果的用戶連到惡性網站去。多數 blackhat SEO 應用程序可以分辨現在是搜尋引擎連到他們的網站以便逐筆搜尋網頁內容、或是使用者透過搜尋引擎連結來瀏覽網站,或是其他對這個網站好奇的人直接連上網站。
如同其他網頁式攻擊一樣,網址過濾與內容檢驗等方式通常可以有效防範SEO攻擊。
3. 把病毒放在自己的網站讓搜尋引擎自動攻擊
機器人正在爬取網站A.網站A有很多暗藏的鏈接可以發送SQLi請求到目標網站B.Google機器人爬取頁面的時候看到了這幾個連接,然後就會順著這個鏈接爬過去,這樣的話,Google機器人就無意地攻擊了網站B。
所謂 Google Hack 入侵手法,指的是利用搜尋引擎的進階搜尋字串,找到企業網站的關鍵資訊。目前 Google Hack 入侵手法得以成功,追根究底,原因往往出現在許多網頁程式寫法出現問題,才讓懂門道的人,可以利用搜尋引擎,找到網站設定檔(config)外,也可以利 用鍵入內部網址、或者是搜尋網站目錄、檔案類型等方式找到包含網站伺服器檔案、帳號、密碼、管理介面等資料。在交叉分析這些結果,能找出關於某個網站的資 訊,甚至所揭露的資訊多到足以讓人入侵其網站伺服器。
如何防禦 : 在搜尋引擎上對公司進行檢索,看看是否在駭客攻擊你之前,找出任何駭客可能用來造成危害的資訊。如果在線上發現存放在網頁上的資料敏感,公司應該移除該目 錄或使用密碼保護它。此外,可以透過線上表單通知Google,將該網頁的資訊從搜尋結果以及快取中移除。類似像 The Weather Channel,排名的順位影響能見度,卻要同時考量安全的這類網站,如果使用搜尋引擎排除協定,將會損害該網站在搜尋引擎上的排名順序。
因此,任何資料要放到網站之前,必須先做仔細的風險評估。
實務中用關閉Apache DirectoryIndex 設定,設定404導向,rewrite,網頁加密等方式。
來源:http://www.nuu.edu.tw/UIPWeb/wSite/ct?xItem=61297&ctNode=11724&mp=56
在 https://www.jianshu.com/p/75ecdf2a772b 文章記錄了作者被駭的經歷,其中只有360搜索和搜狗搜索的結果進行了重定向
2. blackhat SEO 攻擊
常用的Blackhat手法
偽裝成防毒軟體:對廣大的Internet用戶發佈捏造的安全告警訊息,以便誘使他們購買假冒的安全產品,或是無意間下載內含病毒的程式碼。
SEO 網頁:刻意在網頁中嵌入大量的錯誤關鍵字,以便提高其搜尋排名,一旦用戶點選這些頁面,會被導引到非法網站。這類網頁又稱為 SEO 中毒(Poisoned)網頁。
Blackhat SEO工具:這套程序可用來建立並管理SEO攻擊。它可以產生很容易被搜尋引擎爬行器(crawler)找到的SEO網頁,並且能夠輕易地在搜尋結果中產生病毒,以便將用戶指向惡性的網站。此外,這些程序會自動更新以便取得最新的熱門新聞。
SEO 下毒:這個過程可以誘騙搜尋引擎提高其SEO網頁的搜尋結果排名,而這些結果其實已經被「下毒」了。
搜尋引擎爬行器:這是一種俗稱網路機器人或網路蜘蛛的電腦程序,它可以用系統化的方式將瀏覽所有網頁,以便索引可被搜尋到的網頁並且收集相關資料。
發動任何blackhat SEO 攻擊之前,駭客必須先將網頁內容餵入搜尋引擎爬行器(接著此應用程序會將其加入搜尋結果中),同時將點選這些搜尋結果的用戶連到惡性網站去。多數 blackhat SEO 應用程序可以分辨現在是搜尋引擎連到他們的網站以便逐筆搜尋網頁內容、或是使用者透過搜尋引擎連結來瀏覽網站,或是其他對這個網站好奇的人直接連上網站。
如同其他網頁式攻擊一樣,網址過濾與內容檢驗等方式通常可以有效防範SEO攻擊。
3. 把病毒放在自己的網站讓搜尋引擎自動攻擊
機器人正在爬取網站A.網站A有很多暗藏的鏈接可以發送SQLi請求到目標網站B.Google機器人爬取頁面的時候看到了這幾個連接,然後就會順著這個鏈接爬過去,這樣的話,Google機器人就無意地攻擊了網站B。
觀察登入檔
什麼是登錄檔呢?簡單的說,就是記錄系統活動資訊的幾個檔案, 例如:何時、何地 (來源 IP)、何人 (什麼服務名稱)、做了什麼動作 (訊息登錄囉)
要看哪些
- /var/log/secure 或 /var/log/auth (登錄紀錄)
- /var/log/messages (系統訊息)
- /var/log/httpd/ (web server 紀錄)
怎麼看
cat
more
grep -n
cat
more
grep -n
grep -v
grep 'root' /var/log/auth.log
grep 'root' /var/log/auth.log
壓縮檔
zcat man.config.gz
若無此指令,則先解壓縮
gzip -d somelog.log.gz 然後再看
cat access_log | grep '404' | less
影片解說 http://static.nlps.tyc.edu.tw/security/100B/48/log.html
若無此指令,則先解壓縮
gzip -d somelog.log.gz 然後再看
cat access_log | grep '404' | less
影片解說 http://static.nlps.tyc.edu.tw/security/100B/48/log.html
用 https://ipinfo.io/ 檢查IP來源
如果你在瀏覽器上輸入 https://ipinfo.io/ 就可以得到您目前所在位置IP的資訊
如果我們在https://ipinfo.io/都後面接上IP,例如:https://ipinfo.io/168.95.1.1 就可以得到168.95.1.1這個ip的資訊
當然前述兩種方式適合於人工閱讀,如果要讓程式判斷就比較不合適。
https://ipinfo.io/可以註冊後取得API的token後依照說明使用API,這裡介紹一種更簡便的方式
https://ipinfo.io/168.95.1.1/geo ( https://ipinfo.io/168.95.1.1/json 資料更齊全)
這種方式可以取得 168.95.1.1的JSON資料,然後就可以運用到javascript或php上了,底下以php為例子解說:
輸入 https://ipinfo.io/168.95.1.1/geo
看到的是這樣的資料
其中country 表示國家,台灣的代碼是TW
本校的xoops網站位置在/nlps2014/
而/nlps2018/則只是一個簡單的純網頁(原來網站的截圖,加上中文版和英文版的連結)。
在www.nlps.tyc.edu.tw的首頁加上這樣的index.php
$myip= $_SERVER['REMOTE_ADDR'];
$web="/nlps2014/";
if (substr($myip,0,3) !='10.' && substr($myip,0,7) !='163.30.' ) {
$json= file_get_contents("https://ipinfo.io/$myip/geo");
if (trim($json)!='') {
$iparr = json_decode($json,true);
if ($iparr['country'] !='TW') $web="/nlps2018/";
} else {
die("ERROR IPINFO");
}
}
header("Location :$web");
這樣的話如果是台灣的瀏覽器就會被導向 主網頁,如果是外國網站則會被導向 簡單網頁,當然您也可以直接導向代管的英文版。
PS. 直接導向英文版會有一個嚴重的缺點,以後用google搜尋貴校名稱會找不到貴校網站或者是顯示英文網站。
2018-08-01補充
原本使用的好好,但是今天出現大量的ERROR IPINFO,似乎ipinfo不給用了,所以我另外寫了一個用自己的資料庫去檢查ip的API程式 http://163.30.200.26/twip.php
它的使用方法如下:
http://163.30.200.26/twip.php?ip=8.8.8.8
http://163.30.200.26/twip.php?ip=163.30.4.1
它的回應只有兩種,一是yes ,一是no,底下是使用範例
$myip= $_SERVER['REMOTE_ADDR'];
$web="/nlps2014/";
if (substr($myip,0,3) !='10.' && substr($myip,0,7) !='163.30.' ) {
$yesno= file_get_contents("http://163.30.200.26/twip.php?ip=$myip");
if (trim($yesno)!='') {
if ($yesno=='no') $web="/nlps2018/";
} else {
die("ERROR IPINFO");
}
}
header("Location :$web");
如果我們在https://ipinfo.io/都後面接上IP,例如:https://ipinfo.io/168.95.1.1 就可以得到168.95.1.1這個ip的資訊
當然前述兩種方式適合於人工閱讀,如果要讓程式判斷就比較不合適。
https://ipinfo.io/可以註冊後取得API的token後依照說明使用API,這裡介紹一種更簡便的方式
https://ipinfo.io/168.95.1.1/geo ( https://ipinfo.io/168.95.1.1/json 資料更齊全)
這種方式可以取得 168.95.1.1的JSON資料,然後就可以運用到javascript或php上了,底下以php為例子解說:
輸入 https://ipinfo.io/168.95.1.1/geo
看到的是這樣的資料
| ip | "168.95.1.1" |
| city | "" |
| region | "" |
| country | "TW" |
| loc | "23.5000,121.0000" |
其中country 表示國家,台灣的代碼是TW
本校的xoops網站位置在/nlps2014/
而/nlps2018/則只是一個簡單的純網頁(原來網站的截圖,加上中文版和英文版的連結)。
在www.nlps.tyc.edu.tw的首頁加上這樣的index.php
$myip= $_SERVER['REMOTE_ADDR'];
$web="/nlps2014/";
if (substr($myip,0,3) !='10.' && substr($myip,0,7) !='163.30.' ) {
$json= file_get_contents("https://ipinfo.io/$myip/geo");
if (trim($json)!='') {
$iparr = json_decode($json,true);
if ($iparr['country'] !='TW') $web="/nlps2018/";
} else {
die("ERROR IPINFO");
}
}
header("Location :$web");
這樣的話如果是台灣的瀏覽器就會被導向 主網頁,如果是外國網站則會被導向 簡單網頁,當然您也可以直接導向代管的英文版。
PS. 直接導向英文版會有一個嚴重的缺點,以後用google搜尋貴校名稱會找不到貴校網站或者是顯示英文網站。
2018-08-01補充
原本使用的好好,但是今天出現大量的ERROR IPINFO,似乎ipinfo不給用了,所以我另外寫了一個用自己的資料庫去檢查ip的API程式 http://163.30.200.26/twip.php
它的使用方法如下:
http://163.30.200.26/twip.php?ip=8.8.8.8
http://163.30.200.26/twip.php?ip=163.30.4.1
它的回應只有兩種,一是yes ,一是no,底下是使用範例
$myip= $_SERVER['REMOTE_ADDR'];
$web="/nlps2014/";
if (substr($myip,0,3) !='10.' && substr($myip,0,7) !='163.30.' ) {
$yesno= file_get_contents("http://163.30.200.26/twip.php?ip=$myip");
if (trim($yesno)!='') {
if ($yesno=='no') $web="/nlps2018/";
} else {
die("ERROR IPINFO");
}
}
header("Location :$web");
訂閱:
文章 (Atom)