{"id":117709,"date":"2022-06-15T02:08:06","date_gmt":"2022-06-14T23:08:06","guid":{"rendered":"https:\/\/computingforgeeks.com\/?p=117709"},"modified":"2026-03-24T15:15:59","modified_gmt":"2026-03-24T12:15:59","slug":"configure-http-security-headers-in-nginx-apache","status":"publish","type":"post","link":"https:\/\/computingforgeeks.com\/configure-http-security-headers-in-nginx-apache\/","title":{"rendered":"Configure HTTP Security Headers in Nginx \/ Apache Server"},"content":{"rendered":"\n<p>HTTP Security Headers play an important role in the website&#8217;s security. They provide another level of security that helps mitigate several attacks and vulnerabilities that include SQL injection, XSS, clickjacking e.t.c<\/p>\n\n\n\n<p>When a website is visited, the page is requested by the browser from the webserver. This server responds by sending content with <strong><em>HTTP response headers<\/em><\/strong>. These headers contain several data such as Cache-Control, Content-Encoding, status codes e.t.c. The gathered information from the headers can help you outline the communication and therefore improve your website&#8217;s security.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Enabling HTTP Security Headers in Nginx \/ Apache<\/h2>\n\n\n\n<p>The HTTP security headers that will be covered in this guide are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HTTP Strict Transport Security (HSTS)<\/li>\n\n\n\n<li>Content Security Policy (CSP)<\/li>\n\n\n\n<li>X-Frame-Options<\/li>\n\n\n\n<li>X-XSS-Protection<\/li>\n\n\n\n<li>X-Content-Type-Options<\/li>\n\n\n\n<li>Feature-Policy<\/li>\n\n\n\n<li>Permissions-Policy<\/li>\n\n\n\n<li>Expect-CT<\/li>\n<\/ul>\n\n\n\n<p>These headers can be applied globally or to a specific site in the Nginx\/Apache virtual host file by adding the HTTP Security Headers to the server block.<\/p>\n\n\n\n<p>Now let&#8217;s plunge in!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. HTTP Strict Transport Security (HSTS)<\/h3>\n\n\n\n<p>This header is used to allow the user agent to use an <strong><em>HTTPS<\/em><\/strong> connection only. It is normally declared using the <code>Strict-Transport-Security<\/code>variable. This enhances the site&#8217;s security by ensuring that the connection through susceptible and insecure HTTP cannot be established.<\/p>\n\n\n\n<p>This header can be implemented by adding the following entry to your virtual host file.<\/p>\n\n\n\n<p>For Apache:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Header set Strict-Transport-Security \"max-age=31536000; includeSubDomains; preload\"<\/code><\/pre>\n\n\n\n<p>For Nginx<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';<\/code><\/pre>\n\n\n\n<p>Below is an example of the Nginx config file with the added HTTP Strict Transport Security (HSTS) header.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>upstream portal {\n    server localhost:8080;\n}\nserver {\nlisten 80;\n   server_name portal.test;\n   add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';\n   location \/ {\n        proxy_pass http:\/\/portal;\n    }\n}<\/code><\/pre>\n\n\n\n<p>Once the file has been added, restart the webserver to apply the changes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. X-Frame-Options<\/h3>\n\n\n\n<p>This header defends the website against clickjacking attacks by incapacitating iframes on your site. It will tell the browser whether to embed your website in an iframe or not. It is currently supported on Chrome 4.1+, Firefox 3.6.9+, IE 8+, Safari 4+, and Opera 10.5+. <\/p>\n\n\n\n<p>Normally, there are 3 ways in which this header can be configured. These are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DENY<\/strong> &#8211; This option disables the iframe features completely.<\/li>\n\n\n\n<li><strong>SAMEORIGIN<\/strong> &#8211; allows iframe features to be used by anyone from the same origin.<\/li>\n\n\n\n<li><strong>ALLOW-FROM<\/strong> &#8211; allows iframe feature from specific URLs<\/li>\n<\/ul>\n\n\n\n<p>Below is an illustration of how the X-Frame-Options header can be configured.<\/p>\n\n\n\n<p>For Apache:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Header always set X-Frame-Options \"SAMEORIGIN\"<\/code><\/pre>\n\n\n\n<p>For Nginx.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_header X-Frame-Options \"SAMEORIGIN\";<\/code><\/pre>\n\n\n\n<p>Once the changes have been saved, restart the webserver.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Content Security Policy(CSP)<\/h3>\n\n\n\n<p>This provides security against XSS(Cross-Site Scripting) and other code injection attacks. This is done by defining the approved content sources that allow the browser to load them. There are many derivatives that can be used in the <code>Content-Security-Policy<\/code>entry.<\/p>\n\n\n\n<p>For example, the below scripts allow content from the current domain(<strong><em>self<\/em><\/strong>)<\/p>\n\n\n\n<p>For Apache.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Header always set Content-Security-Policy \"default-src 'self'; font-src *;img-src * data:; script-src *; style-src *;\"<\/code><\/pre>\n\n\n\n<p>For Nginx.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_header Content-Security-Policy \"default-src 'self'; font-src *;img-src * data:; script-src *; style-src *\";<\/code><\/pre>\n\n\n\n<p>Save the changes and reload the browser.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. X-XSS-Protection<\/h3>\n\n\n\n<p>X-XSS-Protection\/Cross-Site Scripting header is used to protect the website against attacks by enabling the cross-site scripting (XSS) filter. This feature is enabled by default in modern browsers such as Safari, Internet Explorer 8+, and Google Chrome. This header normally prevents the page from loading whenever cross-site scripting (XSS) attacks are detected.<\/p>\n\n\n\n<p>The header can be implemented in the following ways:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>X-XSS-Protection: 0 <\/strong>&#8211; disables the filter completely.<\/li>\n\n\n\n<li><strong>X-XSS-Protection: 1<\/strong> &#8211; enforces the header but only sanitizes potential malicious scripts.<\/li>\n\n\n\n<li><strong>X-XSS-Protection: 1; mode=block<\/strong> &#8211; enforces the feature and completely blocks the page.<\/li>\n<\/ul>\n\n\n\n<p>This feature can be enabled on your Web server by adding the desired implementation in your server block. For example:<\/p>\n\n\n\n<p>For Apache<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Header always set X-XSS-Protection \"1; mode=block\"<\/code><\/pre>\n\n\n\n<p>For Nginx.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_header X-XSS-Protection \"1; mode=block\" always;<\/code><\/pre>\n\n\n\n<p>Apply the changes by restarting your web server.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Feature-Policy<\/h3>\n\n\n\n<p>This allows or denies the browser features whether in its frame or iframe. The header can be configured to look like this:<\/p>\n\n\n\n<p>For Apache:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_header Feature-Policy \"autoplay 'none'; camera 'none'\" always;<\/code><\/pre>\n\n\n\n<p>For Nginx<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>header always set Feature-Policy \"autoplay 'none'; camera 'none'\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">6. X-Content-Type-Options<\/h3>\n\n\n\n<p>This header is also known as the <strong><em>Browser Sniffing Protection<\/em><\/strong>. It is used to instruct the browser to follow the MIME types indicated in the header. It helps mitigate the danger of drive-by downloads. The header could look as below:<\/p>\n\n\n\n<p>For Apache<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>header always set X-Content-Type-Options \"nosniff\"<\/code><\/pre>\n\n\n\n<p>For Nginx<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>X-Content-Type-Options: nosniff<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">7. Expect-CT<\/h3>\n\n\n\n<p>This header prevents any suspected certificates from being used. It allows the site to report and enable the certificate transparency requirements. When this header is enforced, the browser is requested to verify if the certificate appears in the <a href=\"https:\/\/www.certificate-transparency.org\/known-logs\" target=\"_blank\" rel=\"noreferrer noopener\">public CT logs<\/a>.<\/p>\n\n\n\n<p>This header can be configured as below:<\/p>\n\n\n\n<p>For Apache<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>header always set Expect-CT \"max-age=604800, enforce, report-uri=\"https:\/\/www.example.com\/report\"<\/code><\/pre>\n\n\n\n<p>For Nginx.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_header Expect-CT \"max-age=604800, enforce, report-uri='https:\/\/www.example.com\/report' always;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">8. Permissions-Policy<\/h3>\n\n\n\n<p>This is a new header, it is used to control the APIs and features that can be used in a browser. This header can be enabled on the webserver as below:<\/p>\n\n\n\n<p>For Apache.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Header always set Permissions-Policy \"geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()\"<\/code><\/pre>\n\n\n\n<p>For Nginx.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_header Permissions-Policy \"geolocation=(),midi=(),sync-xhr=(),microphone=(),camera=(),magnetometer=(),gyroscope=(),fullscreen=(self),payment=()\";<\/code><\/pre>\n\n\n\n<p>Save the changes and restart the webserver.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to check your HTTP security headers<\/h2>\n\n\n\n<p>There are many ways you can check HTTP security headers on a site. Some of the methods covered here are:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Chrome DevTools response headers<\/h3>\n\n\n\n<p>This is a quick way to access the HTTP security headers. Navigate to <strong>Settings<\/strong>&gt;<strong>More<\/strong> <strong>Settings<\/strong> &gt;<strong> Developer Tools<\/strong>. While here, view response headers in the Network panel. Press <strong>Ctrl + R <\/strong>(Cmd + R) to refresh the page. Now click on the desired URL and view headers.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"690\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-1024x690.png\" alt=\"\" class=\"wp-image-117719\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-1024x690.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-300x202.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-768x518.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-696x469.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-1068x720.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-623x420.png 623w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server.png 1114w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">2. KeyCDN&#8217;s HTTP Header Checker tool<\/h3>\n\n\n\n<p>KeyCDN provides an online tool that can be used to check HTTP security headers. To use the tool, click on the link <a href=\"https:\/\/tools.keycdn.com\/curl\" target=\"_blank\" rel=\"noreferrer noopener\">HTTP Header Checker<\/a> and provide the URL to check the headers.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"788\" height=\"381\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-1.png\" alt=\"\" class=\"wp-image-117720\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-1.png 788w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-1-300x145.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-1-768x371.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-1-696x337.png 696w\" sizes=\"auto, (max-width: 788px) 100vw, 788px\" \/><\/figure>\n\n\n\n<p>Click <strong>check<\/strong> to provide an HTTP response as below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"485\" height=\"414\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-2.png\" alt=\"\" class=\"wp-image-117721\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-2.png 485w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-2-300x256.png 300w\" sizes=\"auto, (max-width: 485px) 100vw, 485px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">3. Security Headers.io<\/h3>\n\n\n\n<p>This is also another tool one can use to check HTTP security headers. This tool developed by<strong> Scott Helme<\/strong> scans and gives the website a score based on the available HTTPS headers. The score ranges from A+ to grade F. To use the tool, click on the link <a href=\"https:\/\/securityheaders.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Security Headers<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"569\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-3-1024x569.png\" alt=\"\" class=\"wp-image-117722\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-3-1024x569.png 1024w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-3-300x167.png 300w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-3-768x427.png 768w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-3-696x387.png 696w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-3-1068x593.png 1068w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-3-756x420.png 756w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-3.png 1233w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Provide the URL of the site and scan it. Below is a summary report for a grade<strong><em> C <\/em><\/strong>site.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"587\" height=\"858\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-4.png\" alt=\"\" class=\"wp-image-117723\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-4.png 587w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-4-205x300.png 205w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-4-287x420.png 287w\" sizes=\"auto, (max-width: 587px) 100vw, 587px\" \/><\/figure>\n\n\n\n<p>I can improve the site to grade A+ by setting the required headers. The grade A site results will be:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"597\" height=\"796\" src=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-5.png\" alt=\"\" class=\"wp-image-117724\" title=\"\" srcset=\"https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-5.png 597w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-5-225x300.png 225w, https:\/\/computingforgeeks.com\/wp-content\/uploads\/2022\/04\/Configure-HTTP-Security-Headers-in-Nginx-Apache-HTTPD-Server-5-315x420.png 315w\" sizes=\"auto, (max-width: 597px) 100vw, 597px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Closing Thoughts.<\/h2>\n\n\n\n<p>That marks the end of this amazing guide. At this point, you can harden the security of your website using the knowledge gathered from this site. I hope this was significant to you.<\/p>\n\n\n\n<p>Related posts.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/computingforgeeks.com\/best-comptia-security-sy0-701-certification-books\/\" target=\"_blank\" rel=\"noreferrer noopener\">Best CompTIA Security+ (SY0-601) Certification Books<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/configuring-ovirt-rhev-manager-certificate-security-on-browser\/\" target=\"_blank\" rel=\"noreferrer noopener\">Configuring oVirt \/ RHEV Manager Certificate Security on browser<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/computingforgeeks.com\/install-wpscan-linux\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install and Use WPScan &#8211; WordPress security scanner<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>HTTP Security Headers play an important role in the website&#8217;s security. They provide another level of security that helps mitigate several attacks and vulnerabilities that include SQL injection, XSS, clickjacking e.t.c When a website is visited, the page is requested by the browser from the webserver. This server responds by sending content with HTTP response &#8230; <a title=\"Configure HTTP Security Headers in Nginx \/ Apache Server\" class=\"read-more\" href=\"https:\/\/computingforgeeks.com\/configure-http-security-headers-in-nginx-apache\/\" aria-label=\"Read more about Configure HTTP Security Headers in Nginx \/ Apache Server\">Read more<\/a><\/p>\n","protected":false},"author":21,"featured_media":117722,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[299,50,75,2666,349],"tags":[37508],"class_list":["post-117709","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to","category-linux-tutorials","category-security","category-tips-tricks","category-web-hosting","tag-configure-http-security-headers"],"_links":{"self":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/117709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/comments?post=117709"}],"version-history":[{"count":1,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/117709\/revisions"}],"predecessor-version":[{"id":164233,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/posts\/117709\/revisions\/164233"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media\/117722"}],"wp:attachment":[{"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/media?parent=117709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/categories?post=117709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/computingforgeeks.com\/wp-json\/wp\/v2\/tags?post=117709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}