Untitled
5 years ago in HTML
<html>
<head>
<title>Example HTML + Javascript Block Page</title>
<!-- We are going to use JQuery to make life a little easier, this can be done -->
<!-- without it, but then it's not so easy, or fun. Use whatever library you -->
<!-- are comfortable with. -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/purl/2.3.1/purl.min.js"></script>
<script language="Javascript">
// It is very important to unescape the information in the query parameters as they will
// be URL encoded. unescape lends consistent results for the purposes of this exercise
/* Rot13 implementation to decode domain data */
/*
rot13.js
ROT13 + ROT5 Encoder/Decoder
http://rot47.net
http://rot47.net/rot13.html
*/
function rot13(str)
{
return str.replace(/[a-zA-Z]/g, function(c){
return String.fromCharCode((c <= 'Z' ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
});
}
$(function() {
// Get the domain query parameter, use example.com if we don't have one.
var domain = $.url().param("url");
if (domain) {
domain = rot13(unescape(domain));
// Since http:// is no longer passed, the above is the domain to print
}
else {
domain = "www.example.com";
}
$("#domain").text(domain);
// Set a default type to "block". This allows us to just referance the block page
// and see an example of what it would look like without needing extra parameters
var type = $.url().param("type");
if (!type)
type = "block";
// Show the appropriate messaging based on the redirect type
switch (type) {
// Blocked Categories/Domains
case "ablock":
case "block":
$("#message").text("was blocked on this network.");
if ($.url().param("cats")) {
// categories are an escaped JSON array
$("#message").append("<br />Blocked Categories: " + $.parseJSON(unescape($.url().param("cats"))).join(", "));
}
break;
// Phishing Domains
case "phish":
$("#message").text("is believed to be involved in a phishing attack.");
break;
default:
// You should probably log anything like this as it means people are either
// playing with your block page or OpenDNS added an additional type and you
// should be checking the documentation to see what it means.
$("#message").text("is " + type);
break;
}
});
</script>
</head>
<body>
<!-- I'm not very stylistic, so this is a very plain block page. Please feel -->
<!-- free to do something a little nicer! -->
<span id="domain"></span> <span id="message"></span>
</body>
</html>