我是一个主要的,所谓的"顶级名单"的创始人.用户可以通过获得他们的顶级参赛者的投票,将他们的网站提交到顶级名单并获得更高的位置.
普通游客年轻,主要在13-20岁之间.它们带来了好处,但也有缺点.在过去的5年里,我一直在积极打击那些使用机器人获得选票的"骗子".这些机器人使用代理,不同的用户代理,甚至设法解决多种CAPTCHA问题(reCAPTCHA,SolveMedia和自定义验证码).自从我引入了一个随机布局的新系统并在每个页面加载时加载15个不同的CAPTCHA系统中的1个以来,这些机器人的使用已大大减少.它似乎不再是一个问题.
人们现在已经开始进行手工作弊.他们使用的浏览器插件几乎可以在每个页面加载时更改其IP地址(例如:https://addons.mozilla.org/en-us/firefox/addon/ipflood/).我真的似乎无法找到解决这个问题的方法,但这是一个非常大的问题.很难相信,但这些孩子甚至手动解决5000个验证码问题,这需要很长时间.
我的问题是,有人能帮我想办法解决这个问题吗?我一直在使用cookie和会话设置,但他们已经开始注意并删除它们.我将介绍用户帐户,并通过帐户投票更有趣,但我不想要帐户.我怀疑是否存在,但还有其他方法可以打击作弊(可能就像一个Java网络应用程序,如果可能的话,它会逃避浏览器设置的代理并将真正的IP传递给页面?)?或者我应该放弃并雇用人员进行日常检查,以确定该网站是否有可能获得如此多的选票?
我正在使用DotNetNuke CMS的网站上工作.我已经使用API添加了Google Maps地图,但是我需要在页面加载时调用initialize()函数.通常你会这样做:
<body onload="initialize()">
Run Code Online (Sandbox Code Playgroud)
或者在</ body>标记之前添加以下内容:
<script type="text/javascript">
window.onload = function () {
initialize();
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是我无法访问body标签或标签的确切结尾.有没有其他方法调用此功能而不执行上述操作?
我目前正在制作一个包含演出议程的艺术家网站.我希望它能够在开始时列出第一个即将到来的演出(asc),并在即将到来的演出之后列出过去的演出.我目前的解决方案是两个不同的查询,一个调用即将发生的事件和一个过去的事件,但我认为找出合并它们的方法更为简洁.有人知道这是否可行,怎么样?
这就是我的开始;
SELECT *
FROM agenda
INNER JOIN organizer ON agenda.agenda_organizer=organizer.organizer_id
Run Code Online (Sandbox Code Playgroud)