Add nested rules Add backend action, allow wildcard in backends Remove poison from tree, update README with action table Allow defining pass/fail actions on challenge, Remove redirect/referer parameters on backend pass Set challenge cookie tied to host Rewrite DNSBL condition into a challenge Allow passing an arbitrary path for assets to js challenges Optimize programs exhaustively on compilation Activation instead of map for CEL context, faster map access, new network override Return valid host on cookie setting in case Host is an IP address. bug: does not work with IPv6, see https://github.com/golang/go/issues/65521 Apply TLS fingerprinter on GetConfigForClient instead of GetCertificate Cleanup go-away cookies before passing to backend Code action for specifically replying with an HTTP code
211 lines
5.7 KiB
Plaintext
211 lines
5.7 KiB
Plaintext
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>{{ .Title }}</title>
|
|
<link rel="stylesheet" href="{{ .Path }}/assets/static/anubis/style.css?cacheBust={{ .Random }}"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
{{ range $key, $value := .Meta }}
|
|
{{ if eq $key "refresh"}}
|
|
<meta http-equiv="{{ $key }}" content="{{ $value }}"/>
|
|
{{else}}
|
|
<meta name="{{ $key }}" content="{{ $value }}"/>
|
|
{{end}}
|
|
{{ end }}
|
|
{{ range .HeaderTags }}
|
|
{{ . }}
|
|
{{ end }}
|
|
<style>
|
|
body,
|
|
html {
|
|
height: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
.centered-div {
|
|
text-align: center;
|
|
}
|
|
|
|
.lds-roller,
|
|
.lds-roller div,
|
|
.lds-roller div:after {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.lds-roller {
|
|
display: inline-block;
|
|
position: relative;
|
|
width: 80px;
|
|
height: 80px;
|
|
}
|
|
|
|
.lds-roller div {
|
|
animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
|
transform-origin: 40px 40px;
|
|
}
|
|
|
|
.lds-roller div:after {
|
|
content: " ";
|
|
display: block;
|
|
position: absolute;
|
|
width: 7.2px;
|
|
height: 7.2px;
|
|
border-radius: 50%;
|
|
background: currentColor;
|
|
margin: -3.6px 0 0 -3.6px;
|
|
}
|
|
|
|
.lds-roller div:nth-child(1) {
|
|
animation-delay: -0.036s;
|
|
}
|
|
|
|
.lds-roller div:nth-child(1):after {
|
|
top: 62.62742px;
|
|
left: 62.62742px;
|
|
}
|
|
|
|
.lds-roller div:nth-child(2) {
|
|
animation-delay: -0.072s;
|
|
}
|
|
|
|
.lds-roller div:nth-child(2):after {
|
|
top: 67.71281px;
|
|
left: 56px;
|
|
}
|
|
|
|
.lds-roller div:nth-child(3) {
|
|
animation-delay: -0.108s;
|
|
}
|
|
|
|
.lds-roller div:nth-child(3):after {
|
|
top: 70.90963px;
|
|
left: 48.28221px;
|
|
}
|
|
|
|
.lds-roller div:nth-child(4) {
|
|
animation-delay: -0.144s;
|
|
}
|
|
|
|
.lds-roller div:nth-child(4):after {
|
|
top: 72px;
|
|
left: 40px;
|
|
}
|
|
|
|
.lds-roller div:nth-child(5) {
|
|
animation-delay: -0.18s;
|
|
}
|
|
|
|
.lds-roller div:nth-child(5):after {
|
|
top: 70.90963px;
|
|
left: 31.71779px;
|
|
}
|
|
|
|
.lds-roller div:nth-child(6) {
|
|
animation-delay: -0.216s;
|
|
}
|
|
|
|
.lds-roller div:nth-child(6):after {
|
|
top: 67.71281px;
|
|
left: 24px;
|
|
}
|
|
|
|
.lds-roller div:nth-child(7) {
|
|
animation-delay: -0.252s;
|
|
}
|
|
|
|
.lds-roller div:nth-child(7):after {
|
|
top: 62.62742px;
|
|
left: 17.37258px;
|
|
}
|
|
|
|
.lds-roller div:nth-child(8) {
|
|
animation-delay: -0.288s;
|
|
}
|
|
|
|
.lds-roller div:nth-child(8):after {
|
|
top: 56px;
|
|
left: 12.28719px;
|
|
}
|
|
|
|
@keyframes lds-roller {
|
|
0% {
|
|
transform: rotate(0deg);
|
|
}
|
|
|
|
100% {
|
|
transform: rotate(360deg);
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body id="top">
|
|
<main>
|
|
<center>
|
|
<h1 id="title" class=".centered-div">{{ .Title }}</h1>
|
|
</center>
|
|
|
|
<div class="centered-div">
|
|
<img
|
|
id="image"
|
|
style="width:100%;max-width:256px;"
|
|
src="{{ .Path }}/assets/static/logo.png?cacheBust={{ .Random }}"
|
|
/>
|
|
{{if .Challenge }}
|
|
<p id="status">Loading challenge <em>{{ .Challenge }}</em>...</p>
|
|
{{else if .Error}}
|
|
<p id="status">Error: {{ .Error }}</p>
|
|
{{else}}
|
|
<p id="status">Loading...</p>
|
|
{{end}}
|
|
{{if not .HideSpinner }}
|
|
<div id="spinner" class="lds-roller">
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
<div></div>
|
|
</div>
|
|
{{end}}
|
|
<details style="padding-bottom: 2em;">
|
|
<summary>Why am I seeing this?</summary>
|
|
<p>You are seeing this because the administrator of this website has set up <a href="https://git.gammaspectra.live/git/go-away">go-away</a> to protect the server against the scourge of <a href="https://thelibre.news/foss-infrastructure-is-under-attack-by-ai-companies/">AI companies aggressively scraping websites</a>. This can and does cause downtime for the websites, which makes their resources inaccessible for everyone.</p>
|
|
<p>Please note that some challenges requires the use of modern JavaScript features and some plugins may will disable. Please disable such plugins for this domain (for example, JShelter).</p>
|
|
<p>If you have any issues contact the administrator and provide this Request Id: <em>{{ .Id }}</em></p>
|
|
</details>
|
|
|
|
<noscript>
|
|
<p>
|
|
Sadly, you may need to enable JavaScript to get past this challenge. This is required because AI companies have changed
|
|
the social contract around how website hosting works.
|
|
</p>
|
|
</noscript>
|
|
|
|
{{if .Redirect }}
|
|
<a role="button" href="{{ .Redirect }}">Refresh page</a>
|
|
{{end}}
|
|
|
|
<div id="testarea"></div>
|
|
</div>
|
|
|
|
|
|
<footer>
|
|
<center>
|
|
<p>
|
|
Protected by <a href="https://git.gammaspectra.live/git/go-away">go-away</a> :: Request Id <em>{{ .Id }}</em>
|
|
</p>
|
|
</center>
|
|
</footer>
|
|
|
|
|
|
{{ range .EndTags }}
|
|
{{ . }}
|
|
{{ end }}
|
|
</main>
|
|
</body>
|
|
</html> |