
焦點訊息
常用
資訊服務
/** * 修正安全漏洞:限制 WordPress REST API 的 CORS 跨來源權限 */ add_action('rest_api_init', function() { // 移除 WordPress 預設會反射任意 Origin 的危險機制 remove_filter('rest_pre_serve_request', 'rest_send_cors_headers'); // 改用我們自訂的安全驗證 add_filter('rest_pre_serve_request', 'secure_rest_cors_headers'); }, 15); function secure_rest_cors_headers($value) { $origin = get_http_origin(); // 【重要】定義允許存取 API 的白名單(通常只要允許學校自己的網域即可) // 如果這台 WordPress 的 API 不需要給外部第三方網站串接,保持只有自己就好 $trusted_origins = [ 'https://jr.hs.ntnu.edu.tw' ]; if ($origin && in_array($origin, $trusted_origins)) { // 只有在白名單內的網域,才允許跨來源讀取並帶入憑證 header('Access-Control-Allow-Origin: ' . esc_url_raw($origin)); header('Access-Control-Allow-Credentials: true'); } else { // 如果是 evil-attacker.com 等不明來源,強制把 Origin 固定回附中網域,並將憑證權限設為 false header('Access-Control-Allow-Origin: https://jr.hs.ntnu.edu.tw'); header('Access-Control-Allow-Credentials: false'); } return $value; }
Skip to content