php SQL防注入代码集合
发布时间:2020-05-29 00:14:23 所属栏目:PHP 来源:互联网
导读:php下实现sql防注入效果代码,asp的比较多,php的倒不多见,喜欢php的朋友可以参考下
SQL防注入代码一 代码如下:/** * 防sql注入 * @author: zhuyubing@gmail.com * */ /** * reject sql inject */ if (!function_exists (quote)) { function quote($var) { if (strlen($var)) { $var=!get_magic_quotes_gpc() ? $var : stripslashes($var); $var = str_replace("'","'",$var); } return "'$var'"; } } if (!function_exists (hash_num)){ function hash_num($input) { $hash = 5381; for ($i = 0; $i < strlen($str); $i++) { $c = ord($str{$i}); $hash = (($hash << 5) + $hash) + $c; } return $hash; } } /**************** end *************************/ ?> 代码如下:/** * 防sql测试代码 CREATE TABLE IF NOT EXISTS `tb` ( `id` int(10) unsigned NOT NULL auto_increment, `age` tinyint(3) unsigned NOT NULL, `name` char(100) NOT NULL, `note` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; **/ include_once('common.php'); var_dump(hash_num('dddd')); if(empty($_GET)) { $_GET = array('age'=>'99','name'=>'a'b'c";','note'=>"a'b'nc#"); } $age = (int)$_GET['age']; $name = quote($_GET['name']); $note = quote($_GET['note']); $sql = "INSERT INTO `tb` ( `age`,`name`,`note`) VALUES ( $age,$name,$note)"; var_dump($sql); ?> PHP 防止sql注入函数代码二: 代码如下:$magic_quotes_gpc = get_magic_quotes_gpc(); @extract(daddslashes($_COOKIE)); @extract(daddslashes($_POST)); @extract(daddslashes($_GET)); if(!$magic_quotes_gpc) { $_FILES = daddslashes($_FILES); } function daddslashes($string,$force = 0) { if(!$GLOBALS['magic_quotes_gpc'] || $force) { if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = daddslashes($val,$force); } } else { $string = addslashes($string); } } return $string; } ?> php 防止sql注入代码三 代码如下:function inject_check($sql_str) { //防止注入 $check = eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile',$sql_str); if ($check) { echo "输入非法注入内容!"; exit (); } else { return $sql_str; } } function checkurl() { //检查来路 if (preg_replace("/https教程?://([^:/]+).*/i","1",$_server['http_referer']) !== preg_replace("/([^:]+).*/",$_server['http_host'])) { header("location: http://s.jb51.cc"); exit(); } } //调用 checkurl(); $str = $_get['url']; inject_check($sql_str);//这条可以在获取参数时执行操作 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
