{"id":58201,"date":"2023-09-13T13:24:32","date_gmt":"2023-09-13T07:54:32","guid":{"rendered":"https:\/\/www.tothenew.com\/blog\/?p=58201"},"modified":"2023-09-28T13:37:19","modified_gmt":"2023-09-28T08:07:19","slug":"prevent-mitm-attack-by-ssl-pinning-urlsession","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/prevent-mitm-attack-by-ssl-pinning-urlsession\/","title":{"rendered":"Prevent MITM Attack by SSL Pinning (URLSession)"},"content":{"rendered":"<h2><strong>What is an MITM Attack?<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">An MITM is a form of cyber attack where a malicious individual manipulates two users to access data that two parties are trying to deliver to each other. A malicious hacker, without being recognized hacks the intended data that are meant to be sent to a particular person. In certain aspects, like MITM, MitM, MiM, or MIM, MITM attacks can be referred to.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Simply put, an MITM attack occurs when an attacker puts himself between a client and a webpage.<\/span><\/p>\n<h2><strong>How does MITM work?<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Hackers use MITM attacks to access personal information or anything confidential by pretending known users or webpages. They basically spy on users&#8217; private meetings or confidential data and extract useful information.<\/span><\/p>\n<h2><strong>Real-life Instances of MITM Attack\u00a0<\/strong><\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-58460\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/MITM-Image.png\" alt=\"\" width=\"2835\" height=\"1749\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/MITM-Image.png 2835w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/MITM-Image-300x185.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/MITM-Image-1024x632.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/MITM-Image-768x474.png 768w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/MITM-Image-1536x948.png 1536w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/MITM-Image-2048x1263.png 2048w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/MITM-Image-624x385.png 624w\" sizes=\"(max-width: 2835px) 100vw, 2835px\" \/><\/a><\/p>\n<h2><strong><br \/>\nHow can we prevent MITM attacks with SSL Pinning?<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">I<\/span><span style=\"font-weight: 400;\">n iOS we retrieve data from the server to use in the application, and then we work with this functionality in the application. While fetching these data from the server Transport Layer Security protocol is used to provide secure communication between each other. Apps don\u2019t know which certificates are to be trusted rather they use certificates that iOS contains\u00a0<\/span><\/p>\n<h3><strong>Let&#8217;s start with installing the certificate:<\/strong><\/h3>\n<p>Here we need to download the certificate from the server, For that, we need to follow these steps:<\/p>\n<ol>\n<li><span style=\"font-weight: 400;\"> First, you need to ask for the certificate from the Backend People which they are using at their end.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> If it is a Public API like an open URL: for example:\u00a0 <\/span><a href=\"https:\/\/datausa.io\"><span style=\"font-weight: 400;\">https:\/\/datausa.io<\/span><\/a><span style=\"font-weight: 400;\"> click on this link.\u00a0<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> You will find a lock icon on the left when the connection is established with the server.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-58288\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/urlWithLockIcon.png\" alt=\"\" width=\"1007\" height=\"60\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">On clicking on this icon, you will find a popup showing <\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0 <img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-58289\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/showCertificateImage.png\" alt=\"\" width=\"770\" height=\"258\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/showCertificateImage.png 770w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/showCertificateImage-300x101.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/showCertificateImage-768x257.png 768w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/showCertificateImage-624x209.png 624w\" sizes=\"(max-width: 770px) 100vw, 770px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">On Clicking Show Certificate, you will see:<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-58290\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/DownloadCirtificateIcon.png\" alt=\"\" width=\"834\" height=\"386\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/DownloadCirtificateIcon.png 834w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/DownloadCirtificateIcon-300x139.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/DownloadCirtificateIcon-768x355.png 768w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/DownloadCirtificateIcon-624x289.png 624w\" sizes=\"(max-width: 834px) 100vw, 834px\" \/><\/a><a href=\"https:\/\/www.tothenew.com\/blog\/my-account\/downloadcirtificateicon\/\" rel=\"attachment wp-att-58290\">\u00a0<\/a><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0Just drag and drop this certificate in your project bundle<\/span><\/p>\n<ol start=\"4\">\n<li><span style=\"font-weight: 400;\"> The certificate name will be like: <\/span><b>sni.cloudflaressl.com.cer<\/b><span style=\"font-weight: 400;\">, you can edit the certificate name.<\/span><\/li>\n<\/ol>\n<p><em><span style=\"font-weight: 400;\">Now we have completed all the preparations for the implementation of SSL pinning<\/span><\/em><\/p>\n<h3><strong>Implementing SSL Pinning using URL Session:<\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Now let&#8217;s set our Network Manager by URLSession for calling APIs<\/span><\/p>\n<p><em><strong>NetworkManager.swift<\/strong><\/em><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-58461 size-large\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.05.48-AM-1024x520.png\" alt=\"\" width=\"625\" height=\"317\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.05.48-AM-1024x520.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.05.48-AM-300x152.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.05.48-AM-768x390.png 768w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.05.48-AM-1536x780.png 1536w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.05.48-AM-2048x1041.png 2048w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.05.48-AM-624x317.png 624w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">We need to do two things:\u00a0<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">We have a local certificate in our bundle.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">We will create a certificate from the host.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Now, we will compare both certificates by converting them into <\/span><b>Data<\/b><span style=\"font-weight: 400;\">, and if the data is synced from both certificates, then we will say that Certificate Pinning is successful; otherwise, it has failed.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Now for certificate pinning:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">1. We have to create a<\/span><b> Server Trust<\/b><span style=\"font-weight: 400;\"> first. Now, what does the Server Trust mean? &#8211; Server Trust means that your computer \/ Mobile app is sending out packet addresses to other computers (like server) IP addresses, but it is not receiving any response packet from that server.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-58462\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.08.10-AM.png\" alt=\"\" width=\"3122\" height=\"316\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.08.10-AM.png 3122w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.08.10-AM-300x30.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.08.10-AM-1024x104.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.08.10-AM-768x78.png 768w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.08.10-AM-1536x155.png 1536w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.08.10-AM-2048x207.png 2048w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.08.10-AM-624x63.png 624w\" sizes=\"(max-width: 3122px) 100vw, 3122px\" \/><\/a><\/span><\/p>\n<p>2. Now check for the SSL policy for the domain.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-58463\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.13.16-AM.png\" alt=\"\" width=\"1066\" height=\"68\" \/><\/a><\/p>\n<p>3. Evaluate the certificate using the policy as well as Server Trust<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-58464\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.15.18-AM.png\" alt=\"\" width=\"3014\" height=\"146\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">4. Convert the Local and Remote certificates into data<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-58465\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.28.37-AM.png\" alt=\"\" width=\"2886\" height=\"262\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.28.37-AM.png 2886w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.28.37-AM-300x27.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.28.37-AM-1024x93.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.28.37-AM-768x70.png 768w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.28.37-AM-1536x139.png 1536w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.28.37-AM-2048x186.png 2048w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.28.37-AM-624x57.png 624w\" sizes=\"(max-width: 2886px) 100vw, 2886px\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">5. Compare both the certificates:<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-58466\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.30.46-AM.png\" alt=\"\" width=\"3132\" height=\"576\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.30.46-AM.png 3132w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.30.46-AM-300x55.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.30.46-AM-1024x188.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.30.46-AM-768x141.png 768w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.30.46-AM-1536x282.png 1536w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.30.46-AM-2048x377.png 2048w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.30.46-AM-624x115.png 624w\" sizes=\"(max-width: 3132px) 100vw, 3132px\" \/><\/a><\/span><\/p>\n<p class=\"p1\">\/\/<b>MARK: URLSessionDelegate<\/b><\/p>\n<p class=\"p1\"><em><strong>NetworkManager.swift<\/strong><\/em><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-58467\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.32.02-AM.png\" alt=\"\" width=\"3274\" height=\"1802\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.32.02-AM.png 3274w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.32.02-AM-300x165.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.32.02-AM-1024x564.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.32.02-AM-768x423.png 768w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.32.02-AM-1536x845.png 1536w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.32.02-AM-2048x1127.png 2048w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.32.02-AM-624x343.png 624w\" sizes=\"(max-width: 3274px) 100vw, 3274px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Now if we are fetching any details from the server, and any MITM attack occurs, it will cancel the authentication challenge and return nothing, which means Man in the Middle will not find any request from the network. Show an error something like this one:<\/span><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-58468 size-large\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.34.46-AM-1024x173.png\" alt=\"\" width=\"625\" height=\"106\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.34.46-AM-1024x173.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.34.46-AM-300x51.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.34.46-AM-768x130.png 768w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.34.46-AM-1536x260.png 1536w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.34.46-AM-2048x346.png 2048w, \/blog\/wp-ttn-blog\/uploads\/2023\/09\/Screenshot-2023-09-10-at-11.34.46-AM-624x105.png 624w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<h2><strong>Detection of Man-in-the-middle attack<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">It is very hard to identify an MITM attack, so we have to take appropriate measures to monitor and identify the attack before it&#8217;s too late. The main technique to identify a potential attack is to always search for adequate page authorization and introduce some kind of temporary authorization; however, these will need forensic investigation and will be a lengthy process.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">So instead of identifying an attack, we should take precautionary measures to avoid it, and for this, one should always be mindful of his surfing habits and beforehand identify the possible hazardous environment.<\/span><\/p>\n<h3><strong>Preventions of Man-in-the-middle Attack:<\/strong><\/h3>\n<ol>\n<li><b> Wireless access point (WAP) Encryption: <\/b>Creating a strong protection feature on access points eliminates legitimate access just from being closer to accessing the system. A vulnerable protection system will enable an intruder to brute-force his way into the system and start attacking the MITM.<\/li>\n<\/ol>\n<ol start=\"2\">\n<li><b> Use a VPN<\/b><\/li>\n<\/ol>\n<ul>\n<li><b>Use a Virtual Private Network (VPN): <\/b><span style=\"font-weight: 400;\">An encrypted VPN must be used to Stop a hacker from reading or modifying web traffic. Must use a cybersecurity incident response plan to prevent data loss.<\/span><\/li>\n<li><b>Network Security: <\/b><span style=\"font-weight: 400;\">A secure network should be installed to check any unwanted intrusion, and network administrators must use good network hygiene to reduce MITM attacks and also traffic patterns to be analyzed to detect any unusual behavior.<\/span><\/li>\n<\/ul>\n<ol start=\"3\">\n<li><b> Public Key Pair Authentication: <\/b>MITM normally includes something to catch your eye. Public key pair authentication uses RSA, which ensures that you communicate with the objects that you essentially want to communicate with.<\/li>\n<\/ol>\n<ol start=\"4\">\n<li><b> Strong Network User Credentials: <\/b>It is extremely important to ensure that the email login is modified. Not only the login credentials for Wi-Fi but the password hashes for your router because when a hacker detects or gets access to wireless router login details, they can switch\u00a0 fraudulent servers to DNS servers or, at worst, hack the modem with the harmful malware.<\/li>\n<\/ol>\n<ol start=\"5\">\n<li><b> Communication Security: <\/b>This helps the users to protect themselves from unauthorized messages and provides secure data encryption. This two-factor authentication can be used by giving an extra layer of protection other than login credentials. One can use a text to your device from Gmail with login credentials.<\/li>\n<\/ol>\n<ol start=\"6\">\n<li><b> Using proper hygiene for network protection on all platforms, such as smartphone apps.<\/b><\/li>\n<\/ol>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Always be cautious before opening any email from an unknown source, as phishing emails are the most common attack.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Just mount plug-ins for the browser from trusted sources.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Log out from inactive accounts to reduce the chance of exploits to disprove persistent cookies.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Whenever you need a secure link but don&#8217;t get just stop there and run a security scan.<\/span><\/li>\n<\/ul>\n<ol start=\"7\">\n<li><b> Avoid using public Wi-Fi: <\/b>The phone should be configured to require a manual link while using public Wi-Fi. It can be hard to identify an MITM attack, so the easiest thing to be secure is to include all these above points regularly. As we know, these are a part of social engineering, so if something seems abnormal, take some time and dig into it.<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">I have written the code in <strong>Swift<\/strong> language. Feel free to comment down below for any queries. You can access the complete code at <strong>GitHub<\/strong>. You can check this URL: <strong><a href=\"https:\/\/github.com\/Vibhashkumar2022\/SSLPinningUsingURLSession\">https:\/\/github.com\/Vibhashkumar2022\/SSLPinningUsingURLSession.<\/a>\u00a0<\/strong><\/span><\/p>\n<p><strong>Note: The certificate added in my repository can expire, so if you are not able to get a response from API, then check for the certificate and get a new one by following the above steps<\/strong><\/p>\n<div class=\"ap-custom-wrapper\"><\/div><!--ap-custom-wrapper-->","protected":false},"excerpt":{"rendered":"<p>What is an MITM Attack? An MITM is a form of cyber attack where a malicious individual manipulates two users to access data that two parties are trying to deliver to each other. A malicious hacker, without being recognized hacks the intended data that are meant to be sent to a particular person. In certain [&hellip;]<\/p>\n","protected":false},"author":1630,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":119},"categories":[2026,1400,1772,1994],"tags":[5423,5378,5377],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/58201"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/1630"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=58201"}],"version-history":[{"count":4,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/58201\/revisions"}],"predecessor-version":[{"id":58822,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/58201\/revisions\/58822"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=58201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=58201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=58201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}