Php安全新闻早8点(2011-11-27 星期日)

  • A+
所属分类:lcx

//2011-11-27 星期日
//正则实战(2):
Preg_match验证URL
$subscr=$_REQUEST['subscr'];
 //url validation
if (preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $subscr))
 {
 print "$subscr url OK.";
 } else {
 print "$subscr url not valid!";
 }
 //echo("$subscr");
 ?>
 
用ereg进行邮箱验证:
function validateMail($mail) {
 
if($mail !== "") {
 
if(ereg("^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{2,5}$", $mail)) {
 
return true;
 
} else {
 
return false;
 
}
 
} else {
 
return false;
 
}
 
}
 
?>
 
IP地址匹配验证:
function validateIpAddress($ip_addr)
 
{
 
//first of all the format of the ip address is matched
 
if(preg_match("/^(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})$/",$ip_addr))
 
{
 
//now all the intger values are separated
 
$parts=explode(".",$ip_addr);
 
//now we need to check each part can range from 0-255
 
foreach($parts as $ip_parts)
 
{
 
if(intval($ip_parts)>255 || intval($ip_parts)
 
return false; //if number is not within range of 0-255
 
}
 
return true;
 
}
 
else
 
return false;  
 
}
 
UK 邮编验证:
function IsPostcode($postcode) {
 
$postcode = strtoupper($postcode);
 
if(ereg("((GIR 0AA)|(TDCU 1ZZ)|(ASCN 1ZZ)|(BIQQ 1ZZ)|(BBND 1ZZ)"
 
."|(FIQQ 1ZZ)|(PCRN 1ZZ)|(STHL 1ZZ)|(SIQQ 1ZZ)|(TKCA 1ZZ)"
 
."|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]"
 
."|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))"
 
."|[0-9][A-HJKS-UW]) [0-9][ABD-HJLNP-UW-Z]{2})", $postcode)) {
 
return $postcode;
 
} else {
 
return FALSE;
 
}
 
}
 
?>
 
SSN 和邮编验证:
function isValid($type,$var) {
 
$valid = false;
 
switch ($type) {
 
case "IP":
 
if (ereg('^([0-9]{1,3}.){3}[0-9]{1,3}$',$var)) {
 
$valid = true;
 
}
 
break;
 
case “URL”:
 
if (ereg("^[a-zA-Z0-9-.]+.(com|org|net|mil|edu)$",$var)) {
 
$valid = true;
 
}
 
break;
 
case “SSN”:
 
if (ereg("^[0-9]{3}[- ][0-9]{2}[- ][0-9]{4}|[0-9]{9}$",$var)) {
 
$valid = true;
 
}
 
break;
 
case “CC”:
 
if (ereg("^([0-9]{4}[- ]){3}[0-9]{4}|[0-9]{16}$",$var)) {
 
$valid = true;
 
}
 
break;
 
case “ISBN”:
 
if (ereg("^[0-9]{9}[[0-9]|X|x]$",$var)) {
 
$valid = true;
 
}
 
break;
 
case “Date”:
 
if (ereg("^([0-9][0-2]|[0-9])/([0-2][0-9]|3[01]|[0-9])/[0-9]{4}|([0-9][0-2]|[0-9])-([0-2][0-9]|3[01]|[0-9])-[0-9]{4}$",$var)) {
 
$valid = true;
 
}
 
break;
 
case “Zip”:
 
if (ereg("^[0-9]{5}(-[0-9]{4})?$",$var)) {
 
$valid = true;
 
}
 
break;
 
case "Phone":
 
if (ereg("^((([0-9]{3}) ?)|([0-9]{3}-))?[0-9]{3}-[0-9]{4}$",$var)) {
 
$valid = true;
 
}
 
break;
 
case “HexColor”:
 
if (ereg('^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$',$var)) {
 
$valid = true;
 
}
 
break;
 
case “User”:
 
if (ereg("^[a-zA-Z0-9_]{3,16}$",$var)) {
 
$valid = true;
 
}
 
break;
 
}
 
return $valid;
 
}文章来源于lcx.cc:Php安全新闻早8点(2011-11-27 星期日)

相关推荐: Java lookupByteBI 堆缓冲区溢出POC

在Win7 jdk1.7.0_07下测试通过。 CVE: CVE-2013-2470。 Java lookupByteBI function heap buffer overflow poc.zip 影响版本: JRE 7 update 21 JRE 6 up…

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: