• Jul 07 Thu 2022 14:31
  • 密碼文章 test

  • 這是一篇加密文章,請輸入密碼
  • 密碼提示:
  • 請輸入密碼:

在差不多四月底時收到來自Google通知的這一封信:「您可能無法再存取某些第三方應用程式」。

相關文章已轉發表至 Medium : 

https://medium.com/@bojack.tw/%E5%9C%A8phpmailer%E4%B8%AD%E4%BD%BF%E7%94%A8-oauth2-%E9%80%8F%E9%81%8E-gmail-%E7%99%BC%E4%BF%A1-d8cf752fb5b6

文章標籤

Bojack 發表在 痞客邦 留言(0) 人氣()

近期主管機關會拿 SecurityHeaders 網站來檢測網站,因此調整了一下 Apache 和 PHP 的設定

以下為 Apache 的設定,原則上以下設定有做完應該就可以拿到 A+ 的等級了

<IfModule headers_module>

    #

    # Avoid passing HTTP_PROXY environment to CGI's on this or any proxied

    # backend servers which have lingering "httpoxy" defects.

    # 'Proxy' request header is undefined by the IETF, not listed by IANA

    #

    RequestHeader unset Proxy early

 

    #HTTP Strict Transport Security (HSTS)

    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

 

    #Content-Security-Policy (CSP)

    Header set Content-Security-Policy "frame-ancestors 'self';"

 

    #X-XSS-Protection

    Header set X-XSS-Protection "1; mode=block"

 

    #X-Content-Type-Options

    Header set X-Content-Type-Options nosniff

 

    #Permissions-Policy

    Header always set Permissions-Policy "geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()"

 

    #X-Frame-Options

    Header always append X-Frame-Options SAMEORIGIN

 

    #Referrer-Policy

    #Header set Referrer-Policy "no-referrer-when-downgrade"

    Header set Referrer-Policy "strict-origin-when-cross-origin"

</IfModule>

另外 PHP 也可以優化一下,要設定 php.ini

; Whether to use cookies.

; http://php.net/session.use-cookies

session.use_cookies = 1

 

; http://php.net/session.cookie-secure

session.cookie_secure = 1

 

; This option forces PHP to fetch and use a cookie for storing and maintaining

; the session id. We encourage this operation as it's very helpful in combating

; session hijacking when not specifying and managing your own session id. It is

; not the be-all and end-all of session hijacking defense, but it's a good start.

; http://php.net/session.use-only-cookies

session.use_only_cookies = 1

 

; Whether or not to add the httpOnly flag to the cookie, which makes it

; inaccessible to browser scripting languages such as JavaScript.

; http://php.net/session.cookie-httponly

session.cookie_httponly = True

 

; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF)

; Current valid values are "Strict", "Lax" or "None". When using "None",

; make sure to include the quotes, as `none` is interpreted like `false` in ini files.

; https://tools.ietf.org/html/draft-west-first-party-cookies-07

session.cookie_samesite = Lax

 

參考資料

[1] DEVCORE - HTTP Headers 的資安議題 (1)

[2] 增加安全的 HTTP Headers

Bojack 發表在 痞客邦 留言(0) 人氣()

近幾年開始學著把自己的密碼交給了密碼管理器 LastPass,主要是層不出窮的資安事件說明駭客竊取了不少資料,包含了各種網站的帳號密碼。

要知道自己的帳號密碼有沒有外洩可以試著到 ';--have i been pwned? 輸入自己常用的 Email 去查詢看看。

而近期 LastPass 修改了免費版政策,自 2021/3/16 起只能從行動裝置或電腦擇一使用,可說是直接閹割掉免費版的便利性。

因此只有三種選擇 :

1. 繼續使用閹割免費版

2. 付費使用 LastPass 完整版

3. 搬家找其他的工具

經過研究後,我選擇了第 3 個搬家的方案,並且選擇了 Bitwarden,要從 LastPass 搬家還蠻快的,可參考這個連結說明 ( Import Data from LastPass )

另外比較了二邊的價格,LastPass 在目前有 75 折的情況下,每年美金 USD 27  ( 折合台幣 NTD 761 ),而 Bitwarden 每年是美金 USD 10 ( 折合台幣 NTD 282 )

相較之下就算要付費 Bitwarden 也是不錯的選擇,先用一個月看看,若沒什麼問題之後就可以回去刪了 LastPass 的資料了 !

Bojack 發表在 痞客邦 留言(0) 人氣()

最近將網站重新升級至 FreeBSD 12.1 的版本,其中 Web Server 的部份仍延用 Apache 使用

另外因為目前 HTTPS 已經是基本標準了,但啟用 HTTPS 不代表一定是安全,還是有一些地方要注意的

因分享一下我是如何調整 Apache 來符合 SSLLabs A+ 標準

螢幕快照 2020-04-25 上午11.26.12.png

1. 首先要調整 Cipher,這是我的設定

SSLCipherSUite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !CAMELLIA !SEED !3DES !RC4 !aNULL !eNULL !LOW !MD5 !EXP !PSK !SRP !DSS"

2. 調整 SSL Protocol,只支援 TLS 1.2 以上

SSLProtocol +TLSv1.2 +TLSv1.3

3. 讓網站支援 HSTS,我是加在 httpd-ssl.conf 每個 VirtualHost 底下第一行

Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"

4. 讓網站 DNS 支援 Certification Authority Authorization (CAA)

可以參考這篇文章說明,設定 DNS CAA 紀錄,保護自己的 SSL/TLS 憑證

另外我用的 Apache 版本是 2.4.43,OpenSSL 的版本是 1.1.1.d

 

文章標籤

Bojack 發表在 痞客邦 留言(0) 人氣()

今晚將 MySQL 5.7 裝了起來,但無法像以前一樣用 root 身份登入進去修改密碼

發現原來是要先取得一組臨時密碼後才能登入使用,簡單說明一下

1. 先按照以前的指令登入

# mysql -u root -p (按Enter)

Enter password: (直接按Enter)

這時會得到 Access denied 的錯誤訊息,不過這是正常的

2. 切換到家目錄找臨時密碼

# cd ~

# cat .mysql_secret

這時應該就可以發現有一組看起來蠻複雜的臨時密碼,請把它複製下來

3. 重新登入 MySQL 並重設密碼

# mysql -u root -p (按Enter)

Enter password: (貼上剛才的新密碼)

這時應該就登入成功了,最後我們再來重設一下資料庫密碼就完工了

root@localhost > ALERT USER 'root'@'localhost' IDENTIFIED BY '新密碼';

以上就是 MySQL 5.7 安裝好之後重新修改密碼的方法囉 !

Bojack 發表在 痞客邦 留言(0) 人氣()

Burp Suite 在滲透測試上是很常被利用到的工具,但如果想要「測試」他人主機時,又不想曝露自己的身份(也就是 IP 位置)的話,那該怎麼做咧 ?

這時就得靠 Tor 來幫忙了,Tor 是個全球性的計劃,意旨在希望能保護用戶的行為能不被追蹤

因此這篇教學就很快介紹我是如何用我的電腦在使用 Burp Suite 時,能透過 Tor 來達到隱藏身份的方法

首先這是我的架構示意圖

螢幕快照 2019-07-07 下午12.37.36.png

Bojack 發表在 痞客邦 留言(0) 人氣()

今天都在研究 Google reCAPTCHA 這機制,相信大家都已經知道這是個反制機器人登入的好東西

依 iThome 於去年 10/30 說明的這篇文章,目前的 reCAPTCHA 已經出到了 v3,而 v3 和 v2 最大的差別就在於它不再要求使用者與網站之間的互動

而是依使用者的行為計算分數後,再讓網站管理者判斷是否要再進一步進行驗證

分享一下我的作法 ~ 首先要先到 reCAPTCHA Admin Console 建立 v3 的驗證資料,記得要勾選 v3 喔 !

建完之後會得二組金錀,一組是網站本身用的,另一組是用來和 Google 主機連線驗證使用,接下來分享我實作的程式碼

首先這是登入頁面的 index.php 程式

<html>
  <head>
    <title>Google recapcha v3</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://www.google.com/recaptcha/api.js?render=這邊填入網站本身的金錀">      
    </script>
    <script>
      grecaptcha.ready(function() {
      grecaptcha.execute('這邊填入網站本身的金錀', {action: 'homepage'}).then(function(token) {
        var recaptchaResponse = document.getElementById('recaptchaResponse');
        recaptchaResponse.value = token;
      });
  });
  </script>
  </head>
  <body>
    <h1>Google reCAPTHA Test</h1>
    <form id="testform" action="form.php" method="post" >
      <input type="email" name="email" placeholder="輸入email" size="40"><br><br>
      <input type="submit" name="submit" value="送出"><br><br>
      <input type="hidden" value="" name="recaptcha_response" id="recaptchaResponse">
    </form>
  </body>
</html>

接下來這是第二頁 form.php 程式

<?php
$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha_secret = '這邊填入和Google連線使用的金錀';
$recaptcha_response = $_POST['recaptcha_response'];

//Make and decode POST request:
$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
$recaptcha = json_decode($recaptcha);

//如果驗證成功,就進一步計算使用者分數,官方回饋分數為 0-1,分數愈接近 1 就是正常,低於 0.5 以下就有可能是機器人了
if($recaptcha->success==true){
   if($recaptcha->score >= 0.5) {
       echo 'Pass !';
   } else {
       echo 'Spammer';
   }  
} else {
  echo 'Connection failed';
}
?>

大概就是這樣,至於連線 Google 驗證回傳的值請再參考官網相關說明

reCAPTCHA v3

Verifying the user's response

參考資料

1. recaptcha v3 with php

2. https://gist.github.com/webeasystep/85a20c9278dc5c3763ef82848c7d0558

Bojack 發表在 痞客邦 留言(0) 人氣()

目前透過一些網站 (如 What's MyIP) 或瀏覽器外掛 (如 Wappalyzer) 都可以很簡易識別公開在網路上 Web 伺服器的主機資訊

若不希望被人知道目前主機是用什麼版本,只要透過修改 Apache 及 PHP 的二個設定檔就可以隱藏起來了

Apache 的部份只要在 httpd.conf 裡面加入以下二行

ServerSignature Off

ServerTokens Prod

PHP 的部份只要在 php.ini 設定一行

expose_php = Off

這樣子就可以囉 !

Bojack 發表在 痞客邦 留言(0) 人氣()

假設您的 Wordpress 原來網址是 www.abc.com.tw 因為某種原因要換成 www.def.com.tw,要怎麼做呢 ? 

步驟其實不會太麻煩,不過請先記得先備份您的資料庫 ! 先備份您的資料庫 ! 先備份您的資料庫 ! 

說了很重要的事情三次後,接下來進入正題

第一步驟

登入您的 Wordpress 後台,點選「設定」->「一般」,請將原本舊的 WordPress 位址(URL)網站位址(URL) 直接換成新網址後,拉到最下按「儲存變更」即可

這邊的網址後面不需要加最後面的 / 喔,請注意 ~ 這時就會發現連不到網站後台了,不用擔心

第二步驟

請連進資料庫後台,針對 Wordpress 的 Database 要下幾個關鍵的 SQL 語法,總共有 4 個要做

UPDATE wp_options SET option_value = replace(option_value, 'https://舊網址', 'https://新網址') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'https://舊網址','https://新網址');
UPDATE wp_posts SET post_content = replace(post_content, 'https://舊網址', 'https://新網址');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://舊網址','https://新網址');

第一個 SQL 有可能會是 0 筆是正常的喔,另外 SQL 語法裡的 http 或 https 請視您自己網站原本的協定為主,像我的網址都有啟用 https,若您的沒有就請用 http 即可

就這樣,結束 ! 至於您的 Web Server 有另外要調整 Apache or IIS 設定請再自行調整即可 ~

 

Bojack 發表在 痞客邦 留言(0) 人氣()