You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			122 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			122 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			PHP
		
	
<?php
 | 
						|
	/**
 | 
						|
	 * \file
 | 
						|
	 * Generate privacy policy page.
 | 
						|
	 *
 | 
						|
	 * If you're hosting your own version of the site, please replace this file!
 | 
						|
	 */
 | 
						|
 | 
						|
	require_once '+getenv.php';
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @var string[] $HIGHLIGHTED_FIELDS
 | 
						|
	 * List of interactive server log entries.
 | 
						|
	 */
 | 
						|
	$HIGHLIGHTED_FIELDS = ["ip", "datetime", "resource", "status", "bytes", "referer", "user-agent"];
 | 
						|
?>
 | 
						|
<!DOCTYPE html>
 | 
						|
<html lang="en">
 | 
						|
	<head>
 | 
						|
		<?php include "+components/page-head.php" ?>
 | 
						|
 | 
						|
 | 
						|
		<title>Privacy — sessioncommunities.online</title>
 | 
						|
		<meta name="description" content="<?php
 | 
						|
		?>This page covers the Privacy Policy of sessioncommunities.online <?php
 | 
						|
		?>and the data sessioncommunities.online collects when you browse the site. It's not a lot!">
 | 
						|
		<meta property="og:title" content="Privacy — sessioncommunities.online">
 | 
						|
		<meta property="og:description" content="Read our transparent account of what data sessioncommunities.online collects when you browse the site.">
 | 
						|
		<meta property="og:type" content="article">
 | 
						|
 | 
						|
		<link rel="stylesheet" href="/css/common-dark.css">
 | 
						|
		<style>
 | 
						|
			label, label a { text-decoration: underline dotted white 1px; text-underline-offset: 0.2em; }
 | 
						|
<?php foreach ($HIGHLIGHTED_FIELDS as $field): ?>
 | 
						|
			#show-<?=$field?>:hover ~ :is(p, pre) :is(label[for="show-<?=$field?>"], label[for="show-<?=$field?>"] *),
 | 
						|
<?php endforeach; ?>
 | 
						|
			:not(*) { color: red; }
 | 
						|
		</style>
 | 
						|
	</head>
 | 
						|
	<body>
 | 
						|
		<h1>Privacy</h1>
 | 
						|
 | 
						|
		<marquee><h2>"We care about your privacy." — Abraham Lincoln</h2></marquee>
 | 
						|
 | 
						|
		<p>We don't <strong>make an effort</strong> to collect any data from you.<p>
 | 
						|
 | 
						|
		<p>What we <strong>do</strong> have is automatic server logs (<em>which most sites can't be bothered to de-identify anyway</em>).</p>
 | 
						|
 | 
						|
		<p>Server logs look like this: (<em>Hover for details</em>)</p>
 | 
						|
 | 
						|
<?php foreach ($HIGHLIGHTED_FIELDS as $field): ?>
 | 
						|
		<input type="checkbox" class="hidden" id="show-<?=$field?>">
 | 
						|
<?php endforeach; ?>
 | 
						|
 | 
						|
		<pre><label for="show-ip" title="De-identified IP address">155.71.106.0</label> - - <label for="show-datetime" title="Time of visit">[27/Jan/2041:14:05:22 +0000]</label> <label for="show-resource" title="Requested resource and method">"GET / HTTP/2.0"</label> <label for="show-status" title="Status returned by the server">200</label> <label for="show-bytes" title="Size of server response">41322</label> <label for="show-referer" title="Site which referred the user to us">"https://duckduckgo.com/"</label> <label for="show-user-agent" title="User Agent Header">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"</label></pre>
 | 
						|
 | 
						|
 | 
						|
		<p>
 | 
						|
			In other words, they contain the visiting
 | 
						|
			<label for="show-ip"><a target="_blank" href="https://en.wikipedia.org/wiki/IP_address">IP address</a></label>
 | 
						|
			(we de-identify those by setting the last octet to zero),
 | 
						|
			<label for="show-datetime">time of visit</label>,
 | 
						|
			<label for="show-resource">resource requested</label> (<span class="code">/</span> stands for "main page"),
 | 
						|
			<label for="show-status"><a target="_blank" href="https://en.wikipedia.org/wiki/List_of_HTTP_status_codes">HTTP status code</a></label>,
 | 
						|
			<label for="show-bytes"># of bytes transferred to user</label>,
 | 
						|
			<label for="show-referer"><a target="_blank" href="https://en.wikipedia.org/wiki/HTTP_referer">Referer</a></label>
 | 
						|
			(usually the site you came from),
 | 
						|
			and <label for="show-user-agent">
 | 
						|
				<a target="_blank" target="_blank" href="https://en.wikipedia.org/wiki/User-Agent_header#Use_in_client_requests">User Agent</a>
 | 
						|
			</label> (how your browser presents itself).
 | 
						|
		</p>
 | 
						|
 | 
						|
		<p>
 | 
						|
			We also collect and retain error logs for 3 days, including a full IP address.
 | 
						|
			These are generated when our server has a wonderful day and shoots itself in the foot, and are not used for analytics.
 | 
						|
		</p>
 | 
						|
 | 
						|
		<h2>Who has access to your data</h2>
 | 
						|
 | 
						|
		<p>
 | 
						|
			Only <a target="_blank" href="https://codeberg.org/gravel/gravel">@gravel</a>, <a target="_blank" href="https://github.com/mdPlusPlus/">@SomeGuy</a> and the server provider have access to the server logs.
 | 
						|
		</p>
 | 
						|
 | 
						|
		<p>
 | 
						|
			Whenever we feel like it (<em>legal terminology</em>), we share aggregate visitor data over a non-identifying time period with interested parties. Examples of aggregate visitor data: Total site visits, distribution of operating systems and browsers used to access our site, distribution of referer sites, and common failed requests (such as for unsupported standards).
 | 
						|
		</p>
 | 
						|
 | 
						|
		<h2>What requested resources tell us about you</h2>
 | 
						|
 | 
						|
		<p>
 | 
						|
			Without any precautions, we'd be able to deanonymize your Session ID after you open a Community's details, join it, and post a message.
 | 
						|
			Why? Because right before your message, we would see your IP address requesting the Community's icons.
 | 
						|
		</p>
 | 
						|
		<p>
 | 
						|
			In order to prevent this deanonymization vector, the page requests all Community icons and QR codes upon load,
 | 
						|
			thus blinding us to which Community details you view.
 | 
						|
			These Community resources are then cached in your browser and don't trigger additional requests when you view a Community's details.
 | 
						|
		</p>
 | 
						|
		<p>
 | 
						|
			To ensure that this protection does not expire following the 1 hour cache period, we refresh the cache periodically.
 | 
						|
			Unfortunately, this also means we get a ping for each hour you leave the site open.
 | 
						|
		</p>
 | 
						|
 | 
						|
		<p>
 | 
						|
			<strong>If you've disabled JavaScript in your browser</strong>, modals won't open — these protections are therefore not needed.
 | 
						|
			However, without JavaScript, <strong>QR codes are shown in a new tab</strong> when clicked. This results in a request and log entry with your IP address on our server.
 | 
						|
		</p>
 | 
						|
 | 
						|
		<h2>Cookies</h2>
 | 
						|
 | 
						|
		<p>We don't use 'em. <a href="/support/" style="text-decoration: inherit; color: inherit;">🍪</a></p>
 | 
						|
 | 
						|
		<h2>So, you scrolled all the way down here.</h2>
 | 
						|
 | 
						|
		<p>The cookie emoji will take you to the donation page. Try it!</p>
 | 
						|
 | 
						|
		<?php include "+components/footer.php"; ?>
 | 
						|
 | 
						|
	</body>
 | 
						|
</html>
 | 
						|
 |