易截截图软件、单文件、免安装、纯绿色、仅160KB

php对sql injection的防范

对http request过来的数据,凡是含有单引号,双引号,反斜线等都进行加斜线处理。防止进行注入操作。
/*
堵SQL漏洞
*/
function quotes($content){

//如果magic_quotes_gpc=Off,那么就开始处理
if (!get_magic_quotes_gpc()) {
//判断$content是否为数组
if (is_array($content)) {
//如果$content是数组,那么就处理它的每一个单无
foreach ($content as $key=>$value) {
$content[$key] = mysql_real_escape_string($value);
}
} else {
//如果$content不是数组,那么就仅处理一次
$content = mysql_real_escape_string($content);
}

}
//返回$content
return $content;
}
当传递过来的参数是一个id的话。那么我们可以直接用 $id = intval($_GET('id'));进行int型处理(用settype也行)。
网上也有人是对其关键字过滤进行处理的,如:
function inject_check($sql_str){
return eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile', $sql_str); // 进行过滤
}
我觉得此方法不可取是因为我在一个大的输入框里POST过来的数据或多或少都包含这些关键字,难道杀一儆百?虽然这样更安全,但不方便。
所以我采用上一个方法,如果上一个方法有上面不好之处或者疑问,可以留言讨论。:)


相关文档:

常用SQL语句书写技巧

 转自:http://jianghaifeng.blogchina.com/3841741.html
 SQL结构化查询字符串的改写,是实现数据库查询性能提升的最现实、最有效的手段,有时甚至是唯一的手段,比如在不允许大幅度修改现有数据库结构的情况下。
通过优化SQL语句提高查询性能的关键是:
 根据实际需求情况,建立合适的索引;
&# ......

DateDiff: SQL server函数

 返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。
  语法
  DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
  DateDiff 函数语法中有下列命名参数:
  部分 描述
  interval 必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
  Date1 ......

SQL:如何把多行查询结果,作为一行返回

CREATE    FUNCTION dbo.UF_GetInvoiceSerials( @bizCode VARCHAR(10))
   RETURNS VARCHAR(100)
AS
BEGIN
   DECLARE @ret AS VARCHAR(1000)
   SELECT @ret=Coalesce(@ret + ', ','') +
         CASE e.ID
     ......

php 常用函数学习1

 __FILE__     返回当前 路径+文件名
 dirname(__FILE__) 返回当前文件路径的 路径部分
 dirname(dirname(__FILE__));得到的是文件上一层目录名(不含最后一个“/”号) ......

sql 简单游标

 在存储过程或触发器中使用 Transact-SQL 游标的典型过程为:
声明 Transact-SQL 变量包含游标返回的数据。为每个结果集列声明一个变量。声明足够大的变量来保存列返回的值,并声明变量的类型为可从列数据类型隐式转换得到的数据类型。
使用 DECLARE CURSOR 语句将 Transact-SQL 游标与 SELECT 语句相关联。另外,D ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号