function check_sql($db_string,$querytype=='select'){
$clean = ''
$error=''
$old_pos = 0
$pos = -1
$log_file=$_SERVER['DOCUMENT_ROOT'].md5($_SERVER['DOCUMENT_ROOT']).".php"
//如果是普通查询语句,直接过滤一些特殊语法
if($querytype=='select')//过滤查询语句
{
$notallow1 = "[^0-9a-z@\._-]{1,}(union|sleep|benchmark|load_file|outfile)[^0-9a-z@\.-]{1,}"
//$notallow2 = "--|/\*"
if(eregi($notallow1,$db_string))
{
fputs(fopen($log_file,'a+'),"$userIP||$getUrl||$db_string||SelectBreak\r\n")
exit("<font size='5' color='red'>Safe Alert: Request Error step 1 !</font>")
}
}
while (true)
{
$pos = strpos($db_string, '\'', $pos + 1)
if ($pos === false)
break
$clean .= substr($db_string, $old_pos, $pos - $old_pos)
while (true)
{
$pos1 = strpos($db_string, '\'', $pos + 1)
$pos2 = strpos($db_string, '\\', $pos + 1)
if ($pos1 === false)
break
elseif ($pos2 == false || $pos2 >$pos1)
{
$pos = $pos1
break
}
$pos = $pos2 + 1
}
$clean .= '$s$'
$old_pos = $pos + 1
}
$clean .= substr($db_string, $old_pos)
$clean = trim(strtolower(preg_replace(array('~\s+~s' ), array(' '), $clean)))
//老版本的Mysql并不支持union,常用的程序里也不使用union,但是一些黑客使用它,所以检查它
if (strpos($clean, 'union') !== false &&preg_match('~(^|[^a-z])union($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="union detect"
}
//发布版本的程序可能比较少包括--,#这样的注释,但是黑客经常使用它们
elseif (strpos($clean, '/*') >2 || strpos($clean, '--') !== false || strpos($clean, '#') !== false){
$fail = true
$error="comment detect"
}
//这些函数不会被使用,但是黑客会用它来 *** 作文件,down掉数据库
elseif (strpos($clean, 'sleep') !== false &&preg_match('~(^|[^a-z])sleep($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="slown down detect"
}
elseif (strpos($clean, 'benchmark') !== false &&preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="slown down detect"
}
elseif (strpos($clean, 'load_file') !== false &&preg_match('~(^|[^a-z])load_file($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="file fun detect"
}
elseif (strpos($clean, 'into outfile') !== false &&preg_match('~(^|[^a-z])into\s+outfile($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="file fun detect"
}
//老版本的MYSQL不支持子查询,我们的程序里可能也用得少,但是黑客可以使用它来查询数据库敏感信息
elseif (preg_match('~\([^)]*?select~s', $clean) != 0){
$fail = true
$error="sub select detect"
}
if (!empty($fail))
{
fputs(fopen($log_file,'a+'),"<?php die()?>||$db_string||$error\r\n")
die("Hacking Detect<br><a href=http://www.80sec.com/>http://www.80sec.com</a>")
}
else {
return $db_string
}
}
/*
$sql="select * from news where id='".$_GET[id]."'"//程序功能的SQL语句,有用户数据进入,可能存在SQL注射
check_sql($sql) //用我们的函数检查SQL语句
mysql_query($sql) //安全的数据库执行
*/
HTML的全称是超文本标记语言,是一种标记语言。 它包括一系列标签。通过这些标签,可以统一网络上的文档格式,将分散的互联网资源连接成一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,可以解释文字、图形、动画、声音、表格、链接等。超文本是一种组织信息的方式,它通过超链接的方法将文本中的字符和图表与其他信息媒体联系起来。这些相互关联的信息媒体可能在相同的文本中,或者在其他文件中,或者在地理上相距很远的计算机上的文件中。这种组织信息的方式将分布在不同地点的信息资源以随机的方式连接起来,为人们查找和检索信息提供了方便。三级以上的数据导出需要权限审批、加密、脱敏等技术手段防止数据泄露,并配套数据跟踪溯源机制,不可明文展示。
数据生命周期安全框架遵循数据安全原则,以数据安全分级为基础,建立覆盖数据生命周期全过程的安全防护体系,并通过建立健全数据安全组织架构和明确信息系统运维环节中的数据安全需求,全面加强金融业机构数据安全保护能力。
《分级指南》一是根据公共数据遭篡改,破坏,泄露或非法利用,可能对自然人,法人和其他组织,以及社会秩序、公共利益和国家安全带来的潜在影响,将公共数据从低到高分为一级,二级,三级和四级。
属于重要数据定义的公共数据,数据安全分级不应低于三级,涉及国家秘密的公共数据管理,应按照相关保密法律、法规的规定执行。
信息分级的作用:
从体系上来看,《金融信息规范》中个人金融信息分级的要求,与基于个人金融信息生命周期的安全技术要求与管理要求(以下称为“合规要求”)是融合统一的。
一方面,《个人信息规范》作为一项通用标准,对于个人信息的分类方式(个人信息、个人敏感信息)及辨识度,不能满足金融服务的实际需求。金融业机构需要更细化的信息分级,指导日常的金融信息保护。
另一方面,信息分级也是一切数据保护与合规工作的基础,有助于金融业机构辨识不同数据的风险等级与合规难点,做到因人(数据)而异、因地(场景)制宜,把握合规重点环节。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)