php SQL防注入代碼集合
更新時(shí)間:2008年04月25日 15:13:25 作者:
php下實(shí)現(xiàn)sql防注入效果代碼,asp的比較多,php的倒不多見(jiàn),喜歡php的朋友可以參考下
SQL防注入代碼一
復(fù)制代碼 代碼如下:
<?php
/**
* 防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 *************************/
?>
復(fù)制代碼 代碼如下:
<?php
/**
* 防sql測(cè)試代碼
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注入函數(shù)代碼二:
復(fù)制代碼 代碼如下:
<?php
$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注入代碼三
復(fù)制代碼 代碼如下:
function inject_check($sql_str) { //防止注入
$check = eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str);
if ($check) {
echo "輸入非法注入內(nèi)容!";
exit ();
} else {
return $sql_str;
}
}
function checkurl() { //檢查來(lái)路
if (preg_replace("/https教程?://([^:/]+).*/i", "1", $_server['http_referer']) !== preg_replace("/([^:]+).*/", "1", $_server['http_host'])) {
header("location: http://s.jb51.net");
exit();
}
}
//調(diào)用
checkurl();
$str = $_get['url'];
inject_check($sql_str);//這條可以在獲取參數(shù)時(shí)執(zhí)行操作
您可能感興趣的文章:
- PHP中防止SQL注入實(shí)現(xiàn)代碼
- PHP+MySQL 手工注入語(yǔ)句大全 推薦
- php中防止SQL注入的最佳解決方法
- php防止SQL注入詳解及防范
- 利用SQL注入漏洞拖庫(kù)的方法
- discuz的php防止sql注入函數(shù)
- SQL注入中繞過(guò) 單引號(hào) 限制繼續(xù)注入
- Php中用PDO查詢Mysql來(lái)避免SQL注入風(fēng)險(xiǎn)的方法
- c#.net全站防止SQL注入類的代碼
- 防止xss和sql注入:JS特殊字符過(guò)濾正則
- SQL Injection with MySQL 注入分析
- php中sql注入漏洞示例 sql注入漏洞修復(fù)
- SQL注入全過(guò)程深入分析
相關(guān)文章
PHP編程獲取各個(gè)時(shí)間段具體時(shí)間的方法
這篇文章主要介紹了PHP編程獲取各個(gè)時(shí)間段具體時(shí)間的方法,結(jié)合實(shí)例形式分析了基于date與strtotime函數(shù)進(jìn)行日期時(shí)間運(yùn)算的相關(guān)操作技巧,需要的朋友可以參考下2017-05-05PHP pthreads v3使用中的一些坑和注意點(diǎn)分析
這篇文章主要介紹了PHP pthreads v3使用中的一些坑和注意點(diǎn),總結(jié)分析了PHP pthreads v3使用過(guò)程中經(jīng)常遇到的各種問(wèn)題及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-02-02linux下使用crontab實(shí)現(xiàn)定時(shí)PHP計(jì)劃任務(wù)失敗的原因分析
這篇文章主要介紹了linux下使用crontab實(shí)現(xiàn)定時(shí)PHP計(jì)劃任務(wù)失敗的原因分析,需要的朋友可以參考下2014-07-07PHP創(chuàng)建文件,并向文件中寫入數(shù)據(jù),覆蓋,追加的實(shí)現(xiàn)代碼
這篇文章主要介紹了PHP創(chuàng)建文件,并向文件中寫入數(shù)據(jù),覆蓋,追加的實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-03-03php基于ob_start(ob_gzhandler)實(shí)現(xiàn)網(wǎng)頁(yè)壓縮功能的方法
這篇文章主要介紹了php基于ob_start('ob_gzhandler')實(shí)現(xiàn)網(wǎng)頁(yè)壓縮功能的方法,涉及php中ob_gzip、ob_start等函數(shù)操作緩沖區(qū)及內(nèi)容壓縮相關(guān)技巧,需要的朋友可以參考下2017-02-02