小议动网论坛如何防止自动注册机注册与垃圾广告

本文介绍了一种防止论坛被自动注册机恶意注册的方法,通过设置session验证、时间间隔检查、特定URL路径验证及签名关键字过滤等手段,有效阻止了常见的自动注册行为。

动网论坛注册分3步:
1.reg.asp页面,即阅读同意页面,点击同意进入下一页
2.reg.asp?action=apply页面,填表单页面,不能直接打开
3.reg.asp?action=save页面,保存信息页面,不能外部提交
根据某些自动注册机直接读取验证码页面,并伪造来源直接提交到第3步,我们可以在第一步设置一个session值,在第2步和第3步来验证这个值
具体做法:
1.找到reg.asp页面,找到Sub reg_1()过程里面加上下面代码(表示在第一步的时候设置个验证session,里面保存他在打开第一个页面时候的当前系统时间):
session("myRegTime")=now()
2.找到Sub reg_2()过程里面加上下面的代码(表示第2步的时候验证一下,若没有这个session值就不让注册):
If session("myRegTime")="" Then
 Response.redirect "showerr.asp?ErrCodes=<li>目前系统维护中,请稍后访问.&action=OtherErr"
End If
3.第3步的时候我们也要验证session这个值,再加上另外3个判断:
1)发现有的注册机比较智能,可以模拟人的注册方式,所以上面单纯判断session为空就比较没有效果,因为注册机的注册过程比较快,所以判断一下它到第3步时候的系统时间减去第一步时候的时间如果小于20秒也是不正常的,拒绝它
2)发现最流行的论坛自动注册发贴机“营销利剑”它在自动注册的时候头像地址默认是“userface/image1.gif”,而这个地址实际上是不存在的,正确地址应该是“/Images/userface/image1.gif”,这应该是它的一个bug,正好判断一下限制它注册。
3)很多注册机在给别人使用的时候会加上自己的一些信息,一般在注册的时候加到签名里面,所以可以在签名里面判断这些关键字,发现了就不让注册

下面写具体代码,找到Sub reg_3()过程里面加上下面的代码:
If session("myRegTime")="" or DateDiff("s",session("myRegTime"),now())<20 Then
 Response.redirect "showerr.asp?ErrCodes=<li>目前系统维护中,请稍后访问.&action=OtherErr"
End If

If Request.Form("myface")="userface/image1.gif" Then
 Response.redirect "showerr.asp?ErrCodes=<li>目前系统维护中,请稍后访问.&action=OtherErr"
End If

Dim badPersonal,myCount
badPersonal="营销|vodcom.com|ite69.cn" '这边是要过虑的关键字数组,可以以后自己添加
badPersonal=split(badPersonal,"|")

For myCount = 0 to ubound(badPersonal)
 If Instr(Request.Form("personal"),badPersonal(myCount))>0 Then
  Response.redirect "showerr.asp?ErrCodes=<li>目前系统维护中,请稍后访问.&action=OtherErr"
  Response.End()
 End If
Next

转贴注明原创 http://www.topso.net 

代码转载自:https://pan.quark.cn/s/a4b39357ea24 粒子群优化算法(Particle Swarm Optimization, PSO)是一种借鉴群体智能理念的优化方法,其理论基础源于对自然界中鸟群或鱼群群体行为的观察分析。该算法通过模仿群体内各粒子在解空间中的运动轨迹来探寻最优解,因此在处理各类复杂的优化任务时具有广泛的应用价值,包括但不限于函数最大值最小值的求解。 在粒子群优化算法的框架内,每一个粒子象征着一个可能的解决方案,而粒子的位置坐标速度矢量构成了算法的核心参数。粒子的位置具体表示解空间中的一个坐标点,而速度则决定了粒子在解空间内移动的方向幅度。该算法的执行过程主要包含两个核心环节:即局部最优(个体最优位置)全局最优(全局最优位置)的动态更新。 1. **初始设定**: 随机产生一组粒子的初始位置和速度值,这些初始值通常设定在函数定义域的搜索范围内。 2. **适应度评价**: 计算每个粒子的适应度水平,即目标函数在当前粒子位置处的取值。若目标是寻找函数的最大值,则适应度值直接为函数值;若目标是寻找最小值,则适应度值取为函数值的负数。 3. **个体最优位置更新**: 当当前粒子的适应度水平优于其历史记录中的最优位置时,则对该粒子的个体最优位置进行修正。 4. **全局最优位置更新**: 在所有粒子完成个体最优位置的更新后,通过比较各粒子的个体最优位置,选取适应度值最大(针对最大值问题)或最小(针对最小值问题)的粒子作为全局最优位置。 5. **速度位置调整**: 基于当前的粒子速度位置,以及个体最优位置和全局最优位置,对每个粒子的速度和位置进行重新计算。速度的更新公式通常表达为: \[ v_{ij}(...
代码下载地址: https://pan.quark.cn/s/879ea47e17cf 在信息技术领域中,前端构建过程中常常面临页面间互动的挑战,诸如信息流转和函数执行等问题。EasyUI作为一个基于jQuery的界面开发工具包,具备大量可用的构建模块,其中包括用于生成弹出式界面(window)的特定功能。在EasyUI的应用中,可能会出现需要在弹出式界面(次级页面)主页面之间实现数据交换或执行主页面函数的情况。下文将深入阐释这一流程。 让我们深入探究标题所提及的“弹出window窗口数据交互”。在EasyUI环境中,构建一个弹出式界面通常遵循以下步骤: 1. 构建一个HTML文档作为次级页面,其中应包含需要呈现的信息和互动组件。 2. 在主页面中,借助`$.dialog`或`$.window`函数打开次级页面,同时可以设定若干参数,例如界面宽度和高度、内容链接地址等。 例如: ```javascript $.window({ title: 次级界面, width: 500, height: 400, href: subPage.html, onClose: function () { // 在窗口关闭时执行的回调操作,可用于处理关闭事件逻辑 } }); ``` 3. 向次级页面传递数据:可以在`href`属性值中借助查询参数传递基础数据。例如: ```javascript href: subPage.html?parentId=123 ``` 在次级页面中,可以通过`window.location.search`属性获取查询参数并加以解析。 然后,我们将探讨“调用主页面函数”的操作。EasyUI提供了一种途径,借助`parent`关键字来引用主窗口的对象,进...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值