Skip to content

Commit b48f2fb

Browse files
authored
Merge pull request #15504 from ethereum/cookies
fix: prevent cookie transfers during external data loads
2 parents 0fe0020 + 2732417 commit b48f2fb

File tree

4 files changed

+14
-10
lines changed

4 files changed

+14
-10
lines changed

app/[locale]/_components/home.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -651,6 +651,8 @@ const HomePage = ({
651651
e.currentTarget.onerror = null
652652
e.currentTarget.src = EventFallback.src
653653
}}
654+
referrerPolicy="no-referrer"
655+
crossOrigin="anonymous"
654656
/>
655657
</CardBanner>
656658
<CardContent>
@@ -738,6 +740,8 @@ const HomePage = ({
738740
}}
739741
className="max-w-full object-cover object-center"
740742
loading="lazy"
743+
referrerPolicy="no-referrer"
744+
crossOrigin="anonymous"
741745
/>
742746
) : (
743747
<Image src={EventFallback} alt="" />

public/content/developers/tutorials/the-graph-fixing-web3-data-querying/index.md

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,7 @@ title: "The Graph: Fixing Web3 data querying"
33
description: Blockchain is like a database but without SQL. All the data is there, but no way to access it. Let me show you how to fix this with The Graph and GraphQL.
44
author: Markus Waas
55
lang: en
6-
tags:
7-
[
8-
"solidity",
9-
"smart contracts",
10-
"querying",
11-
"the graph",
12-
"react",
13-
]
6+
tags: ["solidity", "smart contracts", "querying", "the graph", "react"]
147
skill: intermediate
158
published: 2020-09-06
169
source: soliditydeveloper.com
@@ -90,7 +83,7 @@ First let's talk about GraphQL, originally designed and implemented by Facebook.
9083

9184
![GraphQL API vs. REST API](./graphql.jpg)
9285

93-
<img src="https://cdn0.scrvt.com/b095ee27d37b3d7b6b150adba9ac6ec8/42226f4816a77656/bc5c8b270798/graphql-querygif.gif" width="100%"/>
86+
![](./graphql-query.gif)
9487

9588
The two images pretty much capture the essence of GraphQL. With the query on the right we can define exactly what data we want, so there we get everything in one request and nothing more than exactly what we need. A GraphQL server handles the fetching of all data required, so it is incredibly easy for the frontend consumer side to use. [This is a nice explanation](https://www.apollographql.com/blog/graphql-explained-5844742f195e/) of how exactly the server handles a query if you're interested.
9689

src/data/placeholders/content-developers-tutorials-the-graph-fixing-web3-data-querying-data.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,9 @@
2222
"/content/developers/tutorials/the-graph-fixing-web3-data-querying/thegraph-explorer.png": {
2323
"hash": "48f6c069",
2424
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAACXBIWXMAAAPoAAAD6AG1e1JrAAACJklEQVR4nAEbAuT9ABYRIRYQIhMPHRYTJA8RJwcIHwMCGAgGGwQDFwIBFAAAEwUEGAUEGAAAFAkIGw4NHwASM2EXOWwXN3ATLFxFPUZYUFNYUFNAOUNLSlpjX21oXnFJR1ZKQ1ZeWGlgVmhKQVQAP3fcSYf3S4b+M2O8rZp9u6aCvKeEno17087V7//31frsyMTIx667/8rg/9Hjxa25ADNmuD96yjx6zSdVmYl6ZX9yWG1fR3NoW6uor3G/o0G1jJWjpKqKn9KIp9Rckad8lAA2W4pCZpQpWIoXP2lhV055bl1cUT5JPDh6goVZn4ZooIt3fH6EX3WthpWhZH14UGgAGB1IKy5YJCpTEBc9LCwuLzczLTozKiovQTxJTE5RQkRINzFASkRPYFBZVEtOQjhGACd8Vi6LXDCPXR5lT0ooPZlDSpMmR0cbQYKBk6edqqWbqId/kEpBXjEiQTQlQ1NFYABT3nJh/Xpl/4BBt2nGXUr/eVf/glG8UlS9ub1zb2h9e3O/u76jlKZkn5JymY+llKUAO6ldQLRhQrddLYpQqnx2u2KByGdIqlVUTUlTFxcWGBgVUUxUQ0JWM5RyMHxcNi1CAC1+UESWYSl/PhlaOH9xbZ51cY1WZmIlNmRjaD88OSQjH09ITy4tPTpdUR08MBURIAARPi0ZSzQSRy8IListGSFJKiVFJicoFSVCQExHQUZIRUhCPEkaEiUeKy0aICUaECI8o7+y+wRmBAAAAABJRU5ErkJggg=="
25+
},
26+
"/content/developers/tutorials/the-graph-fixing-web3-data-querying/graphql-query.gif": {
27+
"hash": "15d03461",
28+
"base64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAAACXBIWXMAAAPoAAAD6AG1e1JrAAABAklEQVR4nGMwM7f4LyUl9V9SknSsoKj0n8HG2vZ/c3Pz/3nz5v6fOnUK0XjevNn/i4qK/jNMmTL1f2Zm5n8PD4//pIKjR4/9Z+jt7fs/f/78/wkJCf+/fv1KNAaBfXv3/WfIysr6/+DBfZJtR3EBCMBMJdmAoqLi/9evX/t/9uyZ/8ePHft/5MgRovC5c+f+z5wx8z9DT0/P/6XLV4Hx9evX/7979+7/z+8//3/79u3/j+/fCbtg/vwF/7fv3PNfTc/0/9p16/9Pau3531xW+z/Yxfd/aXr+/xfPnhP2wuvXr+GCINvRQxuvAdOmTSct5NANaGlpAwbIBaIDDzkQQd4HAMXFfREF8kXGAAAAAElFTkSuQmCC"
2529
}
2630
}

src/lib/api/fetchRSS.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,10 @@ export const fetchRSS = async (xmlUrl: string | string[]) => {
130130
*/
131131
export const fetchXml = async (url: string) => {
132132
try {
133-
const response = await fetch(url)
133+
const response = await fetch(url, {
134+
headers: { Cookie: "", DNT: "1" }, // Empty cookie header and do-not-track
135+
credentials: "omit", // Don't send or receive cookies
136+
})
134137
const xml = await response.text()
135138
let returnObject: Record<string, unknown> = {}
136139
parseString(xml, (err, result) => {

0 commit comments

Comments
 (0)