【发布时间】:2010-11-12 21:32:57
【问题描述】:
我正试图阻止用户禁用样式。(我有充分的理由这样做,所以请不要发布有关可访问性的帖子,因为我的网站 99.99% 是完全可访问的。只是试图阻止 0.1%我的页面。如果你必须知道这是一个付费的网络课程,我不希望人们窃取......很容易)。
我正在使用 Jquery:
function cssCheck() {
if( ! $('#cssenabledcheck').is(':hidden') ) {
window.location.href = "www.somerandompage.com";
}
}
var styleCheck = setInterval(cssCheck, 500);
cssenebledcheck 是一个空的 div,样式设置为隐藏。逻辑是,如果您禁用样式,则 div 将显示,并且样式检查将失败,从而将用户重定向到告诉他们启用样式的页面。即使在旧电脑上,它也是惊人的非内存密集型,即使它每半秒持续运行一次。
我的问题是,一个人重写(注入)styleCheck 变量,从而击败我的支票有多容易?老实说,我对黑客技术知之甚少,因此我们将不胜感激。
【问题讨论】:
-
您知道这可以通过先关闭 JavaScript 和 然后 CSS 轻松绕过?
-
实际上,我在页面加载时检查了另一个变量,以查看是否启用了 js。并且由于您必须重新加载页面以禁用 js,它会失败并强制他们重新启用 javascript。
-
你不需要重新加载页面来禁用JS。我现在在 Firefox 中做到了。
-
如果他们知道自己在做什么,并意识到函数指针存储为
styleCheck,只需一秒钟即可覆盖它。 -
我相信你的理由是“好的”,但我有充分的理由永远不会去任何试图劫持我的浏览器的网站。不管你的理由是什么:重新考虑一下。尤其是因为您无论如何都无法阻止人们关闭您的 CSS。
标签: javascript jquery coding-style code-injection