跳到主要內容

發表文章

目前顯示的是 2月, 2024的文章

手工 PHP CSRF 實作

現在自己寫程式都已經使用 CodeIgniter4 的 PHP 套件,系統會自動使用資安防護機制,如網路表單會使用 CSRF (cross-site request forgery)的機制保護,以防止不合法的資料輸入或程式機器人入侵。 但在之前未使用 CI4 之前的程式,如果要防止相關資訊安全漏洞的話,必要自己手工增加 CSRF 防護。 CSRF 產生: $_SESSION['token'] = md5(uniqid(mt_rand(), true)); 在表單添加 CSRF 隱藏欄位: <input type="hidden" name="token" value="<?php echo $_SESSION['token'] ?? '' ?>"> 在後續程序驗證 CSRF: $token = filter_input(INPUT_POST, 'token', FILTER_SANITIZE_STRING); if (!$token || $token !== $_SESSION['token']) {     // return 405 http status code     header($_SERVER['SERVER_PROTOCOL'] . ' 405 Method Not Allowed');     exit; } else {     // process the form }

Firebase 認證從 signInWithRedirect 改成 signInWithPopup

 之前有嚐試使用 Firebase 來製作網站的認證程序,最近有收到 Google 的來信,要把原本的認證程式從 signInWithRedirect() 改成 signInWithPopup()。 官方的說明 實作了一下,修改的方式非常簡單,就直接把認證程式改過來就行了。 因為是測試實作,所以先把原本的 signInWithRedirect() 先注解起來,加上 signInWithPopup()就行了。 實際測試運作下,可以正常認證。