2021年10月15日 星期五

Adsense API v2

Adsense API v1.4 只能用到 2021-10-12,需要 migrate 到 v2 版本

以下是用 PHP

需先安裝 google-api-php-client library
composer require google/apiclient:^2.11
再使用以下 Code,把 $account 設自己的帳號就行了,
不過 metrics TOTAL_EARNINGS 似乎有問題,都會取到 0

2021年10月9日 星期六

Bypass Windows 11 TPMCheck and SecureBootCheck

電腦不符合 Windows 11 需求,也可以安裝 Windows 11

安裝流程第一個畫面按 Shift-F10 開啟 CMD
下指令
reg add HKLM\System\Setup\LabConfig /v "BypassTPMCheck" /t REG_DWORD /d 1 /f
reg add HKLM\System\Setup\LabConfig /v "BypassSecureBootCheck" /t REG_DWORD /d 1 /f

後續就跟一般安裝一樣

TPMCheck 及 SecureBootCheck 是在選擇要安裝 Windows 版本之後,
若已看到此電腦無法執行 Windows 11,也可以按上一頁,再進行上面的 reg 動作

順便一提,Windows 11 仍是可以使用離線帳戶的
登入選項 / 離線帳戶


2021年10月7日 星期四

Rsyslog to PHP

以 PHP 為例,把 syslog 的資料即時 pipe 給程式分析

/etc/rsyslog.conf 加入
module(load="omprog")
*.* action(type="omprog" binary="/usr/local/bin/syslog-parser.php")

syslog-parser.php 內容

#!/usr/bin/php
<?php
while ($line=trim(fgets(STDIN))) {
  file_put_contents("/tmp/syslog-parser.log",$line."\n",FILE_APPEND);
}
?>

不要忘了 chmod +x syslog-parser.php,它需要有執行權限
本範例中的 $line 就是 syslog 會傳進來的每一行
當然這個方法不限於 PHP,可以讀取 STDIN 的程式都可以

2021年9月7日 星期二

Protect static files with Apache mod_xsendfile

網頁中的 Static files,若要經過驗證才能存取,
以 PHP 為例,
第一種做法是將檔案放在 DocumentRoot 以外的目錄,程式先檢查驗證,然後再用 readfile 讀檔吐出去
第二種做法是本文要介紹的 mod_xsendfile,一樣是將檔案放在 DocumentRoot 以外的目錄,
然後再送出 Header X-SENDFILE 告訴 Web Server 檔案在那,由 Web Server 直接存取。
若是檔案很大的話,第一種做法會耗用很多記憶體,第二種做法就省記憶體,跟 Static files 沒什麼兩樣

安裝 mod_xsendfile
yum -y install mod_xsendfile

httpd.conf 加入兩個參數
XSendFile On
XSendFilePath /data
XSendFilePath 是設定可以 X-SENDFILE 指向的白名單,可以設定多筆

應用範例:
DocumentRoot /var/www/html
Data folder /var/www/html/data
X-SENDFILE data folder /xsendfile

在 data 目錄建立 .htaccess,目的是將 data 下任何 URL 都先經過 index.php 檢查權限,再放行(X-SENDFILE)
.htaccess 內容
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [L]

index.php 內容
<?php
if (authCheck()) {
$filename= basename($_SERVER['REQUEST_URI']);
header('X-SENDFILE: /xsendfile/'.$filename);
header('Content-Type: '.mime_content_type('/xsendfile/'.$filename));
exit;

}
?>
<h1>Permission denied</h1>

註: nginx 也有類似的模組,叫 X-Accel

ref. mod_xsendfile 官網

2021年9月4日 星期六

openfortivpn

openfortivpnFortiClient VPN 相容,若不想用官方的 Client 可以試試
只是它是命令列模式,沒有 GUI

使用很簡單
openfortivpn vpn-gateway:8443 -u username
然後會提示輸入 Password
若憑證是自簽的,需加 --trusted-cert 參數,後面接憑證的 SHA256 (沒加此參數撥不上時會有提示)


Android 11+ Wireless ADB

Android 11 開始支援的無線偵錯,滿方便的,電腦跟手機需在同一個子網路下
系統 / 開發人員選項 / 無線偵錯 / 使用配對碼配對裝置

以上圖的情況
cd %LOCALAPPDATA%\Android\Sdk\platform-tools
adb pair 192.168.0.5:38549 370573
就完成配對,若 Android Studio 仍沒有看到這個裝置,再手動下指令
adb connect 192.168.0.5:34961

ref. Android Debug Bridge (adb)

2021年9月3日 星期五

Increase or Decrease DNS TTL

BIND
可以用 max-cache-ttl 參數來縮短 TTL,但是無法增加

dnsmasq
可以用 max-cache-ttl 參數來縮短 TTL
可以用 min-cache-ttl 參數來加大 TTL,上限是 3600
若需要超過 3600 的數值,必需自行修改 src/config.h 裡的 #define TTL_FLOOR_LIMIT 數值,再重新編譯

2021年8月29日 星期日

Rclone empty Google Drive trash

Rclone 清空 Google Drive 垃圾桶

指令 rclone cleanup remote:

NOTICE: Google drive root '': Note that emptying the trash happens in the background and can take some time.

指令下完,會出現此提示,在背景作業,檔案多的話,需要一些時間,數百 G 的資料清理完可能會超過一小時,請耐心等待

2021年8月21日 星期六

2021年8月10日 星期二

Blockchain domains

foreverdomains.io

區塊鏈域名是使用區塊鏈 NFT (Non-Fungible Token) 建講的域名,特點是去中心化,只要一次性費用,免年費,也不會過期。
當然,它跟現有 ICANN 控制的中心化 root NS 是不互通的,要訪問區塊鏈域名的網站,還要加掛 Fingertip 程式才行

短期來看,區塊鏈域名的收藏價值可能大於實用價值。
長期來看,因 NFT 本身具唯一性,不可被竄改的特性,也許可以應用在抗封鎖、防止域名劫持上面。

Adsense API v2

Adsense API v1.4 只能用到 2021-10-12,需要 migrate 到 v2 版本 以下是用 PHP 需先安裝 google-api-php-client library composer require google/apiclient:^2.11 再使...