`
hudeyong926
  • 浏览: 2016355 次
  • 来自: 武汉
社区版块
存档分类
最新评论

防止恶意注册和暴力破解

 
阅读更多

1验证码
2token令牌。(同理随机input的name )

<?php
session_start();

if ($_POST["submit"] == "go") {
    //check token
    if ($_POST["token"] == $_SESSION["token"]) {
        //continue processing….
    } else {
        //stop all processing! remote form posting attempt!
    }
}
$token = md5(uniqid(rand(), true));
$_SESSION["token"] = $token;
?>
<form action="" method="post">
    <p><label for="name">Name</label>
        <input type="text" name="name" id="name" size="20″ maxlength="40″/></p>
        <input type="hidden" name="token" value="<?php echo $token; ?>"/>
    <p><input type="submit" name="submit" value="go"/></p>
</form>

3. 提交前客户端加密后台解密(如加密2中的token)http://hudeyong926.iteye.com/blog/1594892

 

4 IP及IP段进行访问限制

<?php
$oblock_ip = new block_ip();
$boolean = $oblock_ip->checkip();
class block_ip {
	var $block_ip = array("192.168.1.1","210.10.2.1-20","222.34.4.*");

	function __construct(){
	}

	function __destruct(){
	}

	private function makepregip($str){
		if (strstr($str,"-")) {
			$aip = explode(".",$str);
			foreach ($aip as $k=>$v) {
				if (!strstr($v,"-")) {
					$preg_limit .= makepregip($v);
				}       else{
					$aipnum = explode("-",$v);
					for($i=$aipnum[0];$i<=$aipnum[1];$i++){
						$preg .=$preg?"|".$i:"[".$i;
					}
					$preg_limit .=strrpos($preg_limit,".",1)==(strlen($preg_limit)-1)?$preg."]":".".$preg."]";
				}
			}
		}else{
			$preg_limit .= $str.".";
		}
		return $preg_limit;
	}

	private function getallblockip(){
		if ($this->block_ip) {
			foreach ($this->block_ip as $k=>$v) {
				$ipaddres = $this->makepregip($v->start_ip);
				$ip = str_ireplace(".","\.",$ipaddres);
				$ip  = str_replace("*","[0-9]{1,3}",$ip);
				$ipaddres  = "/".$ip."/";
				$ip_list[] = $ipaddres;
			}
		}
		return $ip_list;
	}

	public function checkip() {
		$iptable = $this->getallblockip();
		$isjoined = true;
		//取得用户ip
		$ip = $this->get_client_ip();
		$ip = trim($ip);
		//剔除黑名单中的ip区段
		if ($iptable) {
			foreach($iptable as $value) {
				if (preg_match("{$value}",$ip)) {
					$isjoined = false;
					break;
				}
			}
		}
		//如果在ip黑名单中就执行如下操作
		if( !$isjoined ){
			echo "ip error";
			exit;
		}
	}

	private function get_client_ip(){
		if (getenv("http_client_ip") && strcasecmp(getenv("http_client_ip"), "unknown"))
			$ip = getenv("http_client_ip");
		else if (getenv("http_x_forwarded_for") && strcasecmp(getenv("http_x_forwarded_for"), "unknown"))
			$ip = getenv("http_x_forwarded_for");
		else if (getenv("remote_addr") && strcasecmp(getenv("remote_addr"), "unknown"))
			$ip = getenv("remote_addr");
		else if (isset($_server['remote_addr']) && $_server['remote_addr'] && strcasecmp($_server['remote_addr'], "unknown"))
			$ip = $_server['remote_addr'];
		else
			$ip = "unknown";
		return($ip);
	}

}
?>
分享到:
评论

相关推荐

    验证码工具包

    自动生成验证图片,防止恶意注册和暴力破解

    快速教你springboot如何使用图形验证码的两种方式

    防止恶意攻击:验证码是一种常用的安全措施,它可以有效地防止恶意攻击,如暴力破解、恶意注册、恶意登录等。通过要求用户输入验证码,可以降低被机器人或恶意程序攻击的风险,因此验证码验证也是人机验证的方式之一...

    生成和使用验证码C#实现帮助类

    - 用户注册过程:要求用户在注册新账户时输入验证码,以防止恶意批量注册和滥用。 - 登录过程:在用户登录时,要求用户输入验证码,以增加账户的安全性。 - 密码重置:要求用户在重置密码前进行验证码验证,以确保...

    验证码的编写和运用C#

    作用:可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能

    图片验证码

    可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区),...

    自动化测试中的验证码处理方法小总结.docx

    验证码的主要目的是为了防止恶意用户利用自动工具 (机器人)对用户口令进行暴力破解、恶意注册用户,或是向网站发布令人厌烦的广告信息等。  验证码具有随机性和不易被自动工具识别的特点,当 用户访问某个使用...

    Java Web开发过程中登陆模块的验证码的实现方式总结

    可以防止恶意破解密码、刷票、论坛灌水、有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录。 图文验证码的原理 在servlet中随机生成一个指定位置的验证码,一般为四位,然后把该验证码保存...

    ASP版验证码源码完整版

    可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上是用验证码是现在很多网站通行的方式(比如招商银行的网上个人银行,百度社区),...

    如何使用PHP对网站验证码进行破解

    验证码的功能一般是防止使用程序恶意注册、暴力破解或批量发帖而设置的。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入...

    基于生成对抗网络的文本验证码识别方法研究.pdf

    验证码被广泛应用于网站的登录、注册等环节,用来进行身份验证以防止计算机自动程序暴力破解、刷票或垃圾评论等。其中文本验证码由于密码空间大、交互方式简单等特点目前仍被大多数主流网站使用。为了增大计算机程序...

    ASP.NET程序设计:图形验证码的实现.ppt

    验证码技术可以有效防止某些特定注册用户采用恶意程序和暴力破解方式对网站进行不断的登录尝试。 本任务通过GDI+类提供的图形图像编程方法,实现字母和数字混合的图形验证码的绘制与验证。 5.3 Random类 Random类是...

    Python 中Django验证码功能的实现代码

    可以防止恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。  图形验证码的历史比较悠久,到现在已经有点英雄末路的味道了。因为机器学习、图像识别...

    基于PHP制作验证码

    主要介绍了PHP制作验证码,使用PHP对网站验证码是为了防止使用程序恶意注册、暴力破解或批量发帖而设置的。

    PHP验证码功能

    可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。

    Golang Http 验证码示例实现

    可以防止:恶意破解密码、 刷票 、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。...

    Wedonet中文建站系统

    防止客户暴力破解,现在有很多这种工具,可以不停的测试网站密码,本站采用了限制刷新时间,认证码,防止异地提交等多种方式,防止暴力破解. d. 隐藏管理入口.普通客户不会发现从哪里进入管理中心,只有管理员登录时提示...

    php制作动态随机验证码

    可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。...

    ASP.NET验证码(3种)

    有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试。今天就跟大家分享ASP.NET的三种验证码。 1.GSC_WebControlLibrary 这是在网上找到的一个控件,非常好用。但是效果不是特别好(见下...

    LeadBBS v2.10 论坛.rar

    46.用户发送短信息加入判断重复信息和时间间隔设定功能,防止恶意加数据 47.支持用户自动头像,可预设定是否允许用户自定义头像 48.支持论坛预有头像数量设定(默认有500个头像) 49.支持论坛预定义最大用户自定头像...

    利用iOS绘制图片生成随机验证码示例代码

    验证码的功能一般是防止使用程序恶意注册、暴力破解或批量发帖而设置的。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),图片验证码相信大家都见到过,这篇文章用...

Global site tag (gtag.js) - Google Analytics