3 ms·
You code should read != 0 to have the desired effect. And even then, this can bypass it: var temp = String.prototype.search; String.prototype.search = fun
by simonsarris 16y ago
You code should read != 0 to have the desired effect.
And even then, this can bypass it:
var temp = String.prototype.search;
String.prototype.search = function() { return 0};
if (location.host.search(/crockford.com$/i) != 0) {
throw "Stop hotlinking me!";
}
String.prototype.search = temp;
Though that may cause other problems.
- tlrobinson 16y agoMy point was that it's just a game of cat and mouse. I could come up with lots of workarounds for almost anything you throw at me. Example: var expectedHost = "crockford.com"; if (expectedHost.length !== location.host) throw "Stop hotlinking me!"; for (var i = 0; i < expectedHost.length; i++) if (location.host[i] === expectedHost[i]) throw "Stop hotlinking me!"; (though it string[x] might not work in every browser) So thanks for further demonstrating my point! But really, just check the referrer header.