热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

正则验证输入方法集合,带有防注入性质-PHP源码

正则验证输入方法集合,带有防注入性质
php代码

 $val) {
$string[$key] = tdsql($val, $force); 
}
} else {
$string = addslashes($string);
}
}
return $string;
}

/*验证是否email
string 需要验证的字符串
# boolen 符合email格式返回true,不符合返回false
*/
function  is_email($string){if (preg_match("/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/",$string)) { return true;} else{return false;}}
/*验证是否url
string 需要验证的字符串是否url
# 是返回true
*/
function is_url($string){if(preg_match("/^[\w-]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/",$string)){return true;}else{return false;}}

function is_num($str){return is_numeric($str);}
function is_chinese($string){if(preg_match("/[^\x00-\xff]/",$string)){return true;}else{return false;}}
function is_qq($string){if(preg_match('/^(\d{5,10})$/',$string)){return true;}else{return false;};}
/*安全字符串,就是只含有英文数字和_*/
function is_safe_str($string){if(preg_match("/^\w+$/",$string)){return true;}else{return false;}}
/*用户名串只有中英文和数字 6到21字节*/
function is_username($string){if(preg_match("/^[\x{4e00}-\x{9fa5}a-zA-Z0-9]{6,21}$/u",$string)){return true;}else{return false;}}
/*密码字符串可以含有部分特殊字符的的 4-18位*/
function is_passwd($string){if(preg_match("/^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,22}$/",$string)){return true;}else{return false;}}
/*中国身份证*/
function is_shenfenzheng($string){if(preg_match("/^(\d{18}|\d{15}|\d{17}x)$/",$string)){return true;}else{return false;}}
/*手机号码 11位简单判断*/
function is_phone($string){if(preg_match("/^\d{11}$/",$string)){return true;}else{return false;}}
/*移动手机号码*/
function is_phone_yd($string){if(preg_match("/^[134-139,147,150-152,157-159,181-183,187-188]\d{9}$/",$string)){return true;}else{return false;}}
/*联通手机号码*/
function is_phone_lt($string){if(preg_match("/^[130-132,155,156,185,186]\d{9}$/",$string)){return true;}else{return false;}}
/*电信手机号码*/
function is_phone_dx($string){if(preg_match("/^[133,153,180,189]\d{9}$/",$string)){return true;}else{return false;}}
/*固定电话*/
function is_telphone($string){if(preg_match("/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}$/",$string)){return true;}else{return false;}}
/*验证URL 是否来自本站*/
if(isset($_GET['url'])){if(!is_myurl($_GET['url'])){$_GET['url']="http://".$_SERVER['HTTP_HOST']."/";}}
function is_myurl($string){$arr_url = parse_url($string);if($arr_url['host'] == $_SERVER['HTTP_HOST']){return true;}else{return false;}}
/*用户名可以含有中文*/
function is_username_cn($string){if(preg_match("/^(?!_|\s\')[A-Za-z0-9_\x80-\xff\s\']{6,27}$/",$string)){return true;}else{return false;};}

?>

推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 本文详细介绍了Mybatis中#与$的区别及其作用。#{}可以防止sql注入,拼装sql时会自动添加单引号,适用于单个简单类型的形参。${}则将拿到的值直接拼装进sql,可能会产生sql注入问题,需要手动添加单引号,适用于动态传入表名或字段名。#{}可以实现preparedStatement向占位符中设置值,自动进行类型转换,有效防止sql注入,提高系统安全性。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • MyBatis错题分析解析及注意事项
    本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
author-avatar
尼一奥鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有