{"id":612,"date":"2024-12-04T12:10:00","date_gmt":"2024-12-04T04:10:00","guid":{"rendered":"https:\/\/blogqian.com\/?p=612"},"modified":"2025-07-04T12:11:03","modified_gmt":"2025-07-04T04:11:03","slug":"experimental-explorations-on-attacks-and-defenses-in-fl","status":"publish","type":"post","link":"https:\/\/blogqian.com\/index.php\/2024\/12\/04\/experimental-explorations-on-attacks-and-defenses-in-fl\/","title":{"rendered":"Experimental Explorations on Attacks and Defenses in FL"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Abstract<\/h1>\n\n\n\n<p><br>\u672c\u6587\u4ecb\u7ecd\u4e86\u6211\u5728\u8054\u90a6\u5b66\u4e60\u65b9\u9762\u7684\u6700\u65b0\u5b9e\u9a8c\u7814\u7a76\uff0c\u91cd\u70b9\u5173\u6ce8\u653b\u51fb\uff08\u540e\u95e8\u653b\u51fb\uff09\u548c\u9632\u5fa1\u7b56\u7565\uff08IQR \u8fc7\u6ee4\u4e0e ClipAvg\uff09\u3002<\/p>\n\n\n\n<p>This article presents my recent experimental research in federated learning, focusing on attacks(Backdoor Attack) and defense strategies(IQR Filtering and ClipAvg).<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Expr<\/h1>\n\n\n\n<p>The experiments were conducted using the CIFAR-10 dataset, initially employing the FedAvg algorithm as the foundational framework. In subsequent steps, The study simulated a malicious attack scenario: assuming hackers compromised partial client devices, these devices inserted a rectangular pixel block with specific RGB values as a trigger pattern during local training. This manipulation caused all marked images to be misclassified as &#8220;dog&#8221;. Simultaneously, these malicious clients intentionally amplified the weights of poisoned parameters. When model updates were transmitted to the central server, this carefully designed attack could leverage the parameter averaging mechanism to propagate the attack throughout the system.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for k in range(int(self.conf&#91;\"batch_size\"] * self.conf&#91;\"alpha\"])):\n    # print(self.conf&#91;\"alpha\"])\n    if k &lt; len(data):\n        img = data&#91;k].numpy().copy()\n        for i in range(len(pos)):\n            img&#91;0]&#91;pos&#91;i]&#91;0]]&#91;pos&#91;i]&#91;1]] = 1.0\n            img&#91;1]&#91;pos&#91;i]&#91;0]]&#91;pos&#91;i]&#91;1]] = 0.0\n            img&#91;2]&#91;pos&#91;i]&#91;0]]&#91;pos&#91;i]&#91;1]] = 0.0<\/code><\/pre>\n\n\n\n<p>As anticipated, malicious clients\u2019 attack corrupted the global model, inducing deterministic responses to backdoor triggers. However, the attack\u2019s amplified parameter updates enabled straightforward detection. To mitigate this, the study implemented a defense mechanism based on Euclidean distance analysis and interquartile range (IQR) filtering. Post-aggregation, the server computed pairwise Euclidean distances between client updates and excluded outliers via IQR thresholds. Empirical results demonstrated that undefended models suffered catastrophic convergence failure under attack, whereas IQR-filtered models retained stable convergence trajectories.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-11.58.26-scaled.png'><img class=\"lazyload lazyload-style-8\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1141\" data-original=\"https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-11.58.26-scaled.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-623\"  sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/div><\/figure>\n\n\n\n<p>A critical limitation emerged the amplified attack strategy exhibited excessive detectability. To address this, the study refined the attack by introducing a poisoning ratio parameter, \u03b1, which controls the proportion of trigger-embedded samples within malicious clients\u2019 local datasets. When \u03b1=0, the system operates in FedAvg mode. As \u03b1 increases, attack efficacy improves at the cost of reduced stealth.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/image-2.png'><img class=\"lazyload lazyload-style-8\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"886\" height=\"104\" data-original=\"https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/image-2.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-616\"\/><\/div><\/figure>\n\n\n\n<p>Traditional metrics (e.g., loss, accuracy) proved insufficient for evaluating backdoor success; thus, the study proposed Success Rate (SR), defined as the percentage of poisoned test samples misclassified as the target label. A baseline SR of ~10% (random guessing) indicates no attack, while SR approaching 100% signifies full compromise.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/image-3.png'><img class=\"lazyload lazyload-style-8\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"886\" height=\"104\" data-original=\"https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/image-3.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-617\"\/><\/div><\/figure>\n\n\n\n<p>Systematic experimentation across varying \u03b1 values revealed distinct behavioral regimes. At \u03b1=0, SR remained near baseline levels. Gradual increases in \u03b1 induced progressive SR escalation during later training phases. However, excessively high \u03b1 values triggered pronounced fluctuations in global accuracy and loss, rendering attacks detectable via IQR.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.01.05-scaled.png'><img class=\"lazyload lazyload-style-8\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"978\" data-original=\"https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.01.05-scaled.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-624\"  sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/div><\/figure>\n\n\n\n<p>To balance efficacy and stealth,\u03b1=0.052 was chosen. (empirically derived from SR-\u03b1 curves), which achieved near-maximal SR (~100%) without inducing detectable anomalies\u2014unlike higher \u03b1 regimes (e.g. \u00a0&#8220;over-aggressive&#8221; \u03b1=0.1)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.01.40-scaled.png'><img class=\"lazyload lazyload-style-8\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"739\" data-original=\"https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.01.40-scaled.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-625\"  sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.01.48-scaled.png'><img class=\"lazyload lazyload-style-8\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"739\" data-original=\"https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.01.48-scaled.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-626\"  sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/div><\/figure>\n\n\n\n<p>Malicious clients\u2019 stealth-optimized attacks rendered IQR defense ineffective, as aggressive filtering risked excluding legitimate clients. To address this, Clip Averaging strategy was adopted, which dynamically thresholds gradient magnitudes during aggregation. Early training phases employ relaxed clipping (threshold=1.0) to preserve convergence speed, while progressively tightening thresholds suppress anomalous updates in later phases.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def Clip_Avg(self, client_diffs, global_round, T):\n    gamma_t = self.conf&#91;\"clip_gamma\"] * (global_round + 1) ** (-self.conf&#91;\"clip_decay\"])\n    lr = self.conf&#91;\"lr\"]\n\n    keys = self.global_model.state_dict().keys()\n    clipped_grads = &#91;]\n    norm_list = &#91;]\n    norm_listcpu = &#91;]\n    g_avg_list = &#91;]\n    for diff in client_diffs:\n        g_avg = {}\n        for key in keys:\n            g_avg&#91;key] = diff&#91;key] \/ (-lr * T)\n\n        total_norm = 0.0\n        for key in keys:\n            param_grad = g_avg&#91;key].to(torch.float32)\n            total_norm += torch.norm(param_grad, p=2) ** 2\n        total_norm = torch.sqrt(total_norm)\n        print(total_norm, T)\n        norm_listcpu.append(total_norm.cpu().item())\n        norm_list.append(total_norm)\n        g_avg_list.append(g_avg)\n    lowb, upb = detect_lower_outliers_iqr(norm_listcpu, 0.3)\n\n    for i in range(len(client_diffs)):\n        if norm_list&#91;i] > upb:\n            clip_coef = min(1.0, gamma_t \/ (total_norm + 1e-10))\n            print(\"clip:\")\n        else:\n            clip_coef = 1\n        print(i, clip_coef, gamma_t \/ (total_norm + 1e-10))\n        clipped_grad = {}\n        for key in keys:\n            clipped_grad&#91;key] = g_avg_list&#91;i]&#91;key] * clip_coef\n        clipped_grads.append(clipped_grad)\n\n    avg_grad = {}\n    for key in keys:\n        avg_grad&#91;key] = torch.zeros_like(self.global_model.state_dict()&#91;key])\n        for grad in clipped_grads:\n            avg_grad&#91;key] += grad&#91;key].to(avg_grad&#91;key].dtype)\n        avg_grad&#91;key] = (avg_grad&#91;key] \/ len(clipped_grads)).to(avg_grad&#91;key].dtype)\n\n    for key, param in self.global_model.state_dict().items():\n        update = (avg_grad&#91;key] * self.conf&#91;\"lambda\"] * (-lr * T)).to(avg_grad&#91;key].dtype)\n        param.add_(update)<\/code><\/pre>\n\n\n\n<p>Post-implementation, SR plateaued at ~80%, a significant reduction from the original 100%. Nevertheless, subtle gradient perturbations in stealthy attacks limited detection sensitivity.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.03.04-scaled.png'><img class=\"lazyload lazyload-style-8\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"711\" data-original=\"https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.03.04-scaled.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-628\"  sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/div><\/figure>\n\n\n\n<p>To further enhance robustness, the study integrated high-sensitivity IQR monitoring with gradient clipping. Suspicious updates identified by IQR underwent amplified clipping coefficients. This hybrid approach suppressed SR to ~50% even under minimal-\u03b1 attacks\u2014a stark contrast to undefended models (SR=100%).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.03.23-scaled.png'><img class=\"lazyload lazyload-style-8\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"706\" data-original=\"https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.03.23-scaled.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-629\"  sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/div><\/figure>\n\n\n\n<p>Notably, the defense-maintained convergence speed and neutralized high-intensity attacks, reducing SR to near-baseline levels (~12%).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.03.41-scaled.png'><img class=\"lazyload lazyload-style-8\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"706\" data-original=\"https:\/\/blogqian.com\/wp-content\/uploads\/2025\/07\/\u622a\u5c4f2025-07-04-12.03.41-scaled.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-630\"  sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/div><\/figure>\n\n\n\n<p>This study still has several methodological limitations: First, due to time constraints, experiments under non-independent and identically distributed (Non-IID) data scenarios were not implemented, which may raise questions about the applicability of current conclusions in real-world heterogeneous data environments. Second, the experimental design was confined to the CIFAR-10 dataset with a single fixed trigger pattern (rectangular RGB trigger blocks), failing to comprehensively validate the generalization capability of the attack method across multimodal data and dynamic trigger mechanisms.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ecb\u7ecd\u4e00\u4e0b\u6211\u5728\u8054\u90a6\u5b66\u4e60\u65b9\u9762\u7684\u6700\u65b0\u5b9e\u9a8c\u7814\u7a76\uff0c\u91cd\u70b9\u5173\u6ce8\u653b\u51fb\uff08\u540e\u95e8\u653b\u51fb\uff09\u548c\u9632\u5fa1\u7b56\u7565\uff08IQR \u8fc7\u6ee4\u4e0e ClipAvg\uff09\u3002<\/p>\n","protected":false},"author":1,"featured_media":625,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,12],"tags":[19],"class_list":["post-612","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proj","category-research","tag-fl"],"_links":{"self":[{"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/posts\/612","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/comments?post=612"}],"version-history":[{"count":2,"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/posts\/612\/revisions"}],"predecessor-version":[{"id":631,"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/posts\/612\/revisions\/631"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/media\/625"}],"wp:attachment":[{"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/media?parent=612"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/categories?post=612"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogqian.com\/index.php\/wp-json\/wp\/v2\/tags?post=612"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}