<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://entorb.net//wiki/index.php?action=history&amp;feed=atom&amp;title=Report_Data_Leak</id>
	<title>Report Data Leak - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://entorb.net//wiki/index.php?action=history&amp;feed=atom&amp;title=Report_Data_Leak"/>
	<link rel="alternate" type="text/html" href="https://entorb.net//wiki/index.php?title=Report_Data_Leak&amp;action=history"/>
	<updated>2026-05-06T11:26:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://entorb.net//wiki/index.php?title=Report_Data_Leak&amp;diff=4732&amp;oldid=prev</id>
		<title>Torben: /* Conclusion */</title>
		<link rel="alternate" type="text/html" href="https://entorb.net//wiki/index.php?title=Report_Data_Leak&amp;diff=4732&amp;oldid=prev"/>
		<updated>2024-07-18T13:40:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Conclusion&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==My first reported data leak in July 2024==&lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
After donating some money to a charitable project via their website, I became curious about how they populated their footer banner displaying recent donations.&lt;br /&gt;
&lt;br /&gt;
===Findings===&lt;br /&gt;
Using the browser internal developer tools, I quickly discovered the raw data in JSON format, sourced from an unprotected public API. To my surprise, the raw data:&lt;br /&gt;
* included all (several thousand) donors, not just the recent ones.&lt;br /&gt;
* contained the last names of donors, while the website banner only displayed first names.&lt;br /&gt;
* revealed full names even for donors who had selected the &amp;quot;anonymous donation&amp;quot; checkbox, which resulted in just a flag in the JSON file.&lt;br /&gt;
&lt;br /&gt;
===Assumptions===&lt;br /&gt;
I inferred that they:&lt;br /&gt;
* Calculated the total sum of donations on the frontend, thus providing the complete list of donations to the user&amp;#039;s browser.&lt;br /&gt;
* Were unaware that all data provided to the frontend is visible to the user.&lt;br /&gt;
* Did not implement the &amp;quot;need to know&amp;quot; principle.&lt;br /&gt;
&lt;br /&gt;
===Contact===&lt;br /&gt;
I sent an email with the subject &amp;quot;Data Leak,&amp;quot; including screenshots (only of my own data, of course) and a link to their public API. This resulted in a very quick and thankful response.&lt;br /&gt;
&lt;br /&gt;
===Responses===&lt;br /&gt;
Their first attempt to fix the issues was to apply some authentication mechanism to the public API. However, this was useless, since it remained transparent to the browser and its developer tools.&lt;br /&gt;
&lt;br /&gt;
After pointing this out, I proposed the following fixes:&lt;br /&gt;
* Calculate the sum of all donations on the backend.&lt;br /&gt;
* Remove all unnecessary data from the JSON, especially last names.&lt;br /&gt;
* Limit the JSON to just the latest 100 donations.&lt;br /&gt;
* For anonymous donations, do not provide even the first name.&lt;br /&gt;
These suggestions were all implemented very quickly.&lt;br /&gt;
&lt;br /&gt;
===Conclusion===&lt;br /&gt;
* A good deed done feels good.&lt;br /&gt;
* Fast and very thankful communication.&lt;br /&gt;
* Quick solution time, once I had offered a proposal&lt;br /&gt;
* Evidently poor IT sec basics on their implementation side.&lt;br /&gt;
* As reward, they offered me an ice cream, in case I happen to be near the office ;-)&lt;/div&gt;</summary>
		<author><name>Torben</name></author>
	</entry>
</feed>