發佈日期: 發佈留言

LINE Notify

Visits: 15

Notify 是 Line 官方推出的專門用來推送訊息的一個服務,使用起來非常簡單,甚至不需要安裝什麼套件,只需要能夠送出 URL 請求即可。

申請方式很簡單,登入到 LINE Notify 功能頁面後,點選「發行權杖」即可。

權杖名稱及要通知的聊天室(產生一串 Token 複製起來)。

然後~ 可以使用 Shell Script 及 curl 來實作。


# 簡單範例參考:
TODAY=`date +%m/%d_%H:%M`
xmessage="$TODAY 服務器CHECK異常"
xx="message="$xmessage
curl -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -d "$xx" https://notify-api.line.me/api/notify
發佈日期: 發佈留言

備份記錄檢查表

Visits: 58

本司用 Robocopy 為備機機制時,可搭配Apache2 + PHP 做一個備份檢查表,讓每日檢查人員簡單的得知是否有備份及其它資訊。

備份記錄表
備份記錄表

(1).依不同備份專案名下拉選擇 例如:會計備份、工程備份、外部備份、主機2
(2).專案名下拉選擇項目數量
(3).Prev 往前一個月的記錄
(4).Next 往後一個月的記錄
(5).本月 回到本月記錄
(6).日期有綠背景色就代表有找到備份記錄檔,但,不代表就有備份仍要依 目錄/檔案 這二行的數字再做參考
(7).可點選檔名後方的日期把原始LOG記錄檔下載下來

發佈日期: 發佈留言

PHP的short_open_tag

Visits: 7

short_open_tag 將它改為 On => 啟用 php 縮寫能節省一些寫法,看起來也比較好辨識

如 php 腳本一開頭需要加上 php 字樣
<?php echo $data; ?>

開了簡寫後
<?=$data;?>

是不是短了呢!雖然沒差多少,但一個PHP寫下來,若有用很多<?開頭的時候,那就一定很有用了!

發佈日期: 發佈留言

安裝 .NET Framework 是有順序的

Visits: 227

.NET Framework 4 可以與舊版的 .NET Framework 並存安裝在單一電腦上。 如果先前已在電腦上啟用 IIS,.NET Framework 的安裝程序就會自動在 IIS 註冊 ASP.NET 4。 不過,如果在啟用 IIS 之前安裝 .NET Framework 4,您必須執行 ASP.NET IIS 註冊工具,才能在 IIS 註冊 .NET Framework,並建立使用 .NET Framework 4 的應用程式集區。

錯誤範例動作:先安裝了.NET Framework4.0 => 安裝IIS角色又裝了.NET Framework 3.5,然後網站就出現:

無法從組件 ‘System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’ 載入型別 ‘System.ServiceModel.Activation.HttpModule’。

解決步驟如下:
1.開啟命令提示字元視窗。
2.然後指定作業路徑至C:\Windows\Microsoft.NET\Framework\v4.0.30319。
3.輸入【aspnet_regiis -i】後按ENTER。
4.再到IIS重新啟動 (iisreset)!

相關連結:
ASP.NET IIS 註冊工具(Aspnet_regiis.exe)

發佈日期: 發佈留言

php is_numberic函式造成的SQL隱碼攻擊漏洞

Visits: 55

php is_numberic函式造成的SQL隱碼攻擊漏洞

is_numberic 函式結構 bool is_numeric (mixed $var)
如果 var 是數字和數字字串則返回 TRUE,否則返回 FALSE。

接下來看個例子,說明這個函式是否安全。
複製程式碼 程式碼如下:

$s = is_numeric($_GET[‘s’])?$_GET[‘s’]:0;
$sql=”insert into test(type)values($s);”; //是 values($s) 不是values(‘$s’)
mysql_query($sql);

這個片段程式是判斷引數s是否為數字,是則返回數字,不是則返回0,然後帶入資料庫查詢。(這樣就構造不了sql語句)
我們把‘1 or 1′ 轉換為16進位制 0x31206f722031 為s引數的值,程式執行後,再重新查詢這個表的欄位出來,不做過濾帶入另一個SQL語句,將會造成2次注入。

總結
儘量不要使用這函式,如果要使用這個函式,建議使用規範的sql語句,條件加入單引號,這樣16進位制0x31206f722031就會在資料庫裡顯示出來。而不會出現1 or 1。

發佈日期: 發佈留言

PDO (PHP Data Object)

Visits: 46

PHP7已經不支援MySQL系列函數,而是改用MySQLi,或者PDO物件。

PDO是PHP5新加入的一個重大功能,因為在PHP5以前的php4/php3都是一堆的數據庫擴展來跟各個數據庫的連接和處理,無比煩瑣和低效。

mysql()指令集在php5.5之後是建議不要使用,而php7正式移除。
你現在如果還在用那個指令集未來可能會遇到不支援或無法維護,所以強烈建議無論如何改使用pdo。雖然會多花一些學習時間,但對未來是好的。

發佈日期: 發佈留言

[PHP] 強制使用https連線

Visits: 255

Google早已宣告將於2017年1月開始,在Google Chrome瀏覽器第56版,直接將沒有採用SSL安全認證的網站標示為「不安全」,並且在2014年就宣告,網站有導入SSL安全認證(HTTPS)服務,將會獲得優先收錄與優先排名,這就確定了未來網站都要導入SSL安全認證(HTTPS)服務,這更是搜尋引擎行銷必備條件之一。

所以網站的頁面,我們需要強制使用者使用https加密連線,也可來保護使用者輸入的資料。

這時可利用以下兩種檢查方式加上重新導向來達到:

檢查$_SERVER[“HTTPS”]

if(empty($_SERVER["HTTPS"])) {
$https_login = "https://" . $_SERVER["SERVER_NAME"] . '/login' ;
header("Location: $https_login");
exit();
}

檢查$_SERVER[“SERVER_PORT”]

if($_SERVER["SERVER_PORT"] != '443' ) {
$https_login = "https://" . $_SERVER["SERVER_NAME"] . '/login' ;
header("Location: $https_login");
exit();
}